为Mac OS设置国内外地址不同的访问路由

环境越来越恶化,这两天到处都是Gmail彻底被墙的消息。我等屁民只有迎难而上,把vpn,ssh给用好。

原先一直都是在用Chrome+SwitchySharp+ssh的方式,但这个方式不爽的是只支持http/https,很多时候git或brew更新时都会出问题,到时就只有祭起VPN大棋,但VPN的问题呢又在于走的是全局路由,包括国内的站点也都走了VPN,既慢又费流量。以前偶尔用用,一直懒得折腾,今天研究了一下,可以根据国内外地址设置不同的访问路由。这真是一个折腾的时代。

在mac下需要的几个工具:修改路由的chnroutes和开源的OpenVPN客户端Tunnelblick,原理就是:

利用来自APNIC的数据生成路由命令脚本,让VPN客户端在连接时自动执行。通过这些路由脚本,可以让用户在使用VPN作为默认网关时,不使用VPN访问中国国内IP,从而减轻VPN负担,并提高访问国内网站的速度。

如果你VPN服务使用PPTP,mac下很简单,参照chnroutes说明即可,可惜我的VPN提供商PPTP,L2TP,Cisco IPSecVPN几种连接方式相继被GFW干扰,目前只有采用OpenVPN的连接方式,参见Mac OS X通过Viscosity连接OpenVPN,不过Viscosity不是免费的,我就找个开源的Tunnelblick替代。

说明一下过程和注意事项:

  • 下载chnroutes
  • 在目录下执行python chnroutes.py -p mac ,生成 ip-up 与 ip-down 两个文件。
  • Tunnelblick中导入你的vpn服务提供商提供的配置文件。
  • 修改Tunnelblick的连接配置文件,增加

up {your directory}/ip-up
down {your directory}/ip-down
networksetup -setdnsservers "Ethernet" 8.8.8.8 8.8.4.4
networksetup -setdnsservers "Wi-Fi" 8.8.8.8 8.8.4.4
  • Tunnelblick中的设置里Set DNS/WINS为“Do not setnameserver”,由前面的配置文件来指定。
  • Tunnelblick连接VPN,连接成功后,可以访问ip138.comip.cn,前者为访问国内站点的ip地址,后者为访问国外站点的地址,两者应该不同。

– 12月30日更新:
发现连上VPN后,公司内网无法访问,参考如何在连接国外 VPN 翻墙的同时,访问公司内网服务 - Alsotang’s blog在ip-up/ip-down中增加公司的域名以及内网地址即可。对于Chrome来说可能需要清除缓存,否则总指向到该死的189so。

参考的文章有:

在gmail中展现图片,而不是附件

我把日常的邮件系统都移到了gmail中处理,不过一直有个问题困扰着。那就是在邮件中加入图片的时候,它总是以附件的形式展现,而不能直接在邮件中显示图片,很多时候邮件就无法达到让人一目了然的程度。比如上次从gmail发的PowerPoint粘贴对象变色的问题,附件的图片虽然在blog中显示了,但只能列在最后。

这也是个不是问题的问题,很多时候就算了,让收件人看附件去吧。(不过我又依稀记得以前是能插入图片的,呵呵)
今天又碰到发图片邮件了,看了一下,在google labs中有一个Inserting images的功能的,而我一直也是开启该特性的。那为什么又不行了呢?原来这个特性和离线模式相冲,看它的完整说明:
Allows you to insert images into a message body. You can upload and insert image files in your computer, or insert images by URLs. This lab will not work if you have offline enabled.
难怪!我选择了gmail,也喜欢上了离线模式,因为这让我本地也存储了邮件,不上网也可以查到邮件,彻底摆脱了邮件客户端。可没想到它还带来了一个副作用,NND。
恩,咋办呢?鱼和熊掌不可兼得啊。
目前我的解决方式是在需要发送图片的时候,在IE中启动gmail,没有离线模式。
不爽而将就着吧。又带来了一个新的不是问题的问题”。