NAT 后面的 Web 服务器无法通过 NAT 路由器 IP 或域由同一网络访问

NAT 后面的 Web 服务器无法通过 NAT 路由器 IP 或域由同一网络访问

我有 1主机服务器作为 NAT 服务器,它将公共域名example.com与其公共 IP 地址绑定PUB_IP_ADD

我还有一个网络服务器在 NAT 后面使用 IP 地址192.168.1.100和端口转发规则进行主机服务器

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80

我有一些其他服务器在具有固定 IP 地址范围的 NAT 后面192.168.1.101-110,并且masquerade针对整个范围执行规则192.168.1.0/24

-A POSTROUTING -s 192.168.1.0/24 -o vmbr0 -j 伪装

上述规则可以让我位于 NAT 后面的服务器访问互联网。(下载并 ping 公共 IP)。

我的网页可以通过访问从互联网访问example.com,但无法从 NAT 网络内部192.168.1.0/24使用相同域名或主机服务器IP地址。

我想知道,为什么 NAT 防火墙后面的 Web 服务器无法被对端使用 NAT 服务器域名或 IP 访问?

我是否需要SNAT专门添加规则到网络服务器并删除该masquerade行?

答案1

如果您使用静态 IP,则可能需要使用 SNAT,因为 MASQUERADE 需要从网络接口获取 IP 地址,因此会受到惩罚。

此外,如果您从防火墙计算机进行测试,它将尝试访问自己的 Web 服务器,而不是专用的 Web 服务器。我们需要在 OUTPUT 链中放置一条规则来处理这种情况:

iptables -t nat -A OUTPUT -d $INET_IP --dport 80 -j DNAT --to-destination $HTTP_IP

相关内容