ネットワークのプロキシ設定を保存する(macOS)

以前の記事 mitmproxy で iOS Simulator の HTTPS 通信を覗き見る にて mitmproxy
を使う際にネットワークのプロキシ設定を都度切り替える必要があるのだが、検証が終わってプロキシサーバを落とした後にプロキシ設定を戻し忘れるとインターネットに繋がらなくなり、一瞬「?」となることがある。
また、システムのデフォルトのプロキシ設定を変えているので、今後別システムでプロキシ切り替えが必要になったときに使用手順を覚えておけるか自信がない。
煩雑さを感じるので、記事のプロキシ設定の切り替えをもっと簡単にできないか調べてみる。
この記事でやること
ネットワークのプロキシ設定を設定ファイルに保存して切り替える方法を調べる。
環境
- macOS Sonoma 14.3.1
- MacBook Air (M1 2020)
- チップ Apple M1
- メモリ 16GB

@naname さんの Wifi接続先に応じてネットワーク環境設定を自動で切り替える を参考にしてみる。

解決策:Mac標準の「ネットワーク環境」を使って設定プロファイルを作る方法
完璧ではないがいい感じの解決策にたどり着けたので記録する。(参考元の記事に感謝。)
この方法では、
- プロキシ設定をネットワーク環境に登録
- プロキシを使うときは手動でネットワークを切り替える
というようにする。
例えばプロキシをON/OFFするときは、以下のようにネットワークからプロキシ用のプロファイルを選択するとプロキシが使える。
設定手順を書く前に嬉しいポイント・改善ポイントを書いておく。
嬉しいポイント
- プロキシの接続先について詳細を意識せずに使える
- 標準のネットワーク設定と別個にネットワーク設定を持てるので、設定するときにデフォルトの環境を上書きしてしまう心配がなく安心して使える。グローバルを汚染しないことは正義。
- Mac標準の機能しか使っていないので設定が簡単
- プロキシ設定切り替えの際の手数は、プロファイルを使わない場合と比べると数クリック分少なく、体感では使用感は良い。
改善ポイント
- プロキシを使い終わったあとに切り替え忘れやすい点。プロキシ経由でインターネット接続しているときは、プロキシサーバを落とすとインターネットに繋がらなくなる。
- ここは「サーバを落としたら自動的に通常のプロファイルに切り替わってほしいなー」と思った。今後の課題。

設定手順
次を開く。
システム環境設定 > ネットワーク > 三点メニュー > ネットワーク環境 > ネットワーク環境
ネットワーク環境を追加し、「Proxy for mitmproxy」などのわかりやすい名前をつける。
環境ごとにプロキシ設定を保存できる。
設定したネットワーク環境を選択
これでプロファイルが切り替わり、以降の設定はこのプロファイルに対して設定される。
ネットワーク > Wi-Fi (Wi-Fi を使っていない場合、利用中のネットワークを選択) > 詳細
プロキシを開き、「Webプロキシ(HTTP)」「保護されたWebプロキシ(HTTPS)」をONにし、ローカルプロキシサーバの IP, ポートを設定する。mitmproxy や mitmweb のローカルサーバをデフォルト設定で使っている場合、基本的に HTTP, HTTPS 共に以下の設定でOK。
- サーバ:
localhost
- ポート:
8080
- パスワードが必要なプロキシサーバを使用: OFF
設定が完了したらOKを押下。これで設定完了。
mitmweb や mitmproxy を起動するとプロキシ設定が有効になっていることを確認できる。
画像はネットワーク環境を「Proxy for mitmproxy」に切り替えて、IPAのページを開いた結果。
正しく通信がキャプチャできている。

プロファイルをデフォルトに戻すと通信がキャプチャされなくなることも確認する。
ネットワーク設定をデフォルト(今回は「自動」)に戻す。これでプロキシを通らない普通のインターネット通信に切り替わる。
mitmproxy の GUI をチェックすると通信が流れてきていないことがわかる。
これでOK。