まずループバック接続が制限されているか確認

ブラウザーではClash経由でWebサイトを開けるのに、Microsoft Storeは読み込みが終わらない、またはネットワークエラーが表示される場合、アプリがローカルプロキシに接続できていない可能性があります。Windows 10/11では、AppContainerのネットワーク分離対象アプリは、通常のデスクトップアプリのようにローカルのループバックサービスへ既定で接続できません。システムプロキシに 127.0.0.1 を設定しても、そのアプリにアクセス権が付与されたとは限りません。

ここでいう「ループバック」とは、アプリが同じPC上のサービス(例:127.0.0.1:7890)に接続することです。ループバック許可は指定したアプリパッケージの制限を解除するもので、Clashの起動やプロキシノードの選択、アプリへのプロキシアドレス設定は行いません。

操作前に確認する3つのポイント

  1. クライアントの動作を確認:有効な設定を読み込み、使用可能なプロキシグループを選択してシステムプロキシを有効にし、ブラウザーから対象サービスへアクセスします。ブラウザーでも接続できない場合は、まず設定、ノード、ネットワークの問題を解決してください。
  2. ローカルの接続先を確認:クライアントの「ポート」または「混合ポート」の設定を確認します。ここでは 7890 を例にしますが、実際の値は異なる場合があります。HTTPプロキシにはHTTPポートまたはHTTPに対応した混合ポートを指定してください。SOCKS専用ポートを指定しないよう注意が必要です。
  3. テスト条件を絞る:まずシステムプロキシでテストし、ほかのVPNやプロキシクライアントは一時的に終了します。TUNを有効にしている場合は、通信経路を切り分けるため、一時的に無効にしてください。組織管理の端末では、会社指定のネットワーク設定を独断で変更しないでください。

Windows 11では「設定」→「ネットワークとインターネット」→「プロキシ」→「プロキシサーバーを使う」→「編集」でアドレスとポートを確認できます。Windows 10では「設定」→「ネットワークとインターネット」→「プロキシ」にある手動プロキシ設定を確認してください。クライアントが自動管理している場合は、次回の切り替えで設定が上書きされないよう、クライアント側でポートを修正します。

方法1:クライアント内蔵のUWPツールを使う

Windows向けの一部Clash GUIクライアントには、アプリのループバック設定を管理する機能があります。「UWP ループバック許可」「UWPツール」「Loopback」などの名称で表示されます。これはGUIクライアントの補助機能であり、Clashやmihomoの汎用YAML設定ではありません。クライアントやバージョンによって場所は異なります。該当ボタンが見つからない場合は、後述のWindowsコマンドを使えます。

  1. クライアントの「設定」を開き、「UWP」または「ループバック許可」と記載されたツールを探します。旧版のClash for Windowsでは「General」→「UWP Loopback」に「Launch」ボタンがありましたが、これは旧画面の参考情報です。この機能を使うために旧クライアントをインストールする必要はありません。
  2. ツールを起動すると、Windowsユーザーアカウント制御の確認画面が表示されることがあります。ループバック一覧を変更するため、管理者権限での実行を許可してください。必要な権限がない場合は、端末の管理者に依頼します。
  3. アプリ一覧からMicrosoft Storeを探し、今回確認するアプリだけにチェックを入れます。保存ボタンがある場合は「Save Changes」または「変更を保存」をクリックしてください。チェックを入れただけでウィンドウを閉じないようにします。
  4. 対象アプリを完全に終了してから再度起動し、先ほど失敗した操作を試します。アプリがバックグラウンドで動作し続けている場合は、タスクマネージャーで対象アプリのプロセスであることを確認して終了し、もう一度試してください。

手間を省くために全アプリを選択するのはおすすめしません。許可すると、選択したアプリがローカルサービスへ接続できるようになるため、必要なアプリだけに限定してください。ツールに対象アプリが表示されない場合は、現在のWindowsユーザーにインストールされているか確認してから、PowerShellでパッケージIDを調べます。表示名からパッケージ名を推測して入力しないでください。

方法2:CheckNetIsolationでループバックを許可する

CheckNetIsolation.exe はWindows標準のネットワーク分離管理ツールで、追加インストールは不要です。以下のコマンドは、管理者権限のPowerShellまたはWindowsターミナルのPowerShellタブで実行します。まず一覧を確認し、許可を追加してから再確認すると、変更が反映されたか確かめやすくなります。

1. 現在のユーザーにインストールされたアプリパッケージを調べる

スタートボタンを右クリックし、「ターミナル(管理者)」または「Windows PowerShell(管理者)」を選択します。以下のコマンドを入力して、Microsoft Storeのパッケージファミリー名を調べてください。

Get-AppxPackage -Name Microsoft.WindowsStore |
  Select-Object Name, PackageFamilyName

標準のMicrosoft Storeパッケージでは、通常 Microsoft.WindowsStore_8wekyb3d8bbwe が返されます。取得した PackageFamilyName を使用し、バージョンやアーキテクチャを含む PackageFullName は使わないでください。パッケージファミリー名はアプリファミリーを識別するためのものなので、アプリのバージョンアップごとに書き換える必要はありません。

ほかのアプリを調べる場合は、まず現在のユーザーのパッケージ一覧を表示し、名前から対象を特定します。

Get-AppxPackage |
  Sort-Object Name |
  Select-Object Name, PackageFamilyName

2. 現在の一覧を確認してMicrosoft Storeを追加する

CheckNetIsolation.exe LoopbackExempt -s
CheckNetIsolation.exe LoopbackExempt -a -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation.exe LoopbackExempt -s
  • -s:現在のループバック許可一覧を表示します。操作の前後で確認する際に使います。
  • -a:レコードを追加します。-n の後ろには実際のアプリパッケージファミリー名を指定します。
  • コマンドで完了と表示されても、最後に一覧を再表示して対象のレコードが存在することを確認してから、アプリを再起動してテストしてください。

追加時に「アクセスが拒否されました」と表示された場合は、ターミナルが本当に管理者権限で起動しているか確認します。パッケージ名や引数のエラーが出た場合は、検索結果を見直し、半角の英数字、引用符、ハイフンを使ってください。Webページ上の曲がった引用符をコマンドにコピーしたり、アプリの日本語表示名をパッケージファミリー名として使ったりしないでください。

3. 不要になった許可を個別に取り消す

CheckNetIsolation.exe LoopbackExempt -d -n="Microsoft.WindowsStore_8wekyb3d8bbwe"
CheckNetIsolation.exe LoopbackExempt -s

-d は指定したレコードを削除します。アプリの動作確認のために追加した場合は、テスト後に必要に応じて取り消せます。ほかのアプリに設定済みの許可は残し、Storeの問題を調べるためだけに一覧全体を消去しないでください。

通信経路を確認:プロキシ未接続とルールによるDIRECTを見分ける

許可の追加が成功したことから分かるのは、ネットワーク分離の設定が変更されたことだけです。すべてのリクエストがプロキシノードを経由するとは限りません。クライアントの「接続」画面に戻り、Storeの読み込みを再試行して、対象ドメイン、接続記録、最終的に適用されたポリシーを確認します。必要なら「ログ」画面で一時的にログレベルを上げて一度だけ再現し、診断情報が大量に出続けないよう、その後は元に戻してください。

確認結果 まず確認する項目 次の対応
ブラウザーもStoreも接続できない ローカルの待受ポート、設定、ノード まず通常のプロキシ接続を復旧し、その後でループバック制限を調べる
ブラウザーは接続できるが、Storeの接続記録がない パッケージ名、許可設定、システムプロキシ、アプリのネットワークスタック 一覧を再確認してアプリを再起動する。記録がない場合でも、キャッシュやリクエスト未発生の可能性がある
接続記録はあるが、ポリシーがDIRECT ルールの適用結果 ルールの順序を確認し、DIRECTが想定どおりか判断する
プロキシポリシーを選択してもタイムアウトする ノード、DNS、接続先サービス 利用可能なノードに切り替えてログを確認する。同じ許可設定を繰り返し追加しない
Storeのページは開くが、ダウンロードに失敗する ダウンロード関連サービスと個別の通信経路 具体的なエラーコードを記録し、ループバックの問題と決めつけない

Clashとmihomoのルールは通常、上から順に照合され、最初に一致したルールのポリシーが適用されます。アプリがローカルプロキシに接続していても、DIRECT に一致すれば接続先へ直接通信します。これは「プロキシに接続していない」状態とは別です。アプリ1つの問題を解決するためにグローバルモードへ切り替えたままにしたり、サブスクリプションのルールをすべて上書きしたりしないでください。

TUN、WinHTTP、システムプロキシは別の仕組み

TUNはループバック許可と同じではない

システムプロキシは主に、その設定に従うアプリで使われます。TUNモードは仮想ネットワークアダプターとルーティングを通じて、対象の通信を取り込みます。mihomoクライアントのTUNには、サービスの権限、自動ルート、DNS設定も関係します。TUNを有効にしてアプリの接続が復旧した場合、通信経路が変わったことを示しているのであり、ループバック一覧が自動修復されたわけではありません。

TUNを別の通信経路としてテストすることはできますが、一度に変更する設定は1つにしてください。システムプロキシがローカルのループバックアドレスを指している場合、分離対象のアプリがそのアドレスへ接続するには、引き続き許可が必要なことがあります。TUNを有効にするだけで、すべてのUWPの問題が解決するとは限りません。

システムプロキシをすべてのサービスに適用しない

一部のWindowsサービスはWinHTTPを使用します。WinHTTPのプロキシ設定は、現在のユーザーのシステムプロキシとは別のものです。以下の読み取り専用コマンドで状態を確認できますが、「直接アクセス」と表示されても設定ミスとは限りません。また、Storeが必ずこの通信経路を使っているとも判断できません。

netsh winhttp show proxy

WinHTTPの一括変更、ネットワークのリセット、ファイアウォールの無効化を、ループバック許可の必須手順として行わないでください。システムサービス、組織の端末管理、ほかのソフトに影響する可能性があります。具体的な故障原因を確認してから個別に対処してください。

解決しない場合の最終チェック

  • サービスの状態を確認:Windowsの日付、時刻、タイムゾーンが正しいこと、アカウントにログインできていること、接続先サービスが稼働していることを確認します。アプリに「ネットワークエラー」と表示されても、ローカルプロキシの障害とは限りません。
  • Storeのキャッシュをリセット:Microsoft Storeだけに問題がある場合は、Win + R を押して wsreset.exe を実行し、もう一度試します。これはStoreのキャッシュを処理するもので、ループバック許可の代わりにはならず、利用できないノードも修復しません。
  • アプリのサポート状況を確認:旧版のWindowsメールとカレンダーは、2024年12月31日にサポートを終了しました。本記事の掲載日現在、旧アプリが正常に動作しない原因をループバック制限だけに求めることはできません。利用中なのが旧メールアプリか新しいOutlookかを確認し、該当する製品に合わせて調べてください。
  • 診断情報は必要最小限に:Windowsのバージョン、クライアント名、ローカルポート、アプリのパッケージファミリー名、エラーコード、発生時刻を記録します。ログを共有する前に、サブスクリプションURL、トークン、アカウント情報を削除してください。

おすすめの手順は、通常のアプリでプロキシが動作することを確認し、システムプロキシの接続先を確認してから、対象アプリだけに許可を追加して再起動し、接続記録からルールとノードを判断することです。各手順を個別に検証できるため、典型的なUWPのループバック制限に対処しながら、Storeのキャッシュ、サービスの通信経路、旧アプリのサポート終了を混同せずに済みます。