只需要设置内核参数icmp_echo_ignore_all,此参数如果设置为非0,Linux会忽略所有ICMP_ECHO请求包。
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
这个命令会立即生效,如果需要启用ping命令,将这个参数设置为0即可。
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
这个设置只对当前环境生效,如果服务器重启时,这个设置就会失效。如果要永久生效,那么可以在配置文件/etc/sysctl.conf 增加参数net.ipv4.icmp_echo_ignore_all = 1,然后使用sysctl -p使之生效。当然,你也可以使用下面命令实现:
禁止ICMP包通行
echo net.ipv4.icmp_echo_ignore_all=1 >>/etc/sysctl.conf
允许ICMP包通行
echo net.ipv4.icmp_echo_ignore_all=0 >>/etc/sysctl.con