Oracle客户端连接服务端,监听端口是固定的1521。
但是,监听连接后,会随机分配一个端口,并告知客户端连接此端口,获取数据。
这就造成 路由器的端口映射无法设置,使用防火墙的,也会有这个问题。
但是部署在Unix系统上的Oracle,不存在此问题,原因不再深究。
解决如下:在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME x(x目录编号)上新建一个字符串值:USE_SHARED_SOCKET=TRUE。
如果安装了多个目录,则每个类似的目录都要设置。并重启 数据库。
这样设置就是告知Oracle,不要随机分配连接端口,而是总是使用与监听相同的1521端口。
首先要外网能够ping通你的服务器ip,其次防火墙不要阻止端口的连接。