解决了我的Tunnelblick连接再断开openvpn服务后路由出错

每次用Tunnelblick连接我的zztin.com主机后(我的是Mac OSX 10.6)再断开后,我的zztin.com的主机就无法到达了。ping的时候会报告:

ping: sendto: No route to host

这是路由错误的表现,用netstat -nr查看当前的路由设置,发现连接OpenVPN时候推送的route信息没有被清除。我手动试验了一下重建route表:

sudo route flush

然后所有网都连不上了,又netstat -nr一下,发现默认路由没有了,手动添加一下(我家的无线路由器IP是192.168.1.1:

sudo route add 0.0.0.0 192.168.1.1

所有网站都可以用了,包括ssh我的zztin.com。可是不能每次都手动清理呀。查看了一下log,发现的确有问题,有好几行route -delete的时候报错:

ERROR: OS X route delete command failed: external program exited with error status: 77

搜索了一下,发现需要注释掉我的openvpn客户端配置里面的:

# user nobody
# group nobody

然后一切都OK了。

前两天被身边的朋友嘲笑我用的bash在按Tab自动完成的时候不能忽略大小写。所以…

前两天被身边的朋友(他用csh)嘲笑我用的bash在按Tab自动完成的时候不能忽略大小写。所以就造成你键入do就不能自动联想到”Downloads”,有的时候你不得不ls一下看看是否有大写的文件夹。Google下发现bash其实是支持忽略大小写的。在Mac下修改~/.inputrc,加入:

set completion-ignore-case On

然后重启一下Terminal,就开始支持大小写通配了。其实这里解释的是我看到的最清晰的:http://www.macosxhints.com/article.php?story=20070831153033300。Bash使用了readline,而readline的配置就在~/.inputrc,里面还有很多配置,有兴趣可以研究一下。注意,上面那个方法在10.5以后的OSX才生效,10.4以前的版本设置方法不同,大家自己Google吧。