首先,抱歉我的英语不好。IPv4 连接通过运营商级 NAT (CGNAT) 路由,而 ISP 不提供 IPV6。这样我就无法打开任何端口。我尝试使用 vps 在特定端口上进行反向隧道 (ssh),并且成功了。因此,我可以从任何地方访问 PC 上的服务,只需放置 vps 的 ip 和指定的端口即可。但是,我希望释放所有端口。(例如:localhost:1=vps_ip:1...localhost:65535=vps_ip:65535)只有我用于 ssh 的端口除外。如果我无法通过 ssh 执行此操作,您可以告诉我最好的方法是什么,最好能发送一个教程。
答案1
您可以使用ssh
隧道在 VPS 上建立完整的“虚拟”网络接口,例如这个答案。
然后,您可以将所需的所有端口转发到 VPS 上的此隧道接口。
你不能用全部端口,因为您仍然需要端口来与 VPS 进行通信(例如 22 ssh
)。
好的,但是没有释放“所有端口”的配置,所以我不需要为每个将要打开的服务器进行配置。
不确定你的意思。你需要iptables
规则来将你感兴趣的每个端口从 VPS 中的外部网络接口转发到隧道接口。所以你做需要为每个端口配置此项(或者相反,添加排除列表)。Google 搜索“端口转发 iptables”等内容以获取更多信息。
我发现了名为 openvpn、softether、wireguard 的 vpn……
您使用的ssh
是某种 VPN,因为这就是您在问题中询问的内容。如果您愿意,可以使用不同类型的 VPN。
答案2
我知道这已经过时了,但是鉴于 TMobile 家庭互联网最近出现的问题,绕过 cgnat 是必须的!如果有人看到,此 GitHub 链接将为您提供有关使用内容和方法的选项和指南。还有一个 Facebook 群组,但我不使用 Facebook...所以...是的...
答案3
没有办法直接连接。您要么需要一个协调器,要么需要知道想要连接的任何人的 IP 地址,并不断向他们发送 udp 数据包,以便他们可以按需连接。
https://en.wikipedia.org/wiki/Hole_punching_(networking)
编辑:忘记了这不是一个社交网站,只欢迎平庸的答案。继续投反对票吧。