通过两台服务器的 SSH 隧道访问端口 9091 上的 Web 服务

通过两台服务器的 SSH 隧道访问端口 9091 上的 Web 服务

我有一个正在运行的“电话回家”服务,remote1它通过以下方式连接LAN1

ssh -N -R 16864:localhost:22 <myuser.on.lan1>@<lan1.ip>

因此从 SSH 终端上LAN1我可以轻松地加载终端上remote1执行的操作:

ssh -l <myuser.on.remote1> -p 16864 localhost

remote1正在端口(传输)上运行带有网络面板的守护进程服务9091

因此,我想要的是从我的本地机器通过(已经在端口上打开了隧道)连接到端口9091上的这个 Web 界面。remote1LAN116864

因此可能是这样的:

Local machine browser -> LAN1:16864 -> 22:REMOTE1:9091

根据我读到的内容,我尝试了很多不同的 SSL 命令这里这里这里最初的设置是基于

我一直在尝试这样的事情,但我确信我已经接近目标了,但却不知道该怎么做:

ssh -t -L8080:localhost:5590 [email protected] ssh -l user -p 16864 localhost -N

当然,如果我在这里问,那是因为我失败了。有专家可以帮我解决这个问题吗?

编辑:

我没有任何图表,但我会以不同的方式解释:

我有 3 台 Linux 计算机:

  • REMOTE1远程位置始终开启的 raspPi,我无法访问其网络配置
  • LAN1始终在我的本地局域网上使用 raspPi,在那里我可以设置端口转发、固定 IP 和动态 DNS,没有任何问题。
  • 我的电脑,我希望能够通过它访问网络服务REMOTE1

REMOTE1正在通过以下方式“呼叫总部”以保持 SSH 连接LAN1

ssh -N -R 16864:localhost:22 <myuser.on.lan1>@<lan1.ip>

并且该部分工作正常。我使用本地计算机终端通过 SSH 连接到LAN1,然后在LAN1计算机内部输入:

ssh -l <myuser.on.remote1> -p 16864 localhost

我可以在 上执行终端操作REMOTE1

目前我只在 9091(传输守护进程)上获得了一项服务,但稍后我会安装一些其他的东西。

所以问题是,我如何从我的本地机器建立隧道,通过隧道连接访问端口上的9091WebREMOTE1服务LAN1

简单来说:

  • 本地机器:ssh 8888 <magic> 1684 <magic> 9091 <magic> -N
  • 打开浏览器localhost:8888/transmission/web/并访问 transmission-daemonREMOTE1

答案1

首先进行设置,以便您可以从 PC“直接”通过 ssh 连接到 remote1:

在你的 .ssh/config 中输入:

Host remote1
  Proxycommand ssh -q -l <myuser.on.lan1> lan1 nc -w 600 localhost 16864

确保 netcat(nc 命令)已安装在 lan1 上。

您现在应该能够使用以下命令从您的 PC 进行 ssh 了:

ssh <myuser.on.remote1>@remote1

一旦成功,请使用:

ssh -L8888:localhost:9091 <myuser.on.remote1>@remote1

并且您可以通过 localhost:8888 访问 remote1:9091 上的传输

相关内容