美好的一天,我在我的服务器端口8080上运行Tomcat.Tomcat可以从外部访问80端口,也可以从服务器本身访问(我使用iptables重定向端口)。但是,当我尝试在服务器上的Web浏览器中打开任何其他网页(例如http://www.google.com等)时,我将获得Tomcat的欢迎页面。如果我使用IP地址,它也无济于事。我的iptables配置似乎有问题:
# Generated by iptables-save v1.4.7 on Thu Oct 18 08:55:16 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:SSH - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j SSH
-A INPUT -p tcp -m tcp --dport 8080 -m state --state NEW -j ACCEPT
-A INPUT -j DROP
-A SSH -s 10.0.0.0/8 -j ACCEPT
-A SSH -m limit --limit 5/sec --limit-burst 100 -j ACCEPT
-A SSH -j DROP
COMMIT
# Completed on Thu Oct 18 08:55:16 2012
# Generated by iptables-save v1.4.7 on Thu Oct 18 08:55:16 2012
*nat
:PREROUTING ACCEPT [810:128855]
:POSTROUTING ACCEPT [41:2705]
:OUTPUT ACCEPT [26:1805]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A OUTPUT -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
COMMIT
# Completed on Thu Oct 18 08:55:16 2012
请指教。提前谢谢了。 Vojtech
编辑:
所以我发现当我删除以下行时它开始工作。有人可以解释一下这行的确切内容,以便在打开Google网页时可以看到我的Tomcat欢迎页面吗?
-A OUTPUT -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
答案 0 :(得分:1)
您要问的线路使用协议TCP获取OUTPUT链上的任何数据包,前往目标端口80并将其移至REDIRECT链,这不是您想要的。因为,除非您还使用该规则指定目标IP,否则所有http请求将转到您的Tomcat。当事情来自<本地流程>时,您希望他们转到他们指定的目标IP(google.com等),而不是将它们重定向到您的本地计算机。
供参考: