通过 VPN 进行 SSH 端口转发

通过 VPN 进行 SSH 端口转发

简而言之,我在远程机器上设置了 WireGuard,将我的 Raspberry PI 连接到它,现在我想要一个转发端口,以便我可以通过我机器的公共 IP 连接到我的 PI。

我尝试按照这个说明操作(https://askubuntu.com/a/410467),但我无法连接到我的 PI。

我输入了以下命令:

sysctl net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -p tcp -d PUBLIC_IP --dport 50000 -j DNAT --to-destination 10.6.0.2:22

iptables -t nat -A POSTROUTING -j MASQUERADE

其中 PUBLIC_IP - 我的虚拟机的公共 IP

10.6.0.2 - 我的 pi 在本地 VPN 网络中的 IP

我已经检查过我的虚拟网络中端口 50000 是否打开

我可以通过 LAN 连接到我的 PI

有什么想法知道为什么它不起作用吗?

答案1

我认为你需要这些命令:

iptables -t nat -I PREROUTING -p tcp -d PUBLIC_IP_ADDRESS --dport 3389 -j DNAT --到目标 VPN_IP_OF_CLIENT:3389

iptables -t nat -I PREROUTING -p tcp -d PUBLIC_IP_ADDRESS --dport 9998 -j DNAT --到目标 VPN_IP_OF_CLIENT:9998

iptables -I FORWARD -m state -d SUBNET_OF_VPN/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT

更改需要托管转发的公共 IP 的 IP 地址(YOUR_IP_ADDRESS)。将目标(例如 192.168.122.2:9998)更改为应用程序本地的原点(应用程序的 VPN IP)在最后一个命令中更改 wireguard 的子网。

您如何在 vpn 设置中获得静态 IP 设置?您需要确保您的客户端每次都获得相同的 IP。此外,重启后您的 vps 可能需要再次输入命令。

我的命令在 Ubuntu Linux 下运行。

实际例子:

iptables -t nat -I PREROUTING -p tcp -d 50.7.80.10 --dport 3389 -j DNAT --到目标 192.168.122.2:3389 iptables -t nat -I PREROUTING -p tcp -d 50.7.80.10 --dport 9998 -j DNAT --到目标 192.168.122.2:9998 iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT

相关内容