我需要这个iptables规则的帮助。我不明白为什么需要端口8080的INPUT规则
服务器使用公共IP 123.123.123.123
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -I INPUT 1 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -s 123.123.123.123 -j ACCEPT
当我禁用INPUT规则pro 8080时,防火墙将阻止端口8080
当SERVER尝试打开GET 123.123.123.123:8080失败时! (响应超时)为什么?
为什么它没有启用规则ESTABLISHED,RELATED ???
答案 0 :(得分:1)
iptables -I INPUT 1 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
^这适用于已经建立的连接,因此id不会捕获任何新连接。
iptables -A INPUT -p tcp --dport 8080 -s 123.123.123.123 -j ACCEPT
^并且这个捕获了什么试图将TCP数据包发送到123.123.123.123:8080并接受它。
如果在此条目不存在时无法连接到该服务,则因为您的链中可能还有其他内容可以捕获流量并使-j REJECT
或-j DROP
...或者你在这个链上有REJECT或DROP政策。
选中iptables -L INPUT
进行检查,然后iptables -P INPUT ACCEPT
进行更改。
检查链条上发生了什么的一种简单方法是检查iptables -L -n -v
。 verbose参数将为每个规则提供pkts和bytes的数量,因此观察它可以确定您的规则是否正在捕获任何内容。
答案 1 :(得分:0)
谢谢,解决方案不是启用INPUT ACCEPT
但是为从服务器到自己的所有连接添加启用
iptables -I INPUT 2 -p all -m state --state NEW -s 123.123.123.123 -j ACCEPT
我没有说明服务器上的新连接是有效的(OUTPUT已启用),但是防火墙会与INPUT建立新连接...默认情况下未启用