plsql准备连接时,提示ORA-12570: TNS: 包阅读程序失败

背景:本地windows7系统使用plsql通过secureCRT端口转发远程连接linux服务器内局域网中的oracle数据库

昨晚正常连接,今天突然就报错

本地使用tnsping正常:

C:\Users\Administrator>tnsping localhost:1521/cloudecd

TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 23-9月 - 2016 11:37:47
Copyright (c) 1997, 2010, Oracle.  All rights reserved.
已使用的参数文件:
E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 EZCONNECT 适配器来解析别名
尝试连接 
(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=cloudecd))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
OK (10 毫秒)

使用跳板机的tnsping失败,且报错TNS-12570: TNS: 包阅读程序失败
C:\Users\Administrator>tnsping 127.0.0.123:1523/cloudecd
TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 23-9月 - 2016 11:41:47
Copyright (c) 1997, 2010, Oracle.  All rights reserved.
已使用的参数文件:
E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
已使用 EZCONNECT 适配器来解析别名
尝试连接 
(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=cloudecd))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.123)(PORT=1523)))

TNS-12570: TNS: 包阅读程序失败

网络上搜的结果,包括网络问题,权限问题,安装路径问题,防火墙问题等都不能解决,最后自己尝试了下把secureCRT中跳板转发中本地IP从127.0.0.123改成127.0.0.1,就可以正常连接了。

但晚上回家,又可以设为127.0.0.123了,可能是公司的网络问题,

后来想想,公司的网络与家里的网络,就差了个网络代理,公司需要设置网络代理才能访问网络,

我去看了下代理规则,发现localhost与127.0.0.1是直接转发,即 不需要通过代理服务器往外发生的,

而我设置的127.0.0.123虽然是本地回环IP,但没有写进规则,于是就被当做外网被代理服务器发送到外面了,

结果可想而知,肯定是无效的了,而家里因为没有这个设置,所以设置什么都没问题。

希望对遇到同样问题的同学有所帮助。


你可能感兴趣的:(oracle)