Nat 网络请求本身不起作用

Nat 网络请求本身不起作用

我有一台具有一个公共 IP 的 proxmox 服务器。我已设置 NAT 和 iptables 以将端口 80 和 443 转发到我的 apache2 服务器。在我尝试从 NAT 网络内部发出请求之前,一切正常。

我有一些域指向我的服务器,当我尝试wget foo.de从 NAT 网络内的任何服务器访问我的任何域时,我得到的Connecting to foo.de ... failed: Connection refused.从该网络外部来看一切都按预期工作。

这是我的 iptables 配置:

auto lo
iface lo inet loopback

iface ens3 inet manual

auto vmbr0
iface vmbr0 inet static
        address xxx.xxx.xxx.xxx/xx
        gateway xxx.xxx.xxx.xxx
        bridge-ports ens3
        bridge-stp off
        bridge-fd 0


auto vmbr1
iface vmbr1 inet static
        address  10.10.10.1
        netmask  255.255.255.0
        network 10.10.10.0
        broadcast 10.10.10.255
        bridge_ports none
        bridge_stp off
        bridge_fd 0

        post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up   sysctl -w net.ipv4.conf.all.route_localnet=1
        post-up   iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE

        post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.10.10.2:80
        post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.10.10.2:80
        post-up iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to 10.10.10.2:80
        post-down iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to 10.10.10.2:80

        post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 10.10.10.2:443
        post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 443 -j DNAT --to 10.10.10.2:443
        post-up iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to 10.10.10.2:443
        post-down iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to 10.10.10.2:443

我刚刚设置了循环接口,因为我可以通过服务器的公共 URL 从主机访问服务器,但仍然无法从 NAT 网络内部访问。服务器直接连接到互联网,前面没有任何路由器。有什么想法可以解决这个问题吗?

相关内容