很多單位為了安全,需要使用網線連接內網,此時不能連接外網,無線可以連接外網,卻又不能完成部分在內網才能完成的操作。windows下使用雙網卡的配置還比較常見,同樣移植到mac下,卻有許多小問題,本文將詳細講述一下macOS底下應該怎樣配置路由表,實現雙網卡同時連接內外網。
首先,先查看一下路由表,了解一下基本情況
打開終端,輸入
netstat -rt
查看路由表的配置情況,我的如下
解釋一下這其中的參數
第一列:Destination,目標地,意思是:后面的參數代表著,如果前往這個ip的話,應該如何分配網關,網卡等,以及狀態信息,都是針對前往這個ip的情況的
第二列:Gateway,網關,意思是:如果需要前往這個ip,應該從哪個網關過去,這里有兩種情況,即有內外網用不同網關的,也有內外網用相同網關的。
第三列:Flags,標志位,和本文的重點無關,暫略
第四列:Refs,可以簡單的理解為重要性,相同的ip,相同的網關,用這個重要性來區分使用哪個網卡
第五列:Use,使用情況
第六列:Netif,網卡號,net interface,如圖,我有兩張網卡,這里的en0,en10分別代表了我的兩張網卡,不同的機器名稱可能不同,但是意思是一樣的,至于那張是無線網卡,需要自己去區分
第七列:Expire,和本文的重點無關,暫略
然后明確一下我們應該如何修改
看一下我的原始的表
插上網線之后,我的表是這樣的,當前的狀況是連的上內網,連不上外網。
根據表上看到,default目標兩張網卡可以走,但是refs下看到en10的優先級比較高,根據我的狀況,外網地址都無法訪問,外網地址屬于default部分,所以得出判斷en10是有線網卡,因為它的優先級較高導致去外網的ip都由有線網卡進行轉發,所以上不了網了,那么自然,en0就是無線網卡。
開始修改
第一步:修改無線網卡的優先級,使之大于有線網卡
進入系統偏好設置,網絡,左下角的齒輪,更改服務順序,拖動wifi到有線網卡上面就可以了(我的有線網卡是AX88772A)
此時變成的狀態是連著無線,插著網卡,以無線網卡優先,即上不了內網,可以上外網(蘋果默認的是插上有線網絡有線優先)
第二步:修改連接內網使用的網卡
這里有兩種情況
一、公司里內外網分兩個路由:
此時只需要修改前往公司內網地址的網關就可以了,比如你需要訪問的內網地址是10.10.15.*,而公司的內網網關是10.10.15.255,那么就這樣寫?
sudo route add -net 10.10.15.0 -netmask 255.255.255.0 10.10.15.255
其中,0表示的是默認default,netmask是子網掩碼,不是重點就不提了。
二、公司里內外網是一個路由:
此時需要有線網卡轉發內網鏈接,無線網卡轉發外網鏈接,寫法如下
sudo route add -net 10.10.15.0 -netmask 255.255.255.0 -interface en10
如果存在的話先sudo route delete一下。
至此,應該是修改完成了,可以試一試,應該是確實是內外網都可以正常訪問了
第三步:如何自動在每次啟動的時候都切換到當前的路由表
當mac每次重啟的時候,路由表都會被重置,這在windows里也是一樣,但是windows里可以永久的修改路由表,而我們不希望這么做,那么就用到了macOS里好用的小機器人 Automator
它在mac自帶的工具里,我們打開它,選擇應用程序,在第二列中選擇運行AppleScript,隨后我們就要在Automator中編寫一段mac的自動化腳本。
把我們剛剛編輯的內容都用系統管理員權限寫入腳本,并保存成一個應用程序就可以了,以后每次開機,都只需要雙擊就可以重新恢復路由配置。如果還需要更簡便一點的話,只需要在系統偏好,用戶與群組中,登錄項里加入這個Automator的小程序就可以了
完成,這樣每次啟動的時候都會恢復至當前的路由配置了
總結
擁有的資源就要良好的利用起來,兩塊網卡,為什么不能同時連接內外網?搞懂了原理,才能方便生活!