我在端口9090处将SOCKS代理设置为其他地方的计算机B:
ssh -D localhost:9090 user@B
并在我的本地Google Chrome浏览器中对其进行配置。但是,计算机B在HTTP代理后面,因此本地发起的HTTP请求通过SOCKS代理到达计算机B,但无法被解决(运行ssh -D localhost:9090 user @ B的终端显示“打开失败:连接失败:否路由到主机”。
我试过了:
但没有一个有效。
任何人都知道如何配置SOCKS代理,以便考虑到计算机B背后的HTTP代理吗?首选不涉及更改服务器上的SSHD或全局配置的方法。
通过SSH“转发”远程网络的代理服务器比使用内置的SOCKS服务器(后者只希望在另一端有一个可通过网关寻址的裸网络)做得更好。
ssh -L 8080:internal_ip_of_proxy:8080 user@ssh_server
这将在本地公开代理服务器,允许您将浏览器的代理设置设置为localhost:8080
,并将通过SSH隧道传输到远程代理。
您可以将其应用于任何远程服务。例如,您可以从服务器建立隧道Imgur(实际上是单主机代理):
ssh -L 8080:imgur.com:80 user@ssh_host
在本地终端上:
curl --header 'Host: imgur.com' localhost:8080
必须curl
提供Host标头,否则将请求一个不存在的localhost
站点。您也可以通过在中添加一行来/etc/hosts
解决此问题,解析imgur.com
为127.0.0.1
...但是,我的话题已经偏离正题了,您不需要任何此目的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句