Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:A、内核参数,B、防火墙,需要2个因素同时允许才能允许Ping,否则无法Ping。

一、内核参数设置

1、允许ping设置

临时

echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_al

永久

echo net.ipv4.icmp_echo_ignore_all=0 >> /etc/sysctl.conf
sysctl -p # 执行这条命令使更改后的 /etc/sysctl.conf 配置文件生效

ff382e21f0de6a4e37ca09a4b78c64.png

注意:如果 /etc/sysctl.conf 配置文件里已经有 net.ipv4.icmp_echo_ignore_all 字段了,那么直接用 vim 进去更改对应的值即可。

2、禁止Ping设置
临时

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all

永久

echo net.ipv4.icmp_echo_ignore_all=1 >> /etc/sysctl.conf
sysctl -p  # 执行这条命令使更改后的 /etc/sysctl.conf 配置文件生效

127b6db1301a327f509b1af8cca2bb.png
注意:如果 /etc/sysctl.conf 配置文件里已经有 net.ipv4.icmp_echo_ignore_all 字段了,那么直接用 vim 进去更改对应的值即可。

二、防火墙设置

注:使用以下方法的前提是内核配置是默认值,也就是内核没有禁ping

1、允许PING设置

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

2、禁止PING设置

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

--icmp-type 8 echo request  表示回显请求(ping请求)

0/0 表示所有 IP
最后修改:2024 年 10 月 29 日
如果觉得我的文章对你有用,请随意赞赏