【问题标题】:connecting using ssh tunnel with client using remote ip and not local ip使用 ssh 隧道与使用远程 ip 而不是本地 ip 的客户端连接
【发布时间】:2017-08-14 20:39:30
【问题描述】:

我有以下问题

以下 ssh 连接运行良好:

hostAWin --> hostBLinux

hostBLinux --> hostCLinux

我需要让 hostAWin 上的客户端使用 ssh 连接到 hostCLinux 到 hostCLinux ip

但此通信被防火墙阻止

我不能使用 ssh 隧道,因为这将通过将客户端定向到 localhost 来完成,但我需要客户端继续尝试连接到 hostC 的 ip。

我该怎么做? (如果有可能的话……)


澄清::

我无法在 A 上映射 hosts 文件,因为实际情况是我有多台机器 (c,d,e,f...),所有这些机器都无法被 A 访问。

在 A 中,我需要打开多个 ssh 连接(c、d、e、f 各一个)

我想简化问题,所以我提出了一个单一的连接问题,而事实上它是一对多的。都被公司 fw 阻止,并且都可以通过 b 访问。

【问题讨论】:

    标签: ssh ssh-tunnel


    【解决方案1】:

    如果您在 hostA 上的客户端通过名称(不是 IP 地址)连接到 hostC,那么您可以使用 c:\Windows\System32\Drivers\etc\hosts 将该主机名指向 127.0.0.1,因此它使用您的 ssh 隧道而不是直接连接。

    就此而言,您可以将 hostC 的 DNS 名称指向 hostB 的 IP 地址,然后使用从 hostB 到 hostC 的单跳隧道

    【讨论】:

    • 我已经想到并排除了这个解决方案。虽然如果客户端只有单个连接就可以了,但在我的情况下,客户端连接到许多服务器,所以我不能对所有人使用相同的 ip。它必须是每个唯一的ip(实际上不止c,它是c,d,e......都被fw阻止,并且可以从b访问
    • 关于您提出的单跳解决方案,不确定我是否关注您。将hostC的dns名称指向hostB是什么意思?什么是单跳隧道?
    • 我的意思是在hostA的网络设置中将hostC的名称设置为hostB的IP地址。然后 hostA 尝试连接到 hostC,但实际上将流量发送到 hostB,在那里您有一个 ssh 隧道将连接转发到 hostC(但绕过阻止 hostA hostC 直接的防火墙)。
    【解决方案2】:

    最后我能够通过使用令人愉悦的行业的 ui 客户端解决问题,这使我能够将本地 ip (127.x.y.z) 耦合到同一个端口以创建不同的连接

    通过这种方式,我能够将一台机器通过另一台机器链接到许多不同的机器 原来是这样的

    127.0.0.1:22 -> 22:mediatorSshAccessible machine-> 22:machineC

    127.0.0.2:22 -> 22:mediatorSshAccessible machine-> 22:machineD

    127.0.0.3:22 -> 22:mediatorSshAccessible machine-> 22:machineE

    等等等等……

    现在只剩下一个问题了。

    我如何使用一些更标准的客户端(例如 putty)重新创建它? 腻子甚至不会让我映射本地IP。 我怎样才能使用常规的 ssh 命令呢?

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 2015-05-18
      • 1970-01-01
      • 2022-01-22
      • 2012-08-13
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      • 2012-02-07
      相关资源
      最近更新 更多