1

美好的一天,我正在我的服务器上的 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

请指教。提前谢谢了。沃杰科技

编辑:

所以我发现当我删除以下行时它开始工作。有人可以解释一下这条线到底是做什么的,这样我就可以在打开例如谷歌网页时看到我的 Tomcat 的欢迎页面?

-A OUTPUT -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
4

1 回答 1

1

您要询问的行使用协议 TCP 将 OUTPUT 链上的任何数据包发送到目标端口 80 并将其移动到您不想要的REDIRECT链。因为,除非您还使用该规则指定目标 ip,否则所有 http 请求都将转到您的 Tomcat。当事情来自 <local process> 时,您希望他们转到他们指定的目标 IP(google.com 等),而不是将它们重定向到您的本地计算机。

以供参考:

netfilter 中的链和跳转

于 2012-10-18T12:46:03.503 回答