Mac下持久化路由配置
缘由
mac 下有个小命令,networksetup,之前电脑装了IKEv2 的VPN,每天能正常FQ,由于所有流量都走了VPN隧道,导致了公司内部的其它网络无法访问得到,必须每次的来回拨VPN,断VPN,很是麻烦,然后就想到了修改路由,一开始使用的route add的方式。像下面这样哈:
$ sudo route add 18.0.0.0/24 10.0.66.2
但是问题出现了,电脑重启之后就不见了。😅 虽说mac 很少会重启,但还是觉得有点不妥。于是就查查查,发现了另外一个好命令,就是今天的主角networksetup
命令了。
使用
networksetup的使用方式也很简单,networksetup --help 可以查看具体的帮助。其实它就是个-“系统偏好设置”中网络设置工具的终端版...
于是我用这个命令添加了两条静态永久路由,如下:
$ networksetup -setadditionalroutes "Wi-Fi" 172.11.0.0 255.255.255.0 172.16.198.1 192.160.0.0 255.255.255.0 172.16.198.1
Note:上面相当于添加了2条路由:
- 172.11.0.0/24 都从172.16.198.1
- 192.160.0.0/24 都从172.16.198.1
- "Wi-Fi" 这个是指我当前上网的设备(查看当前的设备可以使用这个命令networksetup -listallnetworkservices)
查看我刚添加的路由,可以用netstat -rn 也可以用networksetup -getadditionalroutes “Wi-Fi”
问题
问题来了,我现在想要删除这2条静态路由的配置,因为之前vpn 的那个问题解决了,现在不想要这两条规则了。但是发现不知道如何删除了。很尴尬啊。看帮助文档也没有找到介绍删除路由的命令。原谅我的智商不足,后来看了半天才找到答案。原来man 手册里的详细解释:
-setadditionalroutes networkservice [dest1 mask1 gate1] [dest2 mask2 gate2] ... [destN maskN gateN]
Use this command to set the list of IPv4 additional routes configured for the service. Each route is specified as a (destination address, subnet mask,gateway address) tuple. Specifying no tuples clears the list of routes.
解决
问题可以解决了。使用如下命令清空表:
$ networksetup -setadditionalroutes Wi-Fi
检查下:
$ networksetup -getadditionalroutes Wi-Fi
There are no additional IPv4 routes on Wi-Fi.
route -rn 也可以检查一下哈。OK,大吉大利。下次再把VPN Split-Tunneling(隧道分割)分享一下哈。
Other
其它一些修改网络配置的命令,如dns、proxy什么的。都可以参考帮助文档哈。-h
参考
每个人都应是守望者,守望我们的心智,我们的理想,以防它在生活中不知不觉地坠落、被操控和被自己遗忘。。。