![从 VPN VM 到其子网中所有其他 VM 的端口转发](https://linux22.com/image/218194/%E4%BB%8E%20VPN%20VM%20%E5%88%B0%E5%85%B6%E5%AD%90%E7%BD%91%E4%B8%AD%E6%89%80%E6%9C%89%E5%85%B6%E4%BB%96%20VM%20%E7%9A%84%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91.png)
我正在使用 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出现流量泄漏(例如流量直接从eth0
到eth1
而不经过wg-mullvad
)?