我已经CentOS 7服务器没有firewalld,但安装了iptables。
有一个WildFly 10在standalone.xml使用更改的套接字绑定http端口8080到80进行运行。
我会用这些命令在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
你的规则是错误的,你想达到什么目的。 INPUT链处理传入stream量, OUTPUT链处理stream量。 所以为了达到你想达到的目标,你需要一个像这样的规则(你不需要为OUTPUT链规则,并且可以删除它):
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
除此之外,规则的顺序是重要的,你的规则列表看起来不正确。 例如,你在第8行有一条规则来拒绝所有的事情,那么接下来的规则就不能工作。 所以,把所有的拒绝规则放在最后。 你也有很多重复的规则,只是删除它们并刷新iptables。
看到这些页面,以更好地了解iptables:
Linux防火墙教程:IPTables表,链,规则基础
如何在Centos 6上设置基本的iptables防火墙