使用 SSH 创建无需浏览器的 HTTP 代理

使用 SSH 创建无需浏览器的 HTTP 代理

我正在尝试从设备的浏览器访问 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

重复的如何链接 SOCKS 代理?

要链接代理: 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 选项是否会像往常一样工作,并且您可以使用主机名,就像您可以直接访问它一样。

相关内容