临时禁ping

将/proc/sys/net/ipv4/icmp_echo_ignore_all文件里面的0临时改为1,从而实现禁止ICMP报文的所有请求,达到禁止Ping的效果,网络中的其他主机Ping该主机时会显示“请求超时”,但该服务器此时是可以Ping其他主机的。

  1. #禁ping
  2. echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  3. #启用ping
  4. echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

永久禁ping

  1. #编辑配置
  2. vim /etc/sysctl.conf
  3. #设置禁ping(如果有此配置就无需重复添加,仅更新值即可)
  4. net.ipv4.icmp_echo_ignore_all = 1
  5. #刷新配置
  6. sysctl -p
  7. #启用ping
  8. net.ipv4.icmp_echo_ignore_all = 0

IPTABLES防火墙禁ping

  1. 置禁ping
  2. iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
  3. 启用ping
  4. iptables -D INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
  5. #参数备注
  6. -A:添加防火墙规则.
  7. INPUT:入站规则.
  8. -p icmp:指定包检查的协议为ICMP协议.
  9. --icmp-type 8:指定ICMP类型为8.
  10. -s:指定IP和掩码,“0/0”表示此规则针对所有IP和掩码.
  11. -j:指定目标规则,即包匹配则应到做什么,"DROP"表示丢弃.

注意事项

通过修改配置方式禁止ping后,内部ping也将失效,通过防火墙方式禁止ping后,可以ping自己内部网络。