1 min read

Firefox SOCKS 代理切换

修订历史

  1. 2012.12.14:文中介绍的方法,在对待所有网站上,是没有区别的,要么全部走 SOCKS 代理,要么全部不走,而且要经常手动切换,办法太笨,推荐使用更智能的 FoxyProxy

如果你有一个 SSH 账号,允许你登录到远程电脑,那么可以将 Firefox 请求的数据通过 SSH tunnel 发送给远程电脑,借助远程电脑访问你想要访问的信息,保证信息安全。

首先,通过 SSH 连接上远程电脑:

$ ssh -D 9999 -C samchen@zfanw.com

D 参数表示 SSH 隧道在本地电脑监听的端口,C 参数表示压缩传输的数据。这样我们就利用 SSH 转发端口功能在本地电脑与远程电脑之间建起一条安全通道。

接着是启用 Firefox 的 SOCKS 代理,打开 firefox 首选项中的网络,选择「设置」,然后进入代理配置对话框,按下图所示填入信息:

[resp_image id=’15216′ caption=” ]

这样,firefox 浏览器所请求的数据将通过 SSH tunnel 发送给远程电脑,再由远程电脑代理我们请求。

可是,如果经常要切换 SOCKS 代理呢?总不能时不时要打开代理设置对话框。当然,可以考虑装一个 firefox 扩展,不过我 firefox 上扩展的数量已经不下 10 个了,没打算为着这么个小功能特意装个插件。

autoproxychanger.js

如果你使用 Vimperator 扩展,则可以安装 autoproxychanger.js,这是一个 vimperator 脚本扩展,用于通过命令行控制代理的切换、开关。

首先将其安装到 .vimperator/plugin/ 目录下,然后打开 .vimperatorrc 配置文件,加入如下两行内容:

let autochanger_proxy_settings = "[{ name:'disable', usage: 'direct connection', proxy:{type:0} },{ name:'socks', usage: 'ssh tunnel', proxy:{type:1,socks:'localhost',socks_port:9999,no_proxies_on:'localhost,127.0.0.1',}}]"

let autochanger_proxy_enabled="true"

保存,然后重启 firefox,按 : 进入命令行模式,输入命令 proxy,再按一个空格,可以看到有三个自动补齐项:

  1. default
  2. disable
  3. socks

选择 socks 即可启用 firefox 的 SOCKS 代理,disable 则是不使用代理。

接着再到 vimperator 配置文件中定向两个键映射:

nnoremap <C-A-p> :proxy socks<CR>
nnoremap <C-A-d> :proxy disable<CR>

这样就可以按 Ctrl-Alt-P 启用 SOCKS 代理,按 Ctrl-Alt-D 关闭代理。

报告问题 修订

如果你有自建 https 代理的需求,欢迎尝试 Phantom,一键搭建,方便快捷。查看 demo