通过隧道进行 SSH 访问

通过隧道进行 SSH 访问

我有以下设置,

机器 A(Windows 10 并连接到 ISP(X))和机器 B(Windows 10 并连接到 ISP(Y))。这两台机器(A 和 B)都没有任何直接连接。机器 A 可以访问机器 C(在云端运行 RHEL 的 Linux Box),同样,机器 B 也可以访问机器 C。

现在将机器 C 作为隧道,是否可以从机器 A 访问在机器 B(VirtualBox 内部)中运行的 Linux 机器?如果可以,我们如何使用 putty 做到这一点?我猜这可以通过反向 ssh 隧道实现,但不确定步骤。

编辑1:

                                   PUBLIC IP        SSH (Putty) (Machine C)
Machine A Windows 10 (192.168.1.2) --> ISP(49.xxx.xxx.xxx) ---> (34.xxx.xx.xxx)

                                 PUBLIC IP          SSH (Putty)  (Machine C)
Machine B Windows 10 (192.168.1.15) --> ISP(216.xxx.xxx.xxx) --->(34.xxx.xx.xxx)

Machine B Windows 10 (192.168.1.15) --> Virtual Box (192.168.1.100)

现在我想从机器 A 访问192.168.1.100,我该如何实现这一点?只有一台机器(机器 C)可供机器 A 和机器 B 访问。有没有办法进行一些隧道和访问192.168.1.100来自机器 A?

答案1

机器 B 有一个 Linux VirtualBox 客户机。我假设您已将虚拟机的网络配置为与主机位于同一本地网络上,例如两者都位于 192.168.1.x 上。您可以设置从路由器到虚拟机的端口转发吗?

你要么对情况描述得太少,要么你有一个XY问题


反向隧道

我们假设目标的 IP 是192.168.20.55(您想要访问的 Linux 机器)。

您想通过 IP 从 Linux 客户端进行访问138.47.99.99

目的地 (192.168.20.55) <- |NAT| <- 源 ( 138.47.99.99)

  1. 使用以下命令从目标通过 SSH 连接到源(具有公共 IP):

    ssh -R 19999:本地主机:22[电子邮件保护]

注意:端口 19999 可以是任何未使用的端口。

  1. 现在您可以通过 SSH 隧道从源 SSH 到目标:

    ssh 本地主机-p 19999

  2. 第三方服务器也可以192.168.20.55通过目标 ( 138.47.99.99) 进行访问。

目的地 (192.168.20.55) <- |NAT| <- 源 (138.47.99.99) <- Bob 的服务器

  1. 来自Bob的服务器:

    远程控制[电子邮件保护]

  2. 成功登录Source后:

    ssh 本地主机-p 19999

注意:目的地和源之间的连接必须始终处于活动状态。

提示:您可以在目标上运行命令(例如 watch、top)以保持连接处于活动状态。

来源

相关内容