如何进行 ssh 隧道端口转发?

如何进行 ssh 隧道端口转发?

我在 Mac 上,想要连接到 EC2 实例,然后让该 EC2 实例通过端口 22 连接到远程服务器。据我了解,我会执行以下操作:

sudo ssh -l [USERNAME-FOR-REMOTE-MACHINE] -L 22528:[EC2-MACHINE-IP]:22528 -L 22:[REMOTE-IP]:22 [EC2-MACHINE-IP]

所以我想在本地监听端口 22528(我认为),并以某种方式连接到 [REMOTE-IP] 的端口 22。

我确信我在很多方面都是错的,但如果能得到任何帮助,我将不胜感激

答案1

我画了一些草图

输入 ssh 隧道命令的机器称为»您的主人«

从本地启动 ssh 隧道


从远程启动 ssh 隧道

介绍

  1. 当地的:-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHost意思是:使用 ssh 连接到connectToHost,并将所有连接尝试转发到当地的 sourcePortonPort到名为 的机器上的端口forwardToHost,可以从该connectToHost机器访问。

  2. 偏僻的:-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHost意思是:使用 ssh 连接到connectToHost,并将所有连接尝试转发到偏僻的 sourcePortonPort名为 的机器上的端口forwardToHost,可以从您的本地机器访问该端口。

你的例子

您想通过 EC2 计算机连接到远程服务器,对吗?那么第二张图代表您的场景。 是remotehost您的 EC2 计算机。 是farawayhost您的远程服务器及其感兴趣的粉红色端口(在绘图中为 port 456,但在您的例子中为 port 22)。因此命令必须如下所示:

ssh -L 22528:REMOTE-IP:22 EC2-MACHINE-IP

绿色端口的端口号是22528。现在您可以通过 ssh 访问远程服务器

ssh -p 22528 localhost

答案2

您只需要转发本地端口 22528(-L 22528)即可连接到 REMOTE-IP(:[REMOTE-IP])端口 22(:22)

事实就是如此-L 22528:[REMOTE-IP]:22

在执行此操作的过程中,您将把到本地 22528 的连接转发到 EC2 的 22528,那里将无人监听,并且将到本地 22(您可能无法绑定)的连接转发到 REMOTE 的 22。

没有 sudo。

相关内容