我有一系列的Ubuntu 10.04服务器,每个服务器都启用了ufw防火墙。我已允许端口22(用于SSH)和端口80(如果是网络服务器)。我的问题是我正在尝试启用icmp回声响应(ping回复)。
ICMP的功能不同于其他协议-从技术意义上讲,我知道它低于IP级别。您可以输入sudo ufw allow 22
,但不能输入sudo ufw allow icmp
我有一系列的Ubuntu 10.04服务器,每个服务器都启用了ufw防火墙。我已允许端口22(用于SSH)和端口80(如果是网络服务器)。我的问题是我正在尝试启用icmp回声响应(ping回复)。
ICMP的功能不同于其他协议-从技术意义上讲,我知道它低于IP级别。您可以输入sudo ufw allow 22
,但不能输入sudo ufw allow icmp
Answers:
ufw不允许通过命令行界面命令指定icmp规则。它确实允许您通过其规则文件iptables-restore样式文件来调整规则集。
ufw默认情况下确实允许某些icmp流量,包括icmp echo回复,并且默认情况下,它已在中配置/etc/ufw/before.rules
:
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
如果您的主机没有响应ping,请查看此文件以确保上面的行存在,如果该行不起作用,请查看ping主机以及它们之间的所有防火墙。
sudo ufw reload
(并允许ping请求我不得不添加-A ufw-before-output -p icmp --icmp-type echo-request -j ACCEPT
中/etc/ufw/before.rules
)
对于Ubuntu 18.04,您应该在/etc/ufw/before.rules文件中具有以下规则:
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
# ok icmp code for FORWARD
-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT
这些都在我的默认文件中。
当然,请确保这确实是问题所在。我的问题是我的计算机阻止了ping到我尝试ping的服务器所在的网络。我最终使用了已经在Internet上访问过的网站为我执行ping操作(例如https://ping.eu/ping/)。
这是一份帮助文档,介绍了如何启用/禁用ping等响应。