Categories
Technology

利用SSH Tunnel实现一键翻墙

首先,’一键翻墙‘并不是真正的’一键‘,在Firefox用此方法至少需要三键,而且这个方法的门槛不低,不仅需要一个可以提供SSH访问的中继服务器,客户端的设置也比较麻烦,所以本方法不适用非IT人士。

步骤:

1. 首先你需要一个提供SSH的中继服务器,这里以dreamhost.com为例。如果购买过dreamhost的虚拟主机服务的用户,在https://panel.dreamhost.com 上创建可以使用访问SSH的用户账户,利用该账户可以SSH到服务器:

2. 用Putty(一个Windows 上的SSH客户端软件)创建一个SSH Tunnel,以在客户端创建一个可供浏览器使用的代理服务器。首先,输入dreamhost的主机名、端口号,然后到Connections -> SSH -> Tunnels窗口,选择’Dynamic’,然后输入一个本机端口号,如9999,然后点’Add’,完成后把该配置在Putty内保存成一个‘Saved Session’: 注意保存后的配置名在之后的配置中会使用到。

3. 安装两个Firefox插件。

插件1: Proxy Selector – https://addons.mozilla.org/en-US/firefox/addon/proxy-selector/。这个插件允许在Firefox上配置多个备选proxy,并快速切换。这里我们配置一个本地localhost的代理服务器,其端口号为上步在putty的Tunnels中配置的9999端口。注意需要把代理类型设置为‘Socket 4’。

插件2:External application Button – https://addons.mozilla.org/en-US/firefox/addon/external-application-button/ 这个插件的作用是在Firefox上创建运行本地应用程序的快捷方式,用来快速启动putty命令行方式(可预先配置好用户名和密码)。

这里我们建立了一个快捷方式,指向了一个bat文件startPuttySilent.bat。此bat文件内容如下:

start “” c:\app\putty.exe -load “tournemire.dreamhost.com” -l <USERNAME> -pw <PASSWORD>

注意这里带了双引号的tournemire.dreamhost.com并不代表一个服务器,而是你在步骤2中在Putty上定义的‘Saved Session’名字,你可以取如 ‘My proxy server’这样的名字,它实际指向了putty中该配置中定义的SSH服务器地址。

-l和-pw分别为用户名和密码。如果担心安全问题,可以不指定,而是在每次启动SSH连接的时候手工输入。命令行前使用了‘start…’ 的目的在于启动后只保留putty的命令行窗户,而原始的Windows命令行窗口关闭,否则会显示两个黑窗口。

现在需要的配置都完成了,当你需要启动代理翻墙的时候只需要:

1. 在Firefox中Proxy Selector插件选项定义好的本地代理(2键);2) 在Firefox点击定义好的外部putty应用快捷方式 (1键) – 最快3键可以完成代理切换。