配置防火墙允许从外网访问内网oracle

客户端连接oracle的过程:

client进程首先与listener建立TCP连接,然后listener产生一个server进程并将server进程地址返回给client进程,之后client进程与该server进程建立TCP连接,由server进程完成数据库操作,并将结果返回给client端。对于UNIX系统,由于server进程是由listener创建的(fork),server进程将继承listener进程的资源,即使用相同的file handle和tcp socket。对于windows socket1.1而言,server线程与listener无法共享TCP socket。server线程会随机地选择一个TCP端口与client进行连接。而windows socket2支持shared socket,可以实现一个进程共享另一个进程的TCP socket。

如果需要从外网访问oracle,需做如下设置:

UNIX系统:

只需要在防火墙上开放监听端口。

WINDOWS系统:

1、在防火墙上开放监听端口。

2、设置Shared Socket (Windows Socket2支持)。设置方法:

在注册表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0上新建一个字符串值:USE_SHARED_SOCKET=TRUE。如果安装了多个目录,则每个类似的目录都要设置:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx (x目录编号).

设置后要重启实例.

如果windows不支持shared socket,则要在防火墙上开放所有端口。


上一篇:springboot 监听器listener的使用


下一篇:Oracle环境变量、监听listener.ora、tnsnames.ora、sqlnet.ora配置