CentOS版本:6.8
Windows操作系统版本:Win10
Linux上的tomcat版本:7.0.65
linux是使用的NAT模式,及共享主机的IP地址。本来想使用windows本地访问linux上的tomcat首页,结果一直访问不成功;但在windows下能够ping通linux的ip,这很明显就是linux的端口没有开放,所以就在linux上设置了一下防火墙,将以下配置加入到了iptables里:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
然后重启防火墙:
service iptables restart
就以为可以高高兴兴的在windows本地访问tomcat首页了。
结果,还是无法访问tomcat首页,后面又继续试了几次,都不行。
最后
发现了问题所在,是因为新加的8080端口配置信息位置放错了!所以,千万要注意,
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
上面这条配置信息必须放在下面这条配置信息之前,开放端口才能生效!
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
附上iptables:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
解释一下:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。并且发送一条host prohibited的消息给被拒绝的主机。
然后重启防火墙,这样,就能在windows访问linux上的tomcat服务器了。
附上操作效果图:
总结:对于linux的iptables这一块的知识还是比较欠缺的,所以还是要系统的学一下linux的iptables。