Windows ストアアプリがプロキシを通らない理由:UWP ループバック制限の解除方法実測

Microsoft Store や新しい Outlook などの UWP アプリは既定でループバックアドレスへのアクセスが禁止されており、システムプロキシが無効になります。ループバック分離の仕組みと CheckNetIsolation コマンド・クライアント内蔵ツールによる解除方法を解説します。

Clash クライアントのシステムプロキシを有効にすると、ブラウザやターミナルツール、大半のデスクトップソフトは問題なくプロキシ経由で通信できますが、Microsoft Store、新しい Outlook、一部のマイクロソフト製アプリだけはプロキシの存在をまったく認識していないかのように動作します——アクセス異常、更新が止まる、ログインが繰り返し失敗する。システムプロキシは有効で他のソフトは正常な状態でこの現象に遭遇した場合、ノードやルールの問題ではなく、Windows 特有の UWP ループバック分離(Loopback Isolation) にぶつかっている可能性が高いです。

SEC-01

一部のアプリだけが影響を受ける理由

Windows のアプリ生態系には大きく2種類のプログラムがあります。従来型の Win32 デスクトッププログラム(exe を直接ダブルクリックして起動する、大半のチャットツール・ブラウザ・開発ツールがこちら)と、UWP(Universal Windows Platform)フレームワークに基づき、アプリコンテナ(App Container)内で動作する現代的なアプリです。Microsoft Store、標準のメール・カレンダー、新しい Outlook、一部のプリインストールカメラや地図アプリは、UWP または類似のコンテナ化方式で動作しています。

システムプロキシ(Clash クライアントで設定する HTTP/HTTPS システムプロキシ、および TUN モードでグローバルトラフィックを引き受ける方式を含む)は、Win32 プログラムに対してはほぼ「無差別にカバー」されます。システムのネットワークスタックを通る限り、プロキシは横取りして転送できます。しかし UWP アプリは制限付きのアプリコンテナ内で動作しており、セキュリティ分離の設計上、既定でコンテナ内プロセスからループバックアドレス(127.0.0.1 および ::1)へのアクセスが禁止されています。そして Clash クライアントのプロキシリスニングポート(混合ポートは既定で 7890、またはクライアント画面に表示されるポート)はまさにこのループバックアドレス上にあります——これが問題の根源です。プロキシが効いていないわけではなく、これらのアプリがローカルのプロキシポートへの接続をシステムに禁止されているのです。

NOTE

ループバック分離はマイクロソフトがサンドボックスのセキュリティ設計として既定で設けている制限であり、バグでも Clash クライアントの問題でもありません。判断は簡単です。ブラウザやチャットソフトは正常にプロキシを通り、Microsoft Store や新しい Outlook など少数のアプリだけが異常であれば、ほぼこの仕組みが原因だと確定できます。

よくある影響を受けるケース

  • Microsoft Store で検索できない、ダウンロードが 0% で止まる、アプリの更新が長時間ぐるぐる回り続ける。
  • 新しい Outlook(One Outlook 技術スタックに基づく新クライアント)でプロキシを設定してもアカウントに接続できない、またはログイン時にネットワークエラーが表示される。
  • 一部の Xbox 関連アプリ、標準の天気/ニュース系アプリがプロキシ有効化後にコンテンツを一切更新できなくなる。
  • Microsoft Store から配布され MSIX/AppX でパッケージ化されているサードパーティアプリも、同じ制限に該当する場合があります。
SEC-02

方法1:CheckNetIsolation コマンドラインで解除

Windows には CheckNetIsolation.exe というコマンドラインツールが標準搭載されており、アプリコンテナのネットワーク分離ルール(ループバックアクセスのホワイトリストを含む)を管理できます。この方法はクライアントの機能に依存せず、原理が明確で効果も持続するため、最も基本的かつ汎用的な解決方法です。

  1. 管理者権限でコマンドプロンプトを開く

    スタートメニューで「コマンドプロンプト」または「cmd」を検索し、右クリックで「管理者として実行」を選択します。ループバック分離ルールの変更には管理者権限が必要で、通常権限のウィンドウで実行すると失敗します。

  2. 現在許可済みのアプリ一覧を確認(任意)

    まず次のコマンドを実行し、現在システムでどのアプリが既に例外扱いになっているかを確認して、重複追加を避けます。

    CheckNetIsolation LoopbackExempt -s
  3. 対象アプリにループバック例外を追加

    Microsoft Store を例にすると、アプリのパッケージファミリ名(Package Family Name)は Microsoft.WindowsStore_8wekyb3d8bbwe なので、次のように実行します。

    CheckNetIsolation LoopbackExempt -a -n="Microsoft.WindowsStore_8wekyb3d8bbwe"

    コマンド実行後にエラーが出なければ成功です。新しい Outlook や他の UWP アプリに許可を与えたい場合は、まず Get-AppxPackage で対応するパッケージ全名を調べ、-n= の後の値を置き換えてください。

  4. 他のアプリのパッケージ全名を調べる

    PowerShell を開き(こちらも管理者権限を推奨)、次のコマンドを実行してインストール済みの UWP アプリとそのパッケージ全名を一覧表示します。

    Get-AppxPackage | Select Name, PackageFamilyName

    結果の中から対象アプリの PackageFamilyName フィールドを見つけ、そのまま前の手順のコマンドにコピーしてください。

  5. アプリを再起動して確認

    対象アプリを完全に終了(最小化ではなく)してから再度開き、プロキシが有効になったか確認します。ループバック例外の変更は通常すぐに反映され、システムの再起動は不要です。

あとで特定のアプリの例外を取り消したい場合は、コマンド内の -a(add)を -d(delete)に置き換えます。

CheckNetIsolation LoopbackExempt -d -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
SEC-03

方法2:クライアント内蔵のワンクリック解除ツール

パッケージ名を手動で調べてコマンドを組み立てるのは、コマンドラインに不慣れなユーザーにはハードルが高いため、多くの Clash クライアントの Windows 版には GUI 化されたループバック例外ツールが内蔵されています。本質的には CheckNetIsolation のラッパーですが、パッケージ全名を調べる手間が省けます。

  • クライアントの「システム設定」または「ネットワーク設定」内で「UWP ループバック例外」「LoopbackExempt」「ネットワーク分離の例外」といった名称の項目を探します。
  • 開くと通常はシステムにインストール済みの UWP/MSIX アプリが自動で一覧表示され、対象アプリ(Microsoft Store、新しい Outlook など)を選んで適用すれば、内部でパッケージ全名を自動生成してシステムコマンドを呼び出します。
  • 一部のクライアントには「よく使うアプリを一括許可」ボタンがあり、Store、Xbox、メールなど頻出する制限アプリがあらかじめ登録されているため、一つずつ調べたくないユーザーに向いています。
WARN

GUI ツールも有効化には管理者権限が必要です。クリックしても明らかな反応がない、または変更が反映されない場合は、まずクライアント自体が管理者権限で起動しているか確認してください。一部のクライアントは管理者権限が得られていないと、エラー表示を出さずに黒黒と失敗する仕様になっており、「機能が使えない」と誤判断されやすい点です。

内蔵ツールがコマンドラインより信頼性で劣る場合がある理由

GUI 化された機能は便利ですが、2つの限界があります。1つはアプリ一覧がクライアント自身の検出ロジックに依存するため、新しくインストールしたアプリや特殊なパッケージ方式のアプリが一覧に出てこない場合があること。2つ目は、クライアントのバージョンによってこの機能のメンテナンス状況が異なり、一部のバージョンではこの入り口が長期間最新のシステムアプリ名に対応更新されていないこと。一覧に対象アプリが見つからない、または例外を許可しても効果がない場合は、コマンドラインでパッケージ名を手動調査して追加する方式に切り替えるのが、より確実な最終手段です。

SEC-04

TUN モードではループバック分離への対処が必要か

ここではシステムプロキシモードと TUN モードの違いを区別する必要があります。システムプロキシモードは HTTP/HTTPS プロキシアドレスをシステムのネットワーク設定に書き込む方式で、アプリはこの設定を主体的に読み取ってローカルのループバックポートへ接続する必要があります。この接続動作こそがループバック分離で阻止される部分であり、そのためシステムプロキシモードでは UWP アプリが影響を受ける確率が高くなります。

一方 TUN モードは、システム層に仮想ネットワークカードを構築し、ネットワーク層で全てのアウトバウンドトラフィック(UWP アプリコンテナ内から発せられるトラフィックも含む)を直接横取りする方式で、アプリがローカルのプロキシポートに主体的に接続する動作に依存しません。理論的にはループバック分離の制限を回避できます。UWP アプリのプロキシが効かない問題に頻繁に遭遇し、かつクライアントが TUN モードをサポートしている場合は、まず TUN モードに切り替えて問題が解消するか検証するのがおすすめです。ただし TUN モードには仮想ネットワークカードドライバへの追加権限が必要で、システムプロキシよりやや設定の敷居が高いため、まずクライアントのドキュメントで TUN モードの有効化手順を確認してから、段階的に切り替えることをおすすめします。

ループバックアドレス(Loopback Address)

ネットワーク基礎

デバイス自身を指し示す自己宛アドレスのことで、IPv4 では 127.0.0.1(127.0.0.0/8 全体がループバック帯域)、IPv6 では ::1 です。ローカルで動作するプロキシサービスは通常このループバックアドレスでリスニングし、ローカルプロセスのみアクセスを許可し、外部ネットワークには公開しません。

SEC-05

トラブルシューティングの流れまとめ

「一部のアプリだけプロキシを通らず、大半のアプリは正常」という状況に遭遇したら、以下の順序で確認することで無関係な方向に時間を浪費するのを避けられます。

  1. 影響を受けるアプリの種類を確認

    まず異常のあるアプリが Microsoft Store 由来か、UWP/MSIX パッケージ方式かを確認します。通常の exe デスクトッププログラムはループバック分離の影響を基本的に受けないため、この方向で調べる必要はありません。

  2. コマンドラインで例外状態を確認

    CheckNetIsolation LoopbackExempt -s を実行して現在の例外一覧を確認し、対象アプリが既に含まれているかを確かめることで、重複操作や原因の誤判定を避けられます。

  3. 例外追加後はアプリを完全に再起動

    ループバック例外ルールを変更した後は、対象アプリを完全に終了してから再度開かなければ反映されません。バックグラウンドに切り替えて戻すだけでは再読み込みされません。

  4. それでも解消しない場合は TUN モードで検証

    例外を追加し、アプリも完全に再起動したにもかかわらず問題が残る場合は、TUN モードに切り替えてテストすることで、ループバック分離の残留問題か別のネットワーク設定の問題かをさらに区別できます。

ループバック分離の仕組み自体は Windows システム側のセキュリティ設計であり、Clash クライアントが使用するカーネルやサブスクリプションのルールとは直接関係がありません——ノードを変更したりサブスクリプションを再インポートしたりしても、対象アプリのループバック制限を解除しない限り、問題は再発します。この点を理解しておけば、「ストアアプリや新しい Outlook だけがプロキシを通らない」といった報告に遭遇したとき、すぐに UWP ループバック分離という方向に絞り込めるため、ルール設定を何度も見直す必要がなくなります。

クライアントをダウンロード