SSH 服务器,推送至客户端

SSH 服务器,推送至客户端

基本上,我有两个通过互联网连接在一起的网络,我们称它们为 N1 和 N2。每个网络上都有一台计算机,C1(在 N1 中)和 C2(在 N2 中)。任何网络路由器(R1 和 R2)与计算机之间都没有端口转发。

C2 还运行着一个 ssh 服务器。我写这篇文章的目的是,C1 如何通过 SSH 连接到 C2?如上所述,没有端口转发,因此即使网络 N1 和 N2 中的任何一个具有静态 IP,它也无法工作。

以下网络图应该有助于澄清这一情况: 网络

传奇:

  • N1——第一个网络。
  • N2-第二个网络,位于互联网的另一端:)
  • C1-管理员用来通过 SSH 进入 C2 的计算机。
  • C2 - 管理员可能需要管理的目标计算机,可能正在sshd运行
  • S1——可能协调系统的服务器。
  • R1 - 为 C1 提供 IP 并将部分端口转发到 S1 的路由器。外部 IP 地址是静态的。
  • R2 - 常规家庭网络设置,路由器向 C2 提供 IP 以实现互联网连接。外部 IP 地址是动态的。
  • 黄线——物理连接。
  • 绿线 - 虚拟 SSH 连接 - 绿线 C1-R1 实际上可能需要改为 C1-S1-R1。

该系统的一个主要方面是管理员可以在 R1 网络中的任何 PC 上管理 C2。因此,R1 和 N1 中的任何 PC 之间不能有任何端口转发(因为这违背了能够使用 N1 上的任何计算机来管理 C2 的目的)。

答案1

一种简单的方法是使用可通过互联网访问的第三台服务器(具有公共 IP 地址)。从 C2 到此服务器建立反向连接(我将其称为 M,代表中间人)(使用选项 -R)。这基本上会打开一个新端口,例如 M 上的端口 8000,任何连接到 M:8000 的内容都将被转发到端口 22 上的 C2。

接下来,只需连接到 M:8000 即可到达 C2。

您可以查看此问题以了解更多信息:SSH 端口转发

相关内容