![通过多个主机使用 SSH 作为 socks 代理(涉及 http 代理)](https://linux22.com/image/1381610/%E9%80%9A%E8%BF%87%E5%A4%9A%E4%B8%AA%E4%B8%BB%E6%9C%BA%E4%BD%BF%E7%94%A8%20SSH%20%E4%BD%9C%E4%B8%BA%20socks%20%E4%BB%A3%E7%90%86%EF%BC%88%E6%B6%89%E5%8F%8A%20http%20%E4%BB%A3%E7%90%86%EF%BC%89.png)
涉及三台机器。
家用电脑网关服务器工作站上的 Squid 代理服务器。我想使用家用电脑上的 Squid 代理服务器上网
我无法直接访问 PC-3(工作站)上的 squid 代理服务器,但我可以通过 ssh 访问网关服务器,并且网关服务器可以访问 squid 代理服务器。
所以我想将我家用电脑的所有网络流量通过网关服务器引导到工作站上的 squid 代理服务器。
注意-我没有网关服务器上的 sudo 访问权限。
此链接告诉如何连接到第三台电脑,但就我而言,我想连接到代理服务器。
答案1
您不需要使用 SOCKS 代理来通过 SSH 连接 HTTP 代理。您可以使用以下命令:
ssh -f -N -L $portlocal:$machineproxy:$portproxy $machinegateway
$portlocal
- 您机器上的 ssh 客户端将监听此端口,例如您可以选择55555
。然后在 Web 浏览器中,您将 HTTP 代理设置为localhost
端口55555
。$portproxy
- Squid 代理正在监听的端口。$machineproxy
- Squid 代理机器的地址(从网关看到)。$machinegateway
- 从您的电脑上看到的网关机器的地址
网关上的 SSH 服务器必须允许端口转发。如果不允许,您必须要求服务器管理员这样做。