我遇到过很多“如何在 NAT 后面托管某些东西”,但没有一个像我的情况(无论如何我知道如何通过简单的 NAT 托管服务器)。
这就是我的 ISP 的工作方式...
首先,从公共 IP 地址 (208.87.xxx.xxx) 开始,然后从无线塔将其“NATed”到所有客户端 (172.16.xxx.xxx),然后客户端将其拾取到他们的路由器并从那里进行 NAT (例如,我的情况很典型。192.168.0.100 - 192.168.0.254)。
我喜欢说我是“双重 NATed”。
我想托管一个网络服务器。具体来说是一个运行名为索克索。默认情况下它使用端口 4444。我恰好更喜欢该端口,但我可以更改它。
我该怎么做呢?或者这是否不可能?
答案1
这很可能是不可能的。
您可以在每台路由器上设置一条 NAT 规则,第一台路由器从公网 IP 208.87.xxx.xxx 到中间 IP 172.16.xxx.xxx。然后下一台路由器有一条从 172.16.xxx.xxx 到内部 IP 192.168.0.x 的 NAT 规则。
但我假设您的 ISP 控制第一个 NAT 并且不会为您设置规则。
答案2
由于您无法控制外部 NAT,因此无法在其上设置任何端口转发规则,您无法直接执行此操作。
如果你只想自己使用该服务,在自己的电脑/笔记本电脑和其他你可以控制的机器上,你可以使用 VPN 解决方案,例如鰤鱼在各个位置之间共享服务。朋友可以通过相同的方式访问服务。除非 VPN 的 NAT 穿透技术能够穿透您的两级配置,否则当然会产生额外的延迟。
如果您想让您的服务更加公开(这样您就可以从几乎任何机器访问它和/或让公众可以看到该服务),那么如果您有某种外部服务器(例如 VPS),则可以进行设置。然后,您可以在外部服务上设置自己的 VPN,从运行 Sockso 的家庭机器连接到该 VPN,并让服务器通过 VPN 将其公共接口上的端口重定向回线路。一个简单的 SSH 隧道就可以了,OpenVPN 也可以。显然,这不是零成本,但即使是最便宜的 VPS 也应该能够为此目的托管一个小型 SSH 服务器,即使是偶尔看到的每月 1 或 2 美元的愚蠢小型服务器(64Mb RAM 和 1 或 2 Gb 磁盘空间)(尽管这些 VPS 上的带宽限额可能非常有限,并且如果他们的 TOS 禁止运行代理,请小心确保他们不会将其算作运行代理)。使用这种方法,您肯定会看到服务上的额外延迟 - 因为任何与您的服务器的连接都必须进入和退出 VPS。