今天要跟各位捧有們分享如何在Mac OSX下使用雙網卡同時連上內外網
是的, 我已經聽到各位心中的疑惑 -- 這麼簡單的事情也需要你來分享?!
沒錯, 在Windows / Linux下只需要透過route add / route delete的指令就可以辦到, 但是在Mac OSX中我試過了就是不管用, 上stackoverflow發問還被標負評, 在這裡先向以前被我不相信的捧油們說聲抱歉!
好的, 在Mac OSX下揪竟要下什麼指令才能夠達成使用雙網卡同時連上內外網呢?
當然route add還是需要的, 只不過在Windows / Linux下使用的route delete就要改成route flush...
WTF?! route的manual裡的說明看起來delete跟flush明明是一樣的作用, 只不過delete只刪一個routing gateway而flush是把整張routing table中的gateway設定全部清掉, 如下圖:
圖一 |
以下是實驗的結果
首先先讓Mac同時連上LAN與WiFi, 從下圖可以看到LAN (en5)與WiFi (en0)同時都在連線
圖二 |
圖三 |
圖三之一 |
為了要確定Internet的traffic是從en0出去, 我們先用route delete指令將en5的default routing拿掉
route delete -net 0.0.0.0 192.168.0.1
於是routing table變成下圖的樣子, default routing通通走到en0去
圖四 |
圖五 |
route -n flush
flush之後的routing table裡面完全看不到default gateway的設定
圖六 |
route add -net 0.0.0.0 192.168.43.1
route add 192.168.0.0/16 1921.68.0.1
輸入完上面的指令後我們會看到routing table其實跟圖四一樣
圖七 |
圖八 |
圖八之一 |
至於為什麼route delete不能用而route flush管用?! 讓我們再找時間一起慢慢參透~