什么是 ssh -L 123:farawayhost:456 远程主机?

什么是 ssh -L 123:farawayhost:456 远程主机?

来自这个问题:什么是ssh端口转发以及ssh本地和远程端口转发有什么区别,我对这种用法感到困惑:

ssh -L 123:farawayhost:456 remotehost

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

"..., which 是什么意思?可以到达connectToHost机器上。”到底是什么意思?

如果我理解正确的话,ssh -L 123:localhost:456 remotehost这是上述命令的一个特定情况,其中farawayhostremotehost都在同一台机器上。

那么当farawayhostremotehost不在同一台机器上时,它是如何工作的呢?这是否意味着我需要先登录remotehost然后再登录farawayhost

答案1

我不知道为什么一开始我很困惑,也许是因为原来的答案不够清楚,但后来我突然想通了。

假设我有2台机器,其公网IP分别是1.2.3.42.3.4.5

用法是:,它将提示换行符,需要密码on 。ssh -L 10283:1.2.3.4:8000 [email protected] -Nusername2.3.4.5

在此输入图像描述

成功通过身份验证后,ssh不会让您登录,因为-N已指定,但连接已建立。所以任何数据发送到当地的port10283将首先发送到2.3.4.5via ssh(port 22),然后2.3.4.5将数据发送到1.2.3.4on port8000.

现在让我创建一个 html 文件并使用echo hello > index.html运行 http 服务器。1.2.3.4python -m http.server

然后我localhost:10283在本地电脑上打字。

本地电脑:

在此输入图像描述

1.2.3.4

在此输入图像描述

相关内容