UOS系统在对外ping一个IP地址时,出现“ping sendmsg 不允许的操作”错误的解决思路

UOS系统在对外ping一个IP地址时,出现“ping sendmsg 不允许的操作”错误的解决思路

应用场景

硬件/整机信息:所有版本和整机均可能会出现
CPU架构:所有CPU均可能出现
OS版本信息:所有
协作人:许川、曹庆华

问题现象

UOS系统在对外ping一个IP地址时,出现“ping sendmsg 不允许的操作”报错,且网络时断时续,如下图所示:

问题分析

一般情况下,出现此报错后,可以从以下两个方面进行排查:

  • 查看Linux内核中连接追踪模块是否超过了nf_conntrack_max的数值;
  • 检查UOS系统中是否安装有诸如奇安信等安全软件。

解决方案

  • 针对于nf_conntrack_max解决方案
    1、首先检查系统是加载了nf_conntrack模块,如果没有加载,则排除是由nf_conntrack模块引起,具体操作为,输入“lsmod | grep conntrack”命令,查看是否能打印出对应模块,如果模块被加载则如下图所示,没有加载则不会有任何结果:

2、输入命令“sysctl net.netfilter.nf_conntrack_count”查看当前连接追踪数,然后输入“sysctl net.netfilter.nf_conntrack_max”查看允许最大连接追踪数,如果超出了最大连接追踪数,则可以考虑加大这个限制,不过需要注意的是,nf_conntrack_max不能无限制的加大,需要结合系统实际的运行内存来决定。

3、以将nf_conntrack_max修改为262114为例,永久加大nf_conntrack_max的方法为,在/etc/systctl.conf文件中,添加“net.nf_conntrack_max=262114”,然后保存退出,最后输入命令“sysctl -p”即可生效。

4、需要注意的是,UOS系统默认并没有加载nf_conntrack模块,如果要加载该模块则输入“modprobe ip_conntrack”命令,但如果并非特殊需要,不建议加载此模块。

  • 针对于奇安信等安全软件解决方案
    已知在项目侧已经遇到该问题,即使系统并未加载ip_conntrack模块,ping一个IP地址时仍旧会报错,此时需要检查系统是否运行有安全软件,如果有安全软件,将安全软件卸载后进行测试,注意是卸载而非退出。

 

posted @ 2022-04-29 12:00  云中看世界  阅读(3307)  评论(0编辑  收藏  举报