首先说明,本为不是翻墙的教程,此类的文章太多了,很多都写得很好,我就不现眼了。虽然单独在某种浏览器中(特别是FireFox中)实现“自动代理”的文章也不少,但好象没有同时介绍在多种浏览器上设置的,所以我就简单说一下吧。
什么是“自动代理”
平时我们开了FG等翻墙代理后在IE或FireFox中设置代理的上网方式是全局代理,一旦设置后不管访问什么网站,都会从国外转一下。但我们其实只想用它代理访问墙外的网站,而墙内一些常规网站(如网易等)用代理反而会慢,另外也会给代理服务器造成额外的压力,影响别的朋友使用代理。
所以就有了根据目标网址来自动确定是否使用代理的方法(其实在IE中早就有这一功能了),这就是“自动代理”了。
在FireFox中使用自动代理
FireFox有相应插件,所以相关的介绍文章也最多,在此我就简单抓图说一下:
首先需要安装AutoProxy扩展,重启后在弹出的配置窗口中选择唯一的一个列表:gfwlist

AutoProxy订阅列表选择
订阅后,运行你本机的代理软件,然后从配置窗口菜单的“代理服务器-选择代理服务器“中选择你的代理服务器,一切就搞定了,就是这么简单!

AutoProxy选择你使用的代理
如果你用的是些不常见的代理或是自定义端口了,只需要到菜单的“代理服务器-编辑代理服务器”中按实际的端口简单编辑一下就可以搞定了。
关于.pac文件
在介绍后面其它浏览器的配置之前有必要先做一下“科普”小宣传:
什么是.pac文件?
.pac文件是“代理服务器自动配置文件”,通过它可以给指定的网站使用指定的代理——也即说可以同时使用N多代理(如果你有这个闲心的话)
.pac文件的构成?(非代码狂人请略过此问题)
.pac文件其实就是一段JScript脚本,其实包含一个“FindProxyForURL”函数这个函数需要两个参数:url, host。函数的返回值就是针对些url你想用的代理,譬如:127.0.0.1:8080。这只是个框架,至于函数内部实现,就看各人的编码水平了。
.pac文件有没有现成的?
原则上说来,不同环境下用的规则是不同的。但对于“翻墙”这一共同目标来说,还是有现成的.pac文件可用的。AutoProxy2Pac就是一个把前面介绍的AutoProxy规则列表转化为.Pac文件的小工具。该页面提供了针对不同代理的导出文件,其实内容基本上都是一样的,区别就在于函数内第一行返回的端口号的不同。完全可以下一个,然后根据自己的具体情况来简单修改。
在不同浏览器中怎样使用本地.pac文件
在不同浏览器中本地文件路径的表示方法不同,最简单的方法就是把.pac文件改成.txt文件,然后播放到浏览器中,然后在页面中点右键,选属性,就能看到本地文件在此浏览器中的表示格式了。
在Chrome中使用自动代理
本来Chrome是调用IE的自动代理配置,但新版的Chrome支持插件功能了,与AutoProxy功能类似的Chrome插件是Proxy Switchy!,不过,配置起来略微麻烦一点:

Chrome自动代理工具Proxy Switchy!设置方法
首先点左边的”New Profile”,新建一个配置,”Profile Name”随意填,下方选择“Automatic Configuration”,”Auto Config URL”填写代理软件对应的.Pac文件。.Pac文件可是URL的形式,也可以是本地的文件,考虑到速度,我填写了下载到本地的文件,填写格式为 file:///d:\xxx.pac (在不同浏览器中本地文件的表示方法是不一样的)
然后再加几个,把你常用的几个代理都加进去。
其它标签都不要改动,最后到“General”标签中,按下图设置即可:

Chrome自动代理工具Proxy Switchy!设置方法2
上图设置是为了实现下图效果,点击插件图标时可以方便地切换代理:

Chrome自动代理工具Proxy Switchy!设置后切换效果
在IE中启用自动代理
好象自IE 4.0起就支持.pac文件了,只需要在IE菜单的”Internet选项-连接-局域网设置”中照下图设置即可:

在IE中启用自动代理
其中d:\pac8580.pac是我下载到本地的pac文件。当然,你也可以填写AutoProxy2Pac中给出的地址,其好处是更新及时,只是第一次打开会略用一点点时间。
不过,遗憾的是,我没能搞定在IE中自动切换代理的办法,只能手工到这儿来改成不同的.Pac文件(或是不同的Pac文件网址)
在Opera中使用自动代理
Opera也象IE一样没有自动的功能,不过,Opera的好处在于可以自己写脚本配置一切!
我接触Opera较少,折腾了一晚上只搞定了在菜单中加入自动选择的功能。做法是在Opera的安装目录下的”ui\standard_menu.ini“文件最后添加了如下几行:
[Browser Menu Bar]
Submenu, 代理, Proxy Menu
[Proxy Menu]
;Item, “Enable HTTP Proxy”=Set preference, “Proxy|Use HTTP=1″ | Set preference, “Proxy|Use HTTP=0″
Item, “启用代理”=Set preference, “Proxy|Use Automatic Proxy Configuration=1″ | Set preference, “Proxy|Use Automatic Proxy Configuration=0″
Item, “FreeGate”=Set preference, “Proxy|Automatic Proxy Configuration URL=http://autoproxy2pac.appspot.com/pac/proxy/127.0.0.1/8580″
Item, “GAppProxy”=Set preference, “Proxy|Automatic Proxy Configuration URL=http://autoproxy2pac.appspot.com/pac/proxy/127.0.0.1/8000″
其中“http://autoproxy2pac.appspot.com/pac/proxy/127.0.0.1/8580”等是从AutoProxy2Pac中得到的Pac文件。我本想用本地文件的,但实际测试中发现这个版本的Opera可能有Bug,不支持读取本地磁盘上的Pac文件(现在想来可能是Win7对磁盘根目录的保护造成的)
配置后效果如下:

Opera中配置后的自动切换菜单
几句闲话
这篇文章想了有一段时间了(怎么全都是早想好了,但就是没写……),今天跟Haphic聊天时,听到他还是在用全局代理,就想推荐他改成自动代理的,但一想解释需要时间,而我当时又在不停地接电话,所以就没详细跟他说。晚上有时间了,而且明天休息,可以好好睡了懒觉了,睡觉之前就把这篇文章赶出来吧。
以前每当想到“老大哥在看着你”时总觉得有些别扭,但后来想想也就释然了:我是翻墙了,但我翻墙出去的目的与政治等无关。(PS:我在Twitter上的个人简介是“孤身寒夜翻高墙,赏花赏月赏秋香”,虽然并非真是风花雪月之事,但趴在墙头看外面世界也是别有一翻滋味的)
说到与政治无关,今天Haphic告诉我说Python都被墙了,真服了!干脆把.net java php全墙了,中国人全用易语言来进行汉语编程吧,官府不是就喜欢“自主研发”的东西吗?
另外,今天新上线的“西厢计划”是一个更高级的“翻墙”方式,只可惜目前只有Linux下的应用,只能从精神上支持一下了。
理服务器自动配置