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

目标
通过设置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。好了,祝大家翻墙愉快。

Using Safari5 Reader for Reading Technical Posts

最新Release的Mac下的浏览器Safari5除了全面支持HTML5之外,还有一个着重提到的功能就是Reader。

关于Reader的赞美之辞可以参看《改变阅读习惯的Safari 5阅读器》

那么实际上Reader对于我个人的用处是在浏览DBAsupport.com站点的文章,此站点文章质量较高而且还时常出现不少新奇有趣的文章。但是这个站点恼人的地方在于:1.在Google Reader中无法看到全文 2.在站点上直接浏览文章的话要承受大量的广告。

比如原站点中的文章大概看上去是这样五颜六色的。

使用了Safari5 Reader以后,变成了一篇白底黑字的清爽文章。

但是目前这个版本的Reader仍然有需要改进的地方,特别是对于可能会有大量代码的技术文章,那些代码在原文中有rss格式化,但是Reader转换以后格式就不正确了,这样会导致较长的代码有一部分无法看到。

仍然是上面这片技术文章。原文中的格式如下图,虽然也不尽美观,但是注意那些小字体的部分,至少可以看到全部文字。

而在Reader中最后超出页面的那些文字都无法看到了,而且似乎是苹果太在意用户阅读体验了,甚至连横向的滚动栏也没有。是的,我知道Reader中的字体可以缩小,但是即使缩到最小也仍然有一部分在页面之外。

Hope will be fixed soon.