我有一个正在运行的“电话回家”服务,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 界面。remote1
LAN1
16864
因此可能是这样的:
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(传输守护进程)上获得了一项服务,但稍后我会安装一些其他的东西。
所以问题是,我如何从我的本地机器建立隧道,通过隧道连接访问端口上的9091
WebREMOTE1
服务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 上的传输