Win下的Oracle通过防火墙映射后不能访问的问题解决

一台Windows2003服务器,安装了Oracle数据库,互联网的某些特定用户需要访问该数据库的服务端口1521,在防火墙上做了公网地址至内网地址的转换,将公网地址的6000端口转换成内网数据库的1521端品,如下拓扑所示。

oracleerr01

但测试后发现,无论防火墙怎么设置,外网用户就不能连接上Oracle数据库服务,后来查找资料后发现需要虚拟Oracle服务器的注册表才能解决此问题,网上描述为:

原理:network listener 只是一个连接的中转跳板,客户端同监听连接后,监听根据配置关联到相关的数据库实例然后由listener 产生一个新的连接传递给客户端,这个连接直接Client 至数据库实例,同listener再无关系 ,新的连接端口是随机产生的(内网连接时通过netstat可以发现这一现象)。也就是说你在防火墙所映射的1521端口只能保证客户端连接到listener而无法连接到数据库实例。

修改注册表方法:

进入HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0下,增加字符串值USE_SHARED_SOCKET=true即可。

2 Comments

  1. […] 标签:oracle, 防火墙映射 Category: 02. 随便写, 03. 配置笔记  |  Comment […]

  2. […] 标签:oracle, 防火墙映射 Category: 02. 随便写, 03. 配置笔记  |  Comment […]

Leave a Reply to Win下的Oracle通过防火墙映射后不能访问的问题解决 | 大鱼海棠