通过运行 OpenVPN 的 VPS 将隧道端口通过 Tomato Router 连接到我的家庭网络

通过运行 OpenVPN 的 VPS 将隧道端口通过 Tomato Router 连接到我的家庭网络

长话短说,我的 ISP 对我进行了双重 NAT = 我无法打开任何端口。

我的路由器运行的是 Tomato 固件,并且我的 OpenVPN 客户端已链接到运行 OpenVPN 的 VPS。我可以通过 OpenVPN、VPS 转移我家网络的互联网,一切似乎都正常。

我想打开端口,这样我就可以从外部回到我的网络:3389远程桌面、32400PLEX、我的 IP 摄像头......我所有的东西。

有人可以为我提供一份“傻瓜式”解释如何做到这一点吗?

答案1

我对双重 NAT 表示哀悼。

如果你有 VPS 的 root 权限,请尝试使用目的端口转发使用 iptables (DNATing)。在 VPS 上运行以下命令

sysctl -w net.ipv4.ip_forward=1   #see link above to make this setting survive reboots
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination x.y.z.w

其中 eth0 是 VPS 上面向互联网的接口,也是x.y.z.w你家用电脑的 IP通过 OpenVPN 隧道。如果您转发的服务需要 TCP 和 UDP,则可能需要重复上述命令,并将-p tcp替换为-p udp。如果您的 FORWARD 链中有默认的 DROP 策略(不太可能),则需要类似 iptables -A FORWARD -i eth0 -p tcp --dport 80 -d x.y.z.w -j ACCEPT

实现 TCP 端口转发的另一种完全不同的方法是使用ssh选项-R。在您的家用计算机上发出以下命令

ssh -N -R *:3389:x.y.z.w:3389 [email protected]

其中x.y.z.w和上面一样,m.n.o.p是您的 VPS 的 IP,user是您在 VPS 上的 ssh 登录名。您需要在 VPS 上GatewayPorts yes设置/etc/ssh/sshd_config(并重新启动)。sshd

相关内容