我在连接到路由器的 Windows XP 32 上安装了 Oracle 8i。我在连接到同一路由器的 Windows 7 64 笔记本电脑上安装了 Oracle 客户端 v10(64 位)。我能够建立并成功测试从我的笔记本电脑到 LAN 上的 Oracle 8i 的 ODBC 连接。
然而,当我在客户端的 TNSNAMES.ORA 中将 IP 地址更改为路由器的公共 IP(我的 ISP 为我分配了一个公共 IP)并尝试通过互联网(来自另一个移动 3G ISP 的互联网)访问它时,连接失败,并出现 oracle - ORA-12170 TNS 超时。
我已经检查过了
- XP 和 Windows 7 上的防火墙均已关闭,包括防火墙服务
- 路由器中的端口转发已成功测试,端口 1521 和 2481 均在 XP 上运行监听器(yougetsignal.com)
- 我暂时启用了路由器中从 1 到 6000 的所有端口,认为可能还有其他我遗漏的适用端口
- 将 XP 机器放在路由器的 DMZ 上
- PATH 包括 Oracle 主目录,并且我还设置了 TNS_LANG 和 TNS_ADMIN 变量
但是 ODBC 在互联网上失败了。还有其他考虑因素、Oracle 服务或其他我遗漏的内容吗?目前很难指出这是网络问题还是 Oracle 配置问题。
更新
在我看来,ODBC 实际上是在端口 1521 上通过互联网建立连接,但不知何故返回了超时。这就是服务器上的 listener.log 所反映的情况。
10-SEP-2017 21:20:08 * (CONNECT_DATA=(SERVICE_NAME=TESTDB)(CID=(PROGRAM=C:\Windows\system32\odbcad32.exe)(HOST=VAIO)(USER=xxxxx))) * (ADDRESS=(PROTOCOL=tcp)(HOST=x.x.x.x)(PORT=5865)) * establish * TESTDB *
0
谢谢