![使用 ssh-socks5 代理通过 jumpserver 隧道传输端口 8080?](https://linux22.com/image/645498/%E4%BD%BF%E7%94%A8%20ssh-socks5%20%E4%BB%A3%E7%90%86%E9%80%9A%E8%BF%87%20jumpserver%20%E9%9A%A7%E9%81%93%E4%BC%A0%E8%BE%93%E7%AB%AF%E5%8F%A3%208080%EF%BC%9F.png)
我有这样的设置:
LocalPC – Jumpserver – 页面仅可通过此机器访问的 Web 服务器
localhost:8080
LocalPC 和 Webserver 未连接 - 必须使用 Jumpserver。Jumpserver 无法访问 Webserver 上的网页
我想使用 Firefox 在 LocalPC 上查看此网页。
我知道如何为 Jumpserver 设置 socks 代理 - 通常这就足够了,但在这种情况下不够
ssh -TD 8080 me@jumpserver
和
我知道如何通过 Jumpserver 隧道传输特定端口
ssh -f -N -q -L 2222:me@target:22 me@jumpserver
但是使用第一种方法只能建立到 Jumpserver 的隧道,而使用第二种方法(端口 8081:me@webserver:8080)不会出现错误,但会导致 404
http://localhost:8081
在 Firefox 中……
那么我如何在 LocalPC 上查看该网站?
出于安全原因:我需要对两个连接进行加密,并且不允许 Jumpserver 上的其他用户使用该隧道。
(抱歉,代码块不允许我写单词 localhost...)
答案1
我不知道你可以使用菊花链连接 SSH 隧道,但我刚刚尝试了一下,它运行良好。这是我的测试环境
- 192.168.1.10 (HearNoEvil) 浏览器
- 192.168.1.20 (SeeNoEvil) 中间的小猪
- 192.168.1.30 (SpeakNoEvil) 服务器
菊花链看起来像这样
- 隧道
192.168.1.30:8080 <-> 192.168.1.20:8081
SeeNoEvil:~# ssh -f -L 8081:127.0.0.1:8080 用户@SpeakNoEvil -N
- 隧道
192.168.1.20:8081 <-> 192.168.1.10:8082
HearNoEvil:~# ssh -f -L 8082:127.0.0.1:8081 root@SeeNoEvil -N
Socks 代理 127.0.0.1:8082
我当然是从外向内逆向工作的,SpeakNoEvil 是我的服务器。HearNoEvil 是我的浏览器。希望这对你有帮助。(^_^)
答案2
好的,在这个问题的第一个答案的帮助下我找到了解决方案: https://stackoverflow.com/questions/1010808/ssh-tunnelling-chain#1122282
如果我在 ssh-config 中构建此隧道链,则可以使用 ssh -TD 8080 webserver 并构建动态隧道。然后,我只需在 Firefox 中添加 127.0.0.1:8080 作为 socks5 代理即可。