简而言之,我在远程机器上设置了 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