有人可以解释一下为什么 IPTABLES 会阻止此规则列表中的任何端口吗:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
对我来说,ACCEPT ALL 这一行似乎应该接受所有流量,但事实并非如此。
答案1
应该查看每个链的 iptables。
INPUT
所有流量均在链中被接受。OUTPUT
所有流量均在链中被接受。FORWARD
即使将默认策略设置为,链中的所有流量都会被拒绝ACCEPT
。
总之,您的防火墙允许所有传入和传出连接。但是,它拒绝将任何数据包转发到任何其他主机。
一般规则是按照 iptables 规则进行匹配。如果没有匹配,则应用默认链策略。
答案2
pkts bytes target prot opt in out source destination
6741 691K ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
1 84 ACCEPT icmp -- any any anywhere anywhere
0 0 ACCEPT all -- lo any anywhere anywhere
事实证明,我以为允许所有流量通过的只是允许环回流量(即“lo”)。