Linux系统下,普通用户使用ping命令返回“ping: icmp open socket: Operation not permitted”错误输出,但root用户可以正常使用该命令。

原因分析:
ping命令在运行中采用了ICMP协议,需要发送ICMP报文。但是只有root用户才能建立ICMP报文。而正常情况下,ping命令的权限应为-rwsr-xr-x,即带有suid的文件,一旦该权限被修改,则普通用户无法正常使用该命令。
解决方案:
使用root用户执行“chmod u+s /bin/ping”。
另外我所测试的环境是从外网ping主机ip发现大量丢包,我的处理方法是关闭防火墙问题解决,不知道丢包是否和防火墙有关,在这里仅供大家参考排除故障。