ワンアクションでネットワーク環境を変更したい

ネットワーク環境の設定を複数切り替えたいときがある

普段は(訳あって)ルータを DNS サーバにしているけれど、(ある事情で)いっときだけ GoogleDNS の「8.8.4.4」なんかにしたいときがある。大きく2つ方法がある。これはDNS以外でも、ある設定だけ(例えば、IPアドレスを自宅と職場で切り替えたい、など)を、1つのネットワークインターフェイスに対して、切り替えたいときにも応用できる。

2種類の方法について、詳しくは Apple のサポートページに書いてある

ネットワーク環境を使う (Mac OS X v10.6 以降) - Apple サポート

1つのネットワークインターフェイスに対して複数の設定を切り替えて使えない

上記サポートページによれば、こんな制限がある。

2 つのネットワークに同じインターフェイスを設定する

デフォルトの「自動」ネットワーク環境は、2 つの異なるネットワーク環境で同じネットワークインターフェイスを使うために 2 つの構成を持つようにはなっていません。たとえば、Ethernet ポート設定に対して、職場では手入力設定で利用して、自宅では DHCP を利用する場合、「自動」ネットワーク環境では、デフォルトの状態のネットワーク環境の切り替えを回避することが許可されません。ネットワーク環境を切り替える必要があります。

ちょっと解りにくいので実際の現象をメモ。

1つの「ネットワーク環境」設定の中では、同一ネットワークインターフェイスWi-FiインターフェイスEthernetポートなど)に対して複数の設定を作って切り替えようとしてもできない。オンオフが両方に適用されてしまうから。これは仕様のようだ。

1つのネットワークインターフェイスに対して2種類以上の設定を切り替えて使いたい場合、システム環境設定 >> ネットワークの設定で「ネットワーク環境」を切り替えたい設定の数だけ作っておく必要がある。


メニューからネットワーク設定を切り替えられるのは便利

複数の「ネットワーク環境」を作っておくと、システム環境設定を開かなくても、メニューから直接複数のネットワーク設定を切り替えられるという利点がある。

注)「ネットワーク環境」の設定が 一つしかない場合は、メニューに「ネットワーク環境」が表示されない。

この方法だと

  1. システム環境設定 >> ネットワーク パネルを表示
  2. 設定を切り替え、
  3. 適用ボタンを押す

という手順を踏む必要がない。


現在設定されている DNS アドレスを知るには

Wi-Fi 接続の場合は、オプションを押しながらメニューバーの「Wi-Fi の状況」をクリックするとたいがいの情報は表示される。

ただ、DNS アドレスは表示されないんだな。知りたい場合は

  1. システム環境設定 >> ネットワーク >> 接続しているポートを選択 >> 詳細ボタン >> DNSのタブ を表示
  2. ターミナル.app を起動、以下のコマンドを実行
$ networksetup -listallnetworkservices      ! ネットワークサービス名をリストアップ
$ networksetup -getdnsservers "Wi-Fi"     ! DNSアドレスを表示

の2通り。他にもあるかもしれないけど。

脱線するが、2を自動化したい場合は、

Geek Knowledge: (Linux等の)シェルスクリプトを Mac の Finder からダブルクリックで実行するには <ありがとうございます

こちらの方法がラク。こんなスマートな方法があったのね。自分は Automator が慣れているので、シェルを実行してクリップボードにコピー、スポットライトなんかにペースト、というのを作っていた。