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

参考

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/networksetup.8.html

posted @ 2018-01-04 20:30  飞走不可  阅读(8388)  评论(0编辑  收藏  举报