よくある症状(検索意図との対応)
すでに Clash を起動し、システムプロキシをオンにしている。Chrome や Edge は海外サイトに届く。なのに Microsoft Store でアプリの取得が終わらない、ゲームの Xbox 連携だけ失敗する、ストアアプリのログインが不安定——このパターンは、デスクトップ向け Win32 と異なり、UWP がデフォルトでローカルホスト(ループバック)への接続を禁止されていることが原因であることが多いです。ユーザーが探しているのは「Clash をもう一度入れ直す」ではなく、回線を迂回する例外やローカルプロキシを許可する操作そのものです。以下では、その前提を踏まえて手順を一つにまとめます。
なお、Clash クライアントの初回セットアップやポートの見方はClash Verge Rev の入門記事で押さえておくと、本稿の「mixed-port が 7890 かどうか」「システムプロキシが有効か」の確認がスムーズです。
なぜ UWP はシステムプロキシを「半分しか使えない」のか
Windows の UWP(ユニバーサル Windows プラットフォーム)アプリは、サンドボックス型のセキュリティモデルのもと、通常のネットワーク境界とは別に、ローカルマシン上のサービスへの接続に厳しい制限がかかります。多くのプロキシクライアントは、127.0.0.1 の特定ポートで HTTP または SOCKS の入口を開き、OS の「インターネットのプロキシ設定」にそのアドレスを書き込みます。Win32 のブラウザや多くのデスクトップアプリはこの設定を読みますが、UWP はループバック(localhost)への通信自体がデフォルトでブロックされるため、結果として「プロキシの設定は見えているのに、実際の TCP 接続が張れない」状態になり得ます。
これは Clash 固有のバグではなく、Windows のアプリ隔離の設計です。したがって対策は「ルールを増やす」より先に、対象アプリのパッケージに対してループバック例外を明示的に許可する必要があります。ここで使うのが CheckNetIsolation ツールです。
CheckNetIsolation とループバック例外の考え方
CheckNetIsolation.exe は Windows に同梱されるユーティリティで、UWP のネットワーク隔離に関する診断や、LoopbackExempt(ループバック免除)の登録・一覧・削除ができます。管理者権限のコマンドプロンプトまたは PowerShell から実行します。ここでいう「免除」とは、その UWP パッケージが 127.0.0.1 宛の通信を試みたときに拒否されないようにする、という意味です。Clash が 127.0.0.1:7890 などで待ち受けている典型構成では、この免除がないとストア側の通信スタックがプロキシに届きません。
手順の流れは次のとおりです。(1) 対象アプリの パッケージファミリー名(PFN)を取得する。(2) loopbackexempt -a -n=<PFN> で追加する。(3) Store を再起動して挙動を確認する。(4) 不要になったら -d で削除する。エラー文言やビルド番号は OS の更新で変わることがあるため、PFN は都度コマンドで確認するのが確実です。
パッケージファミリー名(PFN)の調べ方
PowerShell を通常ユーザーで開き、たとえば Microsoft Store 周辺を探すには次のようにします。
Get-AppxPackage *WindowsStore* | Select Name, PackageFamilyName
出力の PackageFamilyName が、ループバック例外に使う文字列です。似た名前のアプリが複数ある場合は Name 列も見て、Microsoft Store 本体に対応する行を選んでください。Xbox や別のストアアプリを対象にする場合は、ワイルドカードを変えて Get-AppxPackage *xbox* のように検索します。日本語環境・英語環境でパッケージ名表記が違っても、PackageFamilyName の形式(例:Microsoft.WindowsStore_8wekyb3d8bbwe のような末尾)で一意に決まります。
GUI だけで迷う場合は、設定アプリの「アプリ」一覧から対象を開き、詳細情報に進む方法もありますが、コマンドの方がコピー漏れが少ないです。
管理者権限でループバック例外を追加する
管理者としてコマンドプロンプトを開き、先ほど控えた PFN を代入して実行します。
CheckNetIsolation LoopbackExempt -a -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
実際の -n の値は、ご利用の PC で Get-AppxPackage が返した PackageFamilyName と完全一致させてください。引用符は必須です。成功すると一覧に追加されます。確認は次のコマンドです。
CheckNetIsolation LoopbackExempt -s
ここに対象 PFN が表示されていれば、そのパッケージはループバックが許可された状態です。複数の UWP を同時に直したい場合は、アプリごとに -a を繰り返します。ストア経由で入れたゲームやユーティリティも、通信主体が UWP なら同じ手順の対象になります。
Clash 側で押さえるポイント(システムプロキシ)
ループバックを許可したうえで、Clash がローカルで待ち受けているポートと、Windows のプロキシ設定が一致しているかを確認します。多くの Mihomo 系 GUI では mixed-port(例:7890)が表示されます。システムプロキシが 127.0.0.1:7890 を指しているか、別ポートにしていないか、PAC を併用していないかを見ます。
また、「システムプロキシをオンにしたが、実際には無効」という状態は権限やセキュリティソフトで起こり得ます。疑わしい場合はよくあるエラーと対処の記事の流れで、ポート占有やルールの読み込みもあわせて確認してください。本稿のテーマは UWP 隔離なので、ここでは「ループバック免除が前提条件」であることを強調します。
TUN モードとの関係(切り分けのヒント)
TUN を有効にすると、OS より下のレイヤーでトラフィックを捕捉するため、システムプロキシを読まないアプリも含めて広くカバーできる場合があります。一方で、環境によってはドライバ競合や社内ポリシーと相性が悪いこともあります。ストアだけがダメで他は問題ないときは、まずループバック例外の方が原因に直撃しやすいです。TUN に全面切り替える前に、本稿の CheckNetIsolation を試す価値があります。TUN の有効化手順そのものはTUN モードの解説を参照してください。
例外の削除とクリーンアップ
テストで追加した例外を戻したい場合は、管理者コマンドで次を実行します。
CheckNetIsolation LoopbackExempt -d -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
-d は delete の意味です。PFN は追加時と同じ文字列にしてください。ストアが再びローカルプロキシに届かなくなるので、運用方針が変わったタイミングで整理するとよいでしょう。
セキュリティと運用上の注意
ループバック免除は、特定の UWP パッケージに対してローカル通信の扉を開ける操作です。信頼できるマシン上で、必要なストアアプリに限定して追加するのが原則です。共有 PC や不審なストアアプリを大量に入れた環境では、攻撃面が広がる可能性もあるため、不要な免除は残さない方が安全です。また、本手順は Windows のネットワークスタックと UWP の仕様に依存します。大規模アップデートのあとでストアの PFN が変わった場合は、Get-AppxPackage の再確認を忘れないでください。
オープンソースの利用形態やソースコードを知りたい場合は、プロジェクトの GitHub を参照するのが一般的ですが、インストーラの入手と更新は公式サイトの導線を優先すると混乱が少ないです(配布ポリシーはダウンロードページの案内に合わせてください)。
まとめ
Clash Windows でストアや UWP だけが不通になるときは、UWP ループバックの制限を疑い、CheckNetIsolation LoopbackExempt で対象 PFN に例外を足すのが定石です。あわせて システムプロキシの実効性と、必要なら TUN との役割分担を整理すると再現性が高まります。LAN 共有や購読設定とは別の、Windows ならではの落とし穴なので、手順書としてブックマークしておくとよいでしょう。
GUI でポートやシステムプロキシを扱いやすいクライアントであれば、同じ検証を短時間で回せます。長く使えるルール設計とコア更新のしやすさの観点では、Clash 系スタックに慣れておくメリットは大きいです。→ Clash を無料ダウンロードして、Windows のストア利用も含めたネット環境を整える