我正在尝试从设备的浏览器访问 HTTP(S) 网站。我的设备只能通过双 SSH 隧道访问该网站。
使用这技术,我能够设置我的 Firefox 浏览器,以便成功通过我的服务器上的 SSH 隧道进行代理SERVER1
。
但是,SERVER1
无法访问我需要的网站。幸运的是,SERVER1
可以通过 SSH 连接到另一个SERVER2
可以访问的人。
现在,我可以运行:
SERVER1 $ ssh -D 12345 myuser@SERVER2
并创建另一条从SERVER1
到 的隧道SERVER2
,但我不清楚如何在没有 Firefox 的情况下执行“firefox”部分SERVER1
。
最重要的是,该网站位于非标准端口(比如说 8765),所以我不确定它export http_proxy
是否可以工作。
我该怎么做?谢谢
答案1
要链接代理: https://superuser.com/a/843766/19867
ssh -tt -v -L1234:localhost:12345 user@server1 ssh -t -D 12345 user@server2
答案2
首先设置ProxyJump
到目标服务器的链。这在你的 ssh-config 中可能看起来像这样
Host SERVER2
ProxyJump SERVER1
您可以使用以下方式链接更多跳转主机ProxyJump jumphost1,jumphost2
然后使用ssh -D 1234 SERVER2
并设置localhost:1234
为袜子本地 Firefox 中的代理。
另一种方法是使用ssh -L
转发 HTTP 端口,但当服务器使用虚拟主机的主机名或选择 TLS 证书时可能会更加复杂。
好处是ProxyJump
,您不需要考虑当您设置它时,所有的 ssh 选项是否会像往常一样工作,并且您可以使用主机名,就像您可以直接访问它一样。