OSXでWi-FiをEthernetよりも優先させる
自宅のMacは普段はWi-Fi運用で、ネットワーク機器の設定等で必要なときだけEthernetポートを使います。
このときに困るのが、デフォルトルートをEthernet側に持っていかれてしまうこと。インターネットに向けての通信が全てEthertnetポートに抜けていってしまうので、実質どこにも行けない状態です。
OS標準の動作としては、Wi-FiよりもEthernetを信頼するってのは理解できるのですが、このままだと困るので変更してみます。
サービスの順序を変更
やり方は意外と簡単でした。さすがに想定されていたみたいです。
Mac OS X 10.6: ネットワーク接続の優先順位を変更する
設定方法
環境はOSX 10.9.1 Mavericks。
「システム環境設定」→「ネットワーク」を開く。
左下の歯車アイコンを押して「サービスの順序を設定…」を選択。
項目をドラッグして、Wi-FiをEthernetよりも上に持ってくる。「適用」。以上。
ルーティングテーブルの変化
一応、ルーティングテーブルでもどういう動作をしているのか見てみます。
OSXではnetstat -r
で確認できます。
初期状態
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 40 0 en0
default 192.168.10.254 UGScI 8 0 en1
127 localhost UCS 0 0 lo0
localhost localhost UH 4 29510 lo0
初期状態はこう。(一部抜粋。)
「en0」がEthernetで、「en1」がWi-Fiです。
変更後
Internet:
Destination Gateway Flags Refs Use Netif Expire
default airport.airport UGSc 34 0 en1
default 192.168.1.1 UGScI 13 0 en0
127 localhost UCS 0 0 lo0
localhost localhost UH 4 29873 lo0
Wi-FiをEthernetよりも上にするとこう。
「en1」が「en0」よりも上に来ました。これでデフォルトゲートウェイとしてWi-Fiの方が優先されます。
こっちは何故かGatewayがホスト名表記になってますね。
これで、Wi-FiとEthernet併用時にもWi-Fiからインターネットに抜けられるようになりました。