当前位置: 首页>>技术教程>>正文


firefox – 如何设置通过SSH隧道传输流量的本地SOCKS代理?

, ,

问题描述

假设我可以访问支持隧道的SSH服务器,并且我正在运行* ubuntu的PC上,如何设置本地SOCKS代理,该代理在到达Internet之前通过该SSH服务器对通信进行隧道传输?

最佳方法

连接到运行ssh的服务器时使用的ssh二进制文件支持使用-D标志开箱即用地运行SOCKS代理。例:

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337告诉ssh在本地1337端口上启动SOCKS服务器。

  • -f将进程派生到后台。

  • -C打开压缩。

  • -q启用了”Quiet mode”,因为这里的目的只是为了建立隧道,我们实际上并不关心错误输出等。

  • -N告诉ssh,不会发送任何命令(如果我们未指定,-f会抱怨)。

  • -p指定要使用的端口;显然,该默认值默认为22,因此上面的声明毫无意义,但为清楚起见而包括在内。

当您的SOCKS服务器启动并运行时,您只需要确保您的应用程序(通常是Web浏览器)尝试连接到本地SOCKS代理,而不是常规Internet。

在Firefox 29(此处以示例说明)中,这是通过转到菜单(右上角的三个香肠),然后依次单击“首选项”和“>”来实现的。进阶>网络> (连接)>设置…-确保仅填写“袜子”字段!由于您的代理位于同一系统上,因此您可以使用localhost127.0.0.1指向您在同一系统上设置的任何端口。

如果您还需要通过隧道传送DNS请求(如果不是,则DNS查找将显示您要访问的网站),您可以仅检查”Remote 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

这个答案是从法国写的,但是通过瑞典传来的:)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10078.html,未经允许,请勿转载。