我有一个 wireguard 配置,在远程服务器(10.0.1.1
)和我的本地机器(10.0.1.2
)之间创建一个 VPN,以便服务器可以访问本地机器,反之亦然。
我希望服务器将端口上的所有传入 TCP 连接路由8000
到我的本地机器。
我尝试过的:
这个答案:
iptables -t nat -I PREROUTING -p tcp --dport 8000 -j DNAT --to-destination 10.0.1.2:8000
iptables -t nat -I POSTROUTING -p tcp --dport 8000 -d 10.0.1.2 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 8000 -j DNAT --to-destination 10.0.1.2:8000
iptables -t nat -D POSTROUTING -j MASQUERADE
还尝试过这个:
iptables -t nat -A POSTROUTING -p tcp -d 10.0.1.2 --dport 8000 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 8000 -j DNAT --to-destination 10.0.1.2:8000
它们都不起作用(无法通过互联网访问)。
当然,我可以设置一个nginx
服务器来执行此操作,但是,它并不像我希望的那样可靠和强大(例如 websocket 连接)。
VPN 连接和防火墙运行正常:我既可以curl
从远程服务器的 shell 访问本地计算机上的服务器,也可以访问在远程服务器8000
端口上启动的 HTTP 服务器。此外,sysctl net.ipv4.ip_forward
是1
。