SOCKS 代理
SOCKS是一种互联网协议,它显示了一种特殊的代理服务器。 SOCKS代理的默认端口是1080,但它们也可能在其他端口上。与普通的HTTP代理的实际区别是,SOCKS代理不仅可以用来网络浏Web浏览,但也可为其他应用程序使用,如视频游戏、文件传输或即时通信客户端。和VPN类似,它们作为一个安全的隧道。
普通的SOCKS版本包括4,4A及5。第4版创建一个连接总是需要IP地址,所以DNS解析仍然在客户端上进行。这使得它不能满足很多绕行需要。4A版通常使用主机名。第5版包括身份验证、UDP和IPv6等新技术,但它通常使用IP地址,所以它也可能不是完美的解决方案。另见本章末尾的“DNS泄漏”部分。
各种软件可以利用SOCKS代理来绕过过滤器或其他限制,不仅仅是浏览器,还包括即时通信和电子邮件应用程序等其他互联网软件。
尽管确实存在公共SOCKS代理,但大部分SOCKS代理运行在你的本地计算机上,并且由软件程序提供。因为SOCKS隧道非常灵活,一些审查绕行软件可以在你的计算机上创建一个本地代理(通常可以通过账户名localhost或者IP地址127.0.0.1访问)。这个本地代理可以让网页浏览器等软件使用绕行软件。这类工具包括Tor,Your-Freedom,以及通过PuTTY安装的ssh隧道。
本地代理爱好者T恤(明白了?)
为了使用应用代理绕开审查,在和其它网络通信时,你必须让本地计算机上的软件知道你想使用代理。
有些网络软件通常不支持代理,因为软件开发者没有提供代理支持。但很多软件可以通过“SOCKS化(socksifier)”软件支持SOCKS代理,这些软件的一些例子包括:
- tsocks (http://tsocks.sourceforge.net/)支持Unix/Linux
- WideCap (http://www.widecap.com/)支持Windows
- ProxyCap (http://www.proxycap.com/)支持Windows
配置应用软件
在大多数情况下,通过设置软件使用SOCKS代理的方法和使用HTTP代理的方法差不多。软件如果支持SOCKS代理,在它的菜单或者选项对话框里设置HTTP代理的地方通常会有一个单独的部分让你设置SOCKS代理。有些软件会让你选择SOCKS 4或SOCKS 5代理设置,一般选择SOCKS 5更好,但有的SOCKS代理只支持SOCKS 4.
有些软件,如火狐(Firefox)允许用户同时设置HTTP和SOCKS代理。这种情况下,你就可以在正常网页浏览时使用HTTP代理,当访问视频播放等内容使用SOCKS代理。
Mozilla Firefox
配置Mozilla Firefox使用SOCKS代理:
- 选择“工具(Tools)”菜单,点击“选项(Options)”:
- 会出现“选项(Options)”窗口:
- 在窗口顶部工具栏选择“高级(Advanced)”:
- 点击“网络(Network)”选项卡:
- 点击“设置(Settings)”。火狐弹出“连接设置(Connection Settings)”窗口:
- 选择“手动设置代理(Manual proxy configuration)”,然后其下的选项就可以更改了。
- 输入“SOCKS代理(SOCKS proxy)”地址和“端口(Port)”号,选择“SOCKS v5”然后点击“OK”。
现在火狐就可以使用SOCKS代理了。
微软IE 浏览器
通过以下步骤让IE浏览器使用SOCKS代理:
- 在“工具(Tools)”菜单选择“Internet选项(Internet Options)”:
- IE弹出“Internet选项(Internet Options)”窗口:
- 单击“连接(Connections)”选项卡:
- 单击“LAN设置(LAN Settings)”,IE会弹出“局域网设置(Local Area Network (LAN) Settings)”窗口:
- 选择“为LAN使用代理服务器(Use a proxy server for your LAN)”然后点击“高级(Advanced)”。IE弹出“代理设置(Proxy Settings)”窗口:
- 确保没有选中“为所有协议使用同一代理服务器(Use the same proxy server for all protocols)”:
- 在SOCKS行输入“使用的代理地址(Proxy address to use)”和“端口(Port)”号,然后点击“OK”:
现在IE就可以使用SOCKS代理了。
为其他程序设置 SOCKS 代理
除浏览器之外的很多网络程序也可以通过SOCKS代理连接到网络,绕开网络屏蔽。以下设置的即时通讯软件Pidgin就是一个典型的例子,但是设置其它软件使用SOCKS代理的具体步骤可能略有不同。
- 在“工具(Tools)”菜单单击“首选项(Preferences)”:
- Pidgin会弹出首选项窗口:
- 点击“网络”选项卡。
- 在“代理类型(Proxy type)”里选择“SOCKS 5”,然后会出现更多选项。
- 输入你想使用的SOCKS代理的“主机(Host)”和“端口(Port)”号。
- 点击“关闭(Close)”。
这样Pidgin就可以使用SOCKS代理了。
用完代理之后
在你用完代理之后,尤其是在共享计算机上,一定要把修改过的设置恢复到默认状态。不然,这些程序将继续尝试使用代理。如果你不想让别人知道你用过代理,或者提供本地代理的绕行程序没有同时运行,这会带来麻烦。
DNS 泄漏
使用SOCKS代理会存在一个严重的问题,即有些支持SOCKS代理的程序不会一直通过代理进行网络通信。最常见的就是域名系统(DNS)请求可能不通过代理发出。这种DNS泄漏会造成隐私问题,并可能导致你试图利用代理绕过的DNS被屏蔽。软件是否存在DNS泄漏问题视版本不同而不同。 Mozilla Firefox当前的默认设置存在DNS泄漏问题,但是你可以通过永久设置更改阻止DNS泄漏,避免DNS泄漏的发生:
- 像输入网址一样在火狐地址栏输入“about:config”(你可能会看到一个关于改变高级设置的警告):
- 如有必要,点击“我会小心,我保证!(I'll be careful, I promise!)”来确认你想修改浏览器设置。浏览器会显示一个配置设置信息列表。
- 在“过滤器(Filter)”一栏输入“network.proxy.socks_remote_dns”。这里只会出现这一个设置选项。
- 如果该设置的值为假(false),双击改变为“真(true)”。
现在火狐就可以阻止DNS泄漏了。一旦该值显示为真(true),火狐就会自动永久保存该设置。
如果不使用外部程序,目前还无法阻止微软IE浏览器内的DNS泄漏问题。
在本文撰写时,使用SOCKS 5代理的Pidgin软件还没有发生过DNS泄漏的情况。