端口 80 连接问题(XenServer 到 WebServer VM)

端口 80 连接问题(XenServer 到 WebServer VM)

我有一台运行 XenServer 6.2 的租用服务器,我只有 1 个公网 IP,因此我进行了一些 NAT,将端口 22 和 80 重定向到我的 WebServer VM。我对端口 80 重定向有疑问。

当我使用此重定向时,我可以进入 Web 服务器的 Apache,但该服务器失去 Web 访问权限。

我遇到了这种错误:

W: Failed to fetch http://http.debian.net/debian/dists/wheezy/main/source/Sources  404  Not Found [IP: 46.4.205.44 80]

但我可以 ping 通任何地方。

XenserverIP:80 重定向到 10.0.0.2:80(WebServer)。

这是我的 XenServer iptables 的端口 80 重定向部分:

-A PREROUTING -i xenbr1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0
.2:80

-A INPUT -i xenbr1 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
COMMIT

我的配置有什么问题?XenServer 有问题吗?

感谢您的帮助 !

编辑:这是我的 iptables 完整内容:

*nat
:PREROUTING ACCEPT [51:4060]
:POSTROUTING ACCEPT [9:588]
:OUTPUT ACCEPT [9:588]
-A PREROUTING -p tcp -m tcp --dport 1234 -j DNAT --to-destination 10.0.0.2:22
-A PREROUTING -i xenbr1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0
.2:80
-A POSTROUTING -s 10.0.0.0/255.255.255.0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [5434:4284996]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5014:6004729]
-A INPUT -i xenbr1 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
COMMIT

更新 :

我有第二台服务器,其 IP 为 10.0.0.3,它也存在与 10.0.0.2 相同的问题。

我想我找到了一点解释:

我有在 10.0.0.2:80 上监听的 apache,由于我的 Xenserver 上有 NAT 转发规则,所以来自外部网络的所有传入流量(网站请求、下载……)都被路由到 10.0.0.2:80,因为它使用端口 80。

这就是为什么我在第二台虚拟机上遇到同样的问题。如果我尝试执行 apt-get 更新,我会向返回端口 80 的网站发出请求,因此会被路由到 apache。

有人能帮我解决这个问题吗?(如果我的 Apache 服务器正在运行,我就无法访问内部 LAN 上的网站,这是一个问题 ^^)

答案1

您的 DNAT 规则应包含“-d your-public-external-ip”,否则 NAT 规则将匹配到端口 80 的所有数据包,包括传出数据包。您可能正在将传出的 HTTP 请求重定向到您自己的 Web 服务器。查看访问日志应该可以确认这一点。

相关内容