Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

自动配置Mac OS X 的VPN连接时的特定路由

| Comments

Mac 系统自带的VPN连接配置倒是方便,但是有一个毛病(或者说我还没有不知道使用),那就是对于通过VPN获取的路有信息,要不就是全部忽略,要不就是所有的IP流出都通过vpn的路由,相当于由VPN的路由指定了缺省路由。用户没有办法手工增加特定路由。这点就不如Linux下的网络管理工具,比如Gnome的nm-applet使用起来就很方便。

当然,在图形界面配置上没有,不代码在命令行或者特殊的配置文件没有,下面我们就通过配置文件来解决这个问题。

首先在/etc/ppp/目录下创建(或者修改)ip-up文件。这个文件实际上时pppd后台进程读取的,VPN也得通过它来拨号。

VPN拨号后,会传递一系列的参数给ip-up文件,比如拨号的设备(ppp0),拨号两端的ip地址,以及缺省路由。我们感兴趣的是$5这个参数。
该参数描述的是ppp链路服务端的ip地址,也就是我们需要的路由网关。我们可以通过这个参数来判断,从而加入不同的路由。比如你有多个VPN连接,那肯定需要通过判断不同的ppp0端IP地址而加入不同的路由。
脚本可以这样写:

1
2
3
if [ "${5:-}" = "192.168.15.10" ];then
     /sbin/route add -net 192.168.0.0/20 $5
fi

保存后,并设置该文件的权限为755 chmod 755 ip-up 你再连接VPN看看,是不是加上了脚本里的路由信息。:)

测试环境: Dell E6410,Mac OS X 10.7.2

Comments