Mac OS X のネットワークの設定を変更するコマンド networksetup

SOCKS プロキシを張って Safari から利用することがよくあるのだが,System Preference (環境設定)から変更をするのが手間だった.調べたところ networksetup コマンドからネットワークの設定が変更できるらしいので試してみた.

% networksetup

Terminal から networksetup を引数なしで実行すると,実行例が一覧で出力される.できることがかなり多いようだ.

SOCKS プロキシを設定するのに利用するのは -setsocksfirewallproxystate もしくは -setsocksfirewallproxy である.予め System Preference で SOCKS プロキシの設定が行われていれば -setsocksfirewallproxystate でオン/オフを切り替えるだけで良い.私は localhost の 10001 番を使用するように設定している.

シェルスクリプトを書いておけばコマンドを叩くだけで SOCKS プロキシが通るようになる.使い終わったら ssh したサーバから exit (exit 後に制御が戻らなかったら Ctrl-C)すればよい.

#!/bin/sh
PROXY="proxy-hostname"
PORT=10001
networksetup -setsocksfirewallproxystate Airport on
ssh -D ${PORT} ${PROXY}
networksetup -setsocksfirewallproxystate Airport off