はじめに
この記事ではMacのネットワーク環境(プロファイル)をコマンドから切り替える方法を説明します。
ネットワーク環境は「システム環境設定 - ネットワーク」で表示される以下の部分の設定です。
なぜコマンドから切り替えたいのか
そもそも普通の人はネットワーク環境をいじる必要はないのですが、僕の場合会社ではProxy経由が必要でありそのためにいくつかの設定をしています。
この設定を行うと社外でネットワークを繋ぐときにある問題が生じることがわかりました。
それはWifiなどでポップアップ認証(同意ボタンを押すようなもの)が必要な場合に、ポップアップが表示されないという問題です。
# 現在JALさんのWifiに繋いでいますが、ポップアップ認証でした
そういったときは"手動で"ネットワーク環境を切り替えてるのですが、毎回手動は億劫なのでコマンドで済ましてしまおうというのが今回の趣旨です。
方法
networksetup
を使えば簡単に行なえます。
ざっとコマンドから必要そうなオプションを以下に抜き出しました。
-
networksetup -listlocations
: ネットワーク環境リストを表示する -
networksetup -getcurrentlocation
: 現在のネットワーク環境を表示する -
networksetup -switchtolocation [location]
: ネットワーク環境を[location]
に切り替える
以下が切り替えの手順になります。
# 僕の環境では「Proxy」、「NoProxy」の2つが設定されています
$ networksetup -listlocations
Proxy
NoProxy
# 現在の「Proxy」が設定されています
$ networksetup -getcurrentlocation
Proxy
# 「NoProxy」に切り替えてみます
$ networksetup -switchtolocation NoProxy
found it!
# きちんと切り替わりましたね
$ networksetup -getcurrentlocation
NoProxy
おわりに
Proxy環境、非Proxy環境では環境変数の設定も書き換えないといけないことがほとんどだと思うので、今回のネットワーク環境の切り替えも含めた一連の処理をシェルスクリプトにまとめるととても便利になるかと思います。