从 VPN VM 到其子网中所有其他 VM 的端口转发

从 VPN VM 到其子网中所有其他 VM 的端口转发

我正在使用 proxmox 管理程序来设置 ubuntu VPN VM (Mullvad VPN),它有效地充当所有其他 VM 的网关。这是我的设置说明:

在此输入图像描述

wg-mullvad在 VPN VM 中,我使用这些命令在 VPN 隧道接口(是 mullvadwireguard 接口)之间路由流量:

iptables -t nat -A POSTROUTING -o wg-mullvad -j MASQUERADE
iptables -A FORWARD -i eth1 -o wg-mullvad -j ACCEPT

目前一切似乎都正常,运行几个 iptables 命令来路由我的流量,以便我可以通过 SSH 进入 VM1 和 VM2,并通过来自家庭网络的不同子网访问它们上的 Web 服务器:

iptables -t nat -A PREROUTING -d 192.168.0.0/24 -p tcp --dport 22221 -i eth0 -j DNAT --to-destination 192.168.1.201:22
iptables -t nat -A PREROUTING -d 192.168.0.0/24 -p tcp --dport 22222 -i eth0 -j DNAT --to-destination 192.168.1.202:22
iptables -t nat -A PREROUTING -d 192.168.0.0/24 -p tcp --dport 80 -i eth0 -j DNAT --to-destination 192.168.1.201:80

但是,我遇到了一个问题,VM1 和 VM2 中的端口转发不起作用。我已经在 mullvad vpn 服务本身中打开了一个端口,如下本指南。我可以验证它确实在 VPN VM 本身中工作,但不在子网192.168.1.0/24(VM1 和 VM2)上工作。

我认为端口转发应该在 VPN 隧道中自动发生,而不需要在 VPN VM 本身上进行任何其他设置,我错了吗?知道如何正确处理这个问题吗?提前致谢。

编辑

看起来像跑步

iptables -t nat -A PREROUTING -p tcp --dport 58787 -j DNAT --to-destination 192.168.1.202:58787

作品。鉴于我的 VPN VM“特殊”设置(单个 NIC,路由 VPN 流量),我不确定这是否是正确的方法。由于我不太擅长网络,这是否会导致VPN出现流量泄漏(例如流量直接从eth0eth1而不经过wg-mullvad)?

相关内容