日期:2014-05-16  浏览次数:20502 次

不能打开到主机的连接, 在端口 1521: 连接失败
今天启动工程,突然提示无法连接远程Oracle。我试着telnet Oracle服务器1521 端口,提示连接失败。

 

D:\Documents and Settings\Administrator>telnet 10.201.70.68 1521

正在连接到10.201.70.68...不能打开到主机的连接, 在端口 1521: 连接失败

 

Oracle服务器与本机都在局域网内,不存在网络不通问题,怎么会无法连接。

检查10.201.70.68并未启动防火墙,可以ping通。

但发现直接在Oracle服务器上连接oracle也不能正常连接。

后发现为listener.ora导致,经过修改  \product\10.2.0\db_1\NETWORK\ADMIN\listener.ora 数据库恢复正常。

 

再次telnet Oracle服务器的1521端口,依然连接失败。

 

D:\Documents and Settings\Administrator>telnet 10.201.70.68 1521

正在连接到10.201.70.68...不能打开到主机的连接, 在端口 1521: 连接失败

 

用命令查看当前端口情况netstat -a –n

C:\Documents and Settings\Administrator>netstat -a -n

 

Active Connections

 

  Proto  Local Address          Foreign Address        State

  TCP    0.0.0.0:23             0.0.0.0:0              LISTENING

  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING

  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING

  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1035           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1080           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1139           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1801           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:2103           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:2105           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:2107           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING

  TCP    10.201.70.68:139       0.0.0.0:0              LISTENING

  TCP    10.201.70.68:3389      10.201.70.75:53370     ESTABLISHED

  TCP    127.0.0.1:1142         0.0.0.0:0              LISTENING

  TCP    127.0.0.1:1521         0.0.0.0:0              LISTENING

  TCP    127.0.0.1:42424        0.0.0.0:0              LISTENING

  UDP    0.0.0.0:445            *:*

  UDP    0.0.0.0:1034           *:*

 

1521端口处于监听状态,但是从我本机还是无法Telnet服务器端口。

我试着telnet  1080端口,发现却可以,唯一的区别就在于一个端口前是“0.0.0.0”,一个是“127.0.0.1”。为了验证,我又telnet 1035/1026都可以通。

但是为什么呢,是不是就因为这个IP的原因呢,怎么才可以把这个“127.0.0.1”改为“0.0.0.0”。

1521是Oracle监听端口,问题估计还是出在监听本身。

我打开另一台也装有Oracle且1521可以连接的机器,查看NETWORK\ADMIN \listener.ora文件,仔细对比两个Oracle该文件的区别,发现正常的Oracle服务器上,listener.ora文件,如下这段 HOST显示的是机器名,而不能连接的是“localhost”。

LISTENER =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = lggsuper_pc)(PORT = 1521))

  )

 

我备份该文件后,将localhost 也改为本机名,重启监听。检查数据库从数据库服务器本机连接正常。

然后再执行命令netstat -a –n查看,此时1521前面的IP已变为“0.0.0.0”。

C:\Documents and Settings\Administrator>netstat -a -n

 

Active Connections

 

  Proto  Local Address          Foreign Address        State

  TCP    0.0.0.0:23             0.0.0.0:0              LISTENING

  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING

  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING

  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1035           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1080           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1317           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1521           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:1801           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:2103           0.0.0.0:0              LISTENING

  TCP    10.201.70.68:139       0.0.0.0:0              LISTENING

  TCP    127.0.0.1:1324         127.0.0.1:1521         TIME_WAIT

  TCP    127.0.0.1:42424        0.0.0.0:0              LISTENING

  UDP    0.0.0.0:445            *:*

  UDP    0.0.0.0:1034           *:*

  UDP    0.0.0.0:1044           *:*

看来成功的概率很高,然后我通过我电脑telnet Oracle服务器1521端口,果然成功。

问题解决。