长话短说,我的 ISP 对我进行了双重 NAT = 我无法打开任何端口。
我的路由器运行的是 Tomato 固件,并且我的 OpenVPN 客户端已链接到运行 OpenVPN 的 VPS。我可以通过 OpenVPN、VPS 转移我家网络的互联网,一切似乎都正常。
但
我想打开端口,这样我就可以从外部回到我的网络:3389
远程桌面、32400
PLEX、我的 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