ping 实现原理是使用 ICMP 协议,主机发送 echo- request 包,远程服务器收到以后,回复 echo-reply 包。
有时候为了安全需要隐藏主机,使其不对ICMP 的回显请求进行相应,即使主机不被ping 通。
使主机不被 ping
方法1 直接拒绝icmp 的请求包
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT
这时候尝试ping这台主机的话会出现
Reply from 192.168.50.131: Destination port unreachable.
方法2 直接丢弃 icmp 的请求包
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
这时候尝试ping这台主机的话会出现
Request timed out.
禁止主机的ping功能
直接丢弃向外发送的ICMP包
sudo iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP
此时使用 ping 指令,输出如下:
$ ping 192.168.50.129
PING 192.168.50.129 (192.168.50.129) 56(84) bytes of data.
ping: sendmsg: Operation not permitted