Linux默认是允许Ping响应的,系统是否允许Ping由内核参数、防火墙2个因素决定的,需要2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping。
具体的配置方法如下:
一、内核参数设置
icmp_echo_ignore_all : 0表示允许,1表示禁止
- 临时允许PING操作的命令
1 | > echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all |
- 永久允许PING配置方法。
/etc/sysctl.conf 中增加一行
1 | net.ipv4.icmp_echo_ignore_all=0 |
如果已经有net.ipv4.icmp_echo_ignore_all这一行了,直接修改值即可。
禁止Ping的方法类似,只需要设置icmp_echo_ignore_all=1
即可
修改完成后执行sysctl -p
使新配置生效。
二、防火墙设置
(注:此处的方法的前提是内核配置是默认值,也就是没有禁止Ping)
这里以iptables防火墙为例,其他防火墙操作方法可参考防火墙的官方文档。
- 允许PING设置
1 | iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT |
或者也可以临时停止防火墙操作的。
1 | service iptables stop |
- 禁止PING设置
1 | iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP |