How to set Safari to use PAC file in Mac OS X Lion

on

目标
通过设置Safari的自动proxy切换,实现浏览网页的时候,如果是GFW的站点则自动通过Proxy,如果不是,则不使用Proxy。这样保证浏览国内网站时候速度够快,而浏览GFW的网站也没有问题,全自动,无需手工干预。

操作系统和浏览器
Mac OS X Lion + Safari 5.1(当然低版本的Safari也同样可以这样设置)。如果浏览器是Firefox,可以直接用autoproxy插件,如果浏览器是Chrome,可以用Switchy!插件。

需要下载的软件
1. SSH Tunnel Manager,在Mac App Store中搜索安装即可。
要使用该软件,首先要求有一个可以通过ssh访问的国外虚拟主机,通常有这样主机的,大概也都知道该如何设置ssh端口转发了,所以不再赘述,要注意的是,监听的端口可以随便设置,我设置为7080。如果使用本文中的pac文件,那么也必须要设置为7080。

2. autoproxy.pac脚本,该脚本可以从AutoProxy2PAC站点下载。很可惜,这个站点本身需要翻墙,不过我已经将我自己用的pac文件放在这里,可以下载使用,在SSH Tunnel Manager中必须设置本地端口是7080。

启动SSH Tunnel Manager
连接设置好的ssh会话,检查本地端口是否已经被正常监听。注意最后两行末尾的LISTEN字样,表示已经监听在本地的7080端口上,这意味着任何通过socks代理发送到本地7080端口的请求,都会通过ssh转发到国外的虚拟主机,然后从国外访问GFWed的网站,再通过ssh返回请求的页面。基本上是这样的方式完成翻墙。

Kamus$ netstat -a|grep 7080
tcp4       0      0  localhost.7080         localhost.37233        ESTABLISHED
tcp4       0      0  localhost.37233        localhost.7080         ESTABLISHED
tcp4       0      0  localhost.7080         localhost.37232        ESTABLISHED
tcp4       0      0  localhost.37232        localhost.7080         ESTABLISHED
tcp4       0      0  localhost.7080         localhost.37231        ESTABLISHED
tcp4       0      0  localhost.37231        localhost.7080         ESTABLISHED
tcp4       0      0  localhost.7080         localhost.36407        ESTABLISHED
tcp4       0      0  localhost.36407        localhost.7080         ESTABLISHED
tcp4       0      0  localhost.7080         localhost.36187        FIN_WAIT_2 
tcp4      37      0  localhost.36187        localhost.7080         CLOSE_WAIT 
tcp4       0      0  localhost.7080         *.*                    LISTEN     
tcp6       0      0  localhost.7080         *.*                    LISTEN  

设置Safari
这是最重要的步骤。
1. 开启Mac OS X Lion中的Web Sharing,实际上就是启动本地的www服务器。如下图,在System Preferences中的Sharing页面里。

2. 将下载的proxy.pac文件复制到~/Sites目录下。

Kamus$ ls ~/Sites
images		index.html	proxy.pac

3. 修改Safari的代理配置,选择自动代理配置,如下图。这里要注意的是URL部分必须是http开头的路径,而不能是本地目录样式的路径,这也是为什么上面第一步要开启Web Sharing的原因。这个问题的解释参看:Proxy Pac files no longer work in Mac OS X Lion

保存以后,尝试登陆一下twitter.com,再尝试登陆一下weibo.com。好了,祝大家翻墙愉快。

One Comment Add yours

  1. maxbbn says:

    safari 太傻了, 竟然不认识文件pac 非要http

Leave a Reply

Your email address will not be published. Required fields are marked *