緣由
mac 下有個小命令,networksetup,之前電腦裝了IKEv2 的VPN,每天能正常翻牆,由於所有流量都走了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