tcp.validnode_checking踩过的坑

Posted 钢闸门的笔记收藏册

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcp.validnode_checking踩过的坑相关的知识,希望对你有一定的参考价值。

对Oracle 检查ip合法性,就必须在服务器端的sqlnet.ora文件中设置如下参数

TCP.INVITED_NODES=(10.0.0.36,10.0.0.1,10.0.0.35)  
TCP.EXCLUDED_NODES=(10.0.0.2)  

启动监听出现如下错误

 

[oracle@oracle11 admin]$ lsnrctl status  
  
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 12-MAR-2018 18:32:13  
  
Copyright (c) 1991, 2009, Oracle.  All rights reserved.  
  
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))  
TNS-12541: TNS:no listener  
 TNS-12560: TNS:protocol adapter error  
  TNS-00511: No listener  
   Linux Error: 111: Connection refused

      错误输出并没有打印详细的信息,从lisenter.ora,tnsnames.ora入手,但没有发现文件是错误的。最后检查sqlnet.ora,发现TCP.INVITED_NODES参数有如下约束是官方文档没有给出的

 

tcp.invited_nodes需要满足如下条件才可成功启动监听

1、需要设置参数TCP.VALIDNODE_CHECKING为YES才能激活该特性。

2、tcp.invited_nodes的值中一定要包括本机地址(127.0.0.1 / 10.0.0.36)或localhost,因为监听需要通过本机ip去访问监听,一旦禁止lsnrct将不能启动或停止监听。

3、不能设置ip段和通配符。

4、此方式只适合tcp/ip协议。

5、此方式是通过监听限制白名单的。

6、针对的是ip地址而不是其他(如用户名等)。

7、此配置适用于9i以上版本。本次踩坑是oracle11gr2。

8、修改配置后需要重启监听才可生效。

TCP.INVITED_NODES=(10.0.0.36,10.0.0.1)

      此时在启动监听不会出现报错了。而对与TCP.EXCLUDED_NODES参数并没有以上的限制,需要将禁止访问的ip传参即可。

以上是关于tcp.validnode_checking踩过的坑的主要内容,如果未能解决你的问题,请参考以下文章

Mac 下安装wxpython踩过的坑

ELK搭建踩过的坑

Java中那些踩过的坑

text Python踩过的坑汇总

在Colab踩过的坑

ajaxfileupload踩过的坑