Macのプロキシ設定をWi-Fiのアクセスポイントごとに切り替える方法
この記事は移行作業中です。レイアウトが崩れる場合があります。
目次
Macのネットワーク設定ではアクセスポイントごとにプロキシ設定を切り替えることができないが、ネットワーク環境ごとにプロキシの設定が可能であるため、プロキシに合わせてネットワーク環境を作成し、それを切り替えて対処する。
必要なもの #
・コマンド&シェルスクリプトを実行できる能力
設定方法 #
1.ネットワーク環境のプルダウンをクリックして、「ネットワーク環境を編集」をクリックする。
2.「+」をクリックしてプロキシ設定の数だけネットワーク環境を作成する。
名称はわかりやすいもので重複しないよう各々設定。英字推奨。 プロキシ設定が不要な場合のネットワーク環境も作っておく。
3.ネットワーク環境ごとにプロキシを設定する。
プルダウンメニューから設定対象のネットワーク環境を選択して、「詳細」からプロキシを設定する。
4.シェルスクリプトを作成する。
下記の内容でホームディレクトリあたりに作成しておく。
自分はホームディレクトリに「sh」ディレクトリを作成して、その下に配置。
cd /Users/ユーザ名/sh
vi NW_Prof_switch.sh
#!/bin/bash
lastapfile=/tmp/last_ap.flg
[ -e "$lastapfile" ] || touch "$lastapfile"
lastap=`cat $lastapfile`
curap=`networksetup -getairportnetwork en0 | awk '{print $4}'`
if [ "$curap" = "$lastap" ]; then
exit 0
else
echo $curap > $lastapfile
fi
if [ "$curap" = "ap名1" ]; then
scselect ap1のネットワーク環境名 > /dev/null
elif [ "$curap" = "ap名2" ]; then
scselect ap2のネットワーク環境名 > /dev/null
else
scselect デフォルト(設定プロキシ不要時)のネットワーク環境名 > /dev/null
fi
色がついている部分を自分の環境に合わせて修正する。ap名にはWi-Fiのアクセスポイント名を、ネットワーク環境名には手順2で作成したネットワーク環境の名称を入れる。 さらに設定を追加したい場合は、13行目と14行目 を 14行目と15行目の間 にコピペする。
5.権限を付与する。
下記のコマンドで実行権限を付与しておく。
chmod 700 ファイル名
6.実行テスト
作成したシェルクスリプトを実行して、APごとにネットワーク環境が切り替わるかテストする。
7.プロパティリストを作成する。
APが変わるたびにシェルスクリプトを手動で実行するのは面倒なので、プロパティリストを使って自動化する。
cd /Library/Preferences/SystemConfiguration/
vi <span style="color: #ff0000;">com.matumo.wifi_sw.plist</span>
plistのファイル名は重複しないよう設定する。 以降は「com.matumo.wifi_sw.plist」で設定した前提の表記。 7行目と10行目は各自の環境に合わせて修正が必要。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string><span style="color: #ff0000;">com.matumo.wifi_sw</span></string>
<key>ProgramArguments</key>
<array>
<string><span style="color: #ff0000;">/Users/ユーザ名/sh/NW_Prof_switch.sh</span></string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist</string>
</array>
</dict>
</plist>
8.プロパティリストの読み込み
sudo launchctl load com.matumo.wifi_sw.plist
9.リストの確認
sudo launchctl list | grep com.matumo.wifi_sw
※ wifi_sw.plistではないので注意
10.実行テスト
自動で切り替わるかテストする。