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