Mac下持久化路由配置


緣由

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

參考

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM