如何穿越多个 NAT?

如何穿越多个 NAT?

如果我有下面的设置,我如何从外部访问家庭网络上的设备(通过 SSH、http 服务器等)?(请假设我想要访问的设备是基于 Linux 的)

这是我的设置图:

在此处输入图片描述

基本上,要访问我家庭网络上的任何内容,我必须穿越 2 个 NAT/路由器,即一个位于“ISP 路由器”,另一个位于“家庭调制解调器兼路由器” - 显然,我没有权限更改“ISP 路由器”上的任何内容。因此从那里进行端口转发是不可能的。

是否有任何服务可以让我:

  1. 在我的设备上安装客户端(在家庭网络内)
  2. 还让我为每个设备分配一个 URL。例如:device1.servicename.com、device2.servicename.com 等。
  3. 从外部,每当我想要访问我在设备 1 上运行的 Web 服务器时,我都可以执行 http://device1.servicename.com,或者每当我想要通过 SSH 进入设备 1 时,我都可以简单地连接到“device1.servicename.com:22”等等。

也欢迎任何其他替代方法!

答案1

1 很简单。只需在您的网络上运行 ssh 客户端,然后将其用于ssh -R外部服务器,即可设置到您的网络的远程隧道。2 和 3 比较棘手,因为 SSH 没有类似于 HTTPHost标头的任何内容;您需要使用ProxyCommand将外部 SSH 客户端从内部 SSH 客户端反弹到实际主机。

相关内容