pzkpfw Asked: 2014-05-21 04:34:37 +0800 CST2014-05-21 04:34:37 +0800 CST 2014-05-21 04:34:37 +0800 CST 如何设置通过 SSH 传输流量的本地 SOCKS 代理? 772 假设我可以访问支持隧道的 SSH 服务器,并且我在运行 *ubuntu 的 PC 上,我如何设置本地 SOCKS 代理以在到达 Internet 之前通过该 SSH 服务器隧道传输流量? firefox 1 个回答 Voted Best Answer pzkpfw 2014-05-21T04:34:37+08:002014-05-21T04:34:37+08:00 连接到运行 ssh 的服务器时使用的ssh二进制文件支持开箱即用的 SOCKS 代理,带有-D标志。例子: ssh -D 1337 -f -C -q -N user@remote -p 22 -D 1337告诉ssh在本地端口 1337 上启动 SOCKS 服务器。 -f将进程分叉到后台。 -C打开压缩。 -q启用“安静模式”,因为这里的目的只是隧道我们并不真正关心错误输出等。 -N告诉我们ssh不会发送任何命令(-f如果我们不指定它会抱怨)。 -p指定要使用的端口;显然这是默认为 22,所以上面的陈述毫无意义,但为了清楚起见包含在内。 当您的 SOCKS 服务器启动并运行时,您只需确保您的应用程序(通常是 Web 浏览器)正在尝试连接到本地 SOCKS 代理,而不是常规的 Internet。 在 Firefox 29 中(此处作为示例进行说明),这是通过转到菜单(右上角的三个香肠),然后是首选项>高级>网络>(连接)>设置...来实现的-确保您只填写 SOCKS 字段!由于您的代理位于同一系统上,因此您可以使用localhost或127.0.0.1指向您在同一系统上设置的任何端口。 如果您也需要对 DNS 请求进行隧道传输(如果不需要,您的 DNS 查找将显示您尝试访问的网站),您可以只检查“远程 DNS”,或者也可以在about:config. 在最后一种情况下,打开它并设置这些值: network.proxy.socks : 127.0.0.1 network.proxy.socks_port : 1337 network.proxy.socks.remote_dns : true network.proxy.socks_version : 5 network.proxy.type : 1 您可能还需要此设置以从隧道中排除某些域或站点: network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com 这个答案是从法国写的,但通过瑞典隧道:)
连接到运行 ssh 的服务器时使用的
ssh
二进制文件支持开箱即用的 SOCKS 代理,带有-D
标志。例子:-D 1337
告诉ssh
在本地端口 1337 上启动 SOCKS 服务器。-f
将进程分叉到后台。-C
打开压缩。-q
启用“安静模式”,因为这里的目的只是隧道我们并不真正关心错误输出等。-N
告诉我们ssh
不会发送任何命令(-f
如果我们不指定它会抱怨)。-p
指定要使用的端口;显然这是默认为 22,所以上面的陈述毫无意义,但为了清楚起见包含在内。当您的 SOCKS 服务器启动并运行时,您只需确保您的应用程序(通常是 Web 浏览器)正在尝试连接到本地 SOCKS 代理,而不是常规的 Internet。
在 Firefox 29 中(此处作为示例进行说明),这是通过转到菜单(右上角的三个香肠),然后是首选项>高级>网络>(连接)>设置...来实现的-确保您只填写 SOCKS 字段!由于您的代理位于同一系统上,因此您可以使用
localhost
或127.0.0.1
指向您在同一系统上设置的任何端口。如果您也需要对 DNS 请求进行隧道传输(如果不需要,您的 DNS 查找将显示您尝试访问的网站),您可以只检查“远程 DNS”,或者也可以在
about:config
. 在最后一种情况下,打开它并设置这些值:您可能还需要此设置以从隧道中排除某些域或站点:
这个答案是从法国写的,但通过瑞典隧道:)