ICMP 未被禁用

ICMP 未被禁用

我正在尝试禁用 ICMP 服务。为此,已将以下配置行添加到/etc/sysctl.conf文件 中

net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_timestamps = 0

完成这些更改后,命令sudo sysctl -p将执行。之后我执行命令cat cat /proc/sys/net/ipv4/icmp_echo_ignore_all,得到的输出是1。之后没有 ping 请求得到响应。例如,以下命令ping localhost导致输出

PING localhost (127.0.0.1) 56(84) bytes of data.

--- localhost ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3071ms

但是,当我重新启动或关机时,问题就开始了——重新启动。桌面启动后,参数的值icmp_echo_ignore_all变为 0(数字零)。命令的输出cat /proc/sys/net/ipv4/icmp_echo_ignore_all 是 0(数字零)。我可以通过网络 ping 桌面,也可以使用 localhost ping。

那么我该如何解决这个问题?我如何停止 ICMP 服务?我是否需要做一些额外的事情才能让指定的配置被/etc/sysctl.conf选中?我的操作系统是 xbuntu 16.04.6 LTS,运行在内核 4.15.0-65-generic 上

答案1

我在使用 UFW 时遇到了同样的问题,最终偶然发现net.ipv4.icmp_echo_ignore_all在中明确设置为零/etc/ufw/sysctl.conf,显然覆盖了中的设置/etc/sysctl.conf

更新有问题的行可以/etc/ufw/sysctl.conf解决问题。

相关内容