这是服务器的 iptables 文件
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [13:2648]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
当我尝试通过 Web 访问它时,它不起作用,并且只有停止 iptables 服务后它才起作用,缺少什么?
答案1
规则按从上到下的顺序进行处理,因此当它命中规则时
-A INPUT -j REJECT --reject-with icmp-host-prohibited
其余规则均无法达成。
确保其他规则出现在总REJECT
规则之前,这样你就万事俱备了
答案2
问题的解决方案就在眼前。仔细阅读规则,记住顺序很重要。