我的 CentOS 7 服务器没有安装防火墙,但是安装了 iptables。
WildFly 10 正在运行,并且已将套接字绑定 http 端口更改8080
为。80
standalone.xml
我将使用以下命令在 iptables 中打开 80 端口:
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
但服务器仍然无法到达直到我停止 iptables。
如何修复?
更新:
#iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-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 -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 8080 -j ACCEPT
# netstat -nltp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10042/java
答案1
您的规则与您想要实现的目标不符。链INPUT
处理传入流量,OUTPUT
链处理传出流量。因此,对于您想要实现的目标,您需要一条这样的规则(并且您不需要OUTPUT
链规则,可以将其删除):
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
除此之外,规则的顺序也很重要,而你的规则列表看起来不太好。例如,你在第 8 行有一个规则拒绝一切,那么接下来的接受某些内容的规则将不起作用。因此,将所有拒绝规则放在最后。你还有很多重复的规则,只需删除它们并刷新 iptables 即可。
请参阅这些页面以更好地了解 iptables: