使用 DNAT 的客户端混淆了 80 端口

使用 DNAT 的客户端混淆了 80 端口

我正在尝试建立这样的网络:

网络图

...但我面临一个问题。

重点是:

如果我尝试达到(例如)mywebsite1.com从外部来看,它运行得很好,显示了我精彩的网站,但每当我尝试运行(例如)apt-get 更新从虚拟服务器 2 内部,它会抛出类似“无法连接到 xxx-whatever-website.com 端口 80:连接被拒绝“。

如果我删除主服务器防火墙上的预路由规则(在其配置下方),问题就解决了,但是,当然,那时我就无法连接到mywebsite1.com来自外部。如果我将虚拟服务器默认网关更改为 192.168.1.1,情况也是如此。

我天真地尝试在主服务器上添加静态路由(例如 ip route add 192.168.1.1 via 192.168.1.32),但当然,它没有起作用。我是否应该尝试以某种方式标记数据包,以便识别源客户端?


物理服务器(192.168.1.30)防火墙配置

注意:所有链均将 ACCEPT 作为默认策略

*nat
-A POSTROUTING -s 192.168.1.0/24 -o vmbr0 -j MASQUERADE
-A PREROUTING -p tcp -m tcp -i vmbr0 --dport 80 -j DNAT --to-destination 192.168.1.32:80

答案1

您的问题是您的 dnat 规则没有目标地址过滤器,您需要在规则中添加“-d 192.168.1.30”。

相关内容