在 Debian 下,使用 iptables 禁止 ping(即禁止 ICMP Echo Request)通常有以下几种做法。
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT
区别:
DROP:对方无响应,像“黑洞”REJECT:对方立即收到拒绝信息
iptables -A INPUT -p icmp --icmp-type echo-request -s 0.0.0.0/0 -j DROP
或者更严谨一点(仅限制入站):
iptables -A INPUT -p icmp --icmp-type echo-request -m state --state NEW -j DROP
本机 ping 其他机器不受影响(OUTPUT 未限制)。
iptables -A INPUT -p icmp -j DROP
⚠️ 不建议,会导致 MTU、路径 MTU 发现问题。
apt install iptables-persistent
netfilter-persistent save
或:
iptables-save > /etc/iptables/rules.v4
如果只想要“系统不回应 ping”,可以用:
sysctl -w net.ipv4.icmp_echo_ignore_all=1
永久生效:
echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
sysctl -p
从另一台机器:
ping <你的IP>
应无响应或超时。
如果你告诉我:
我可以给你更精确的建议。