Linux禁止ping及开启ping的方法

Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:A、内核参数,B、防火墙,需要2个因素同时允许才能允许Ping,2个因素有任意一个禁Ping就无法Ping。

修改内核参数

1.1 允许ping配置

  • 临时

    1
    echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all      //临时允许ping
  • 永久允许ping配置

    1
    2
    3
    4
    vim /etc/sysctl.conf 
    net.ipv4.icmp_echo_ignore_all=0 //增加这一行
    如果已经有net.ipv4.icmp_echo_ignore_all这一行了,直接修改=号后面的值即可的(0表示允许,1表示禁止)。
    修改完成后执行sysctl -p使新配置生效。

1.2 禁止ping配置

  • 临时
    1
    echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all  
  • 永久
    1
    2
    3
    4
    vim /etc/sysctl.conf 
    net.ipv4.icmp_echo_ignore_all=1 //增加这一行
    如果已经有net.ipv4.icmp_echo_ignore_all这一行了,直接修改=号后面的值即可的(0表示允许,1表示禁止)。
    修改完成后执行sysctl -p使新配置生效。

防火墙

  • 这里以Iptables防火墙为例,其他防火墙操作方法可参考防火墙的官方文档。

2.1、允许PING设置

1
2
3
4
 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
或者也可以临时停止防火墙操作的。
service iptables stop

2.2、禁止PING设置

1
iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
  • 注:此处的方法的前提是内核配置是默认值,也就是没有禁止Ping