如何在 Linux 中禁用 Ping 响应 (ICMP) 然后恢复?

如何在 Linux 中禁用 Ping 响应 (ICMP) 然后恢复?

我正在尝试通过不断 ping 某些服务以确保它们正常运行来测试它们的活跃性。它通过 ping 地址 ( 192.168.20.1) 来检查是否“活着”。

我尝试通过 iptables 禁用它,但当我使用该 IP 地址sudo iptables -I OUTPUT -s 192.168.20.1 -j DROP时,仍然会传输和接收数据包。ping

我还尝试过编辑/etc/sysctl.conf文件并添加net.ipv4.icmp_echo_ignore_all=1然后重新启动,但sysctl -p没有成功。我只需对192.168.20.1静止器执行 ping 操作即可成功获得响应。

有没有办法阻止 IP 地址,以便该ping命令无法成功地将数据包返回到我的主机?另外,如果有有关将其恢复的信息,我们将不胜感激。

解决方案

能够通过这一行简单地阻止 icmp 协议:

iptables -A OUTPUT --proto icmp -j DROP

由于 linuxping命令通过 ICMP 工作,因此简单地将其丢弃以进行联网将会导致 ping 失败。更改为-A就是-D将其恢复的方法。

答案1

几个选项

    sudo echo “1” > /proc/sys/net/ipv4/icmp_echo_ignore_all
    sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1 && sysctl -p
    sudo iptables -A INPUT -p icmp –icmp-type echo-request -j REJECT
    sudo iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
    sudo iptables -A OUTPUT -p icmp –icmp-type echo-reply -j DROP

我认为你的使用-I是有意义的,OUTPUT因为正如 Giacomo 所说,在它之前你可能还有其他规则在起作用。您确定在正确的目标计算机上安装了规则吗?

如果以上方法都不起作用,您可以列出您的 iptables 规则。

来源:https://www.howtouselinux.com/post/disable-ping-in-linux

相关内容