Windows 8
 Computer >> コンピューター >  >> システム >> Windows 8

Windows 8のMetroアプリがVPN接続時にインターネットへ繋がらない原因と解決策

VPN接続時にMetroアプリだけインターネットに繋がらない問題

特定の種類のVPN接続を使用していると、Windows 8の最新アプリ(Metroアプリ)インターネットに接続できない(サーバーへの接続に失敗するなど)という現象に遭遇することがあります。ただし、この問題はすべてのMetroアプリで発生するわけではありません。一部のアプリ(主に標準搭載のMetroアプリ)は正常に動作する一方、他のアプリは動作しないという状況です。その一方で、従来型のWindowsアプリケーションは問題なくインターネットへアクセスできます。

コンピューターの手前に、プロバイダーへのVPN接続を確立するハードウェアルーターを設置すると、この問題は発生しません。つまり、この問題は、Windows 8自体がVPNトンネルを確立しなければならない場合にのみ起こるものです。

この問題はかなり昔から存在しますが、Microsoftによる公式な解決策は現在のところ提供されていません(少なくとも筆者は見つけられませんでした)。本記事では、問題が発生する原因とその解決方法を詳しく解説します。

原因:ループバックインターフェースへのアクセス制限

ご存知のとおり、Windows 8のモダンアプリは従来のWindowsアプリとは仕組みが異なります。ここで重要なのは、これらのアプリが隔離された環境で実行され、デフォルトではコンピューターのループバック(loopback)インターフェースへのアクセスが無効化されているという点です。VPNで使用されるすべてのトンネルインターフェース(PPTP、L2TP、PPPoE)はループバックインターフェースとして動作するため、大多数のMetroアプリはそこへネットワークトラフィックを送信できず、結果としてインターネットへアクセスできません。同様の問題は、ローカルプロキシサーバー(Privoxyのようなシンプルな広告除去ツールから本格的なプロキシサーバーまで)でも発生します。

Metroアプリに完全なネットワークアクセスを許可するには、APPXマニフェストにprivateNetworkClientServerを追加する必要があります。Visual Studioでアプリを開発する際にはこの権限が有効になっていますが、アプリがWindowsストアで公開された後は、開発者がマニフェストファイルでこの機能を手動で有効にしなければなりません。

Windows上のトンネルインターフェースがループバックとして扱われる限り、開発者にアプリの修正を依頼するか、回避策を用いてMetroアプリを正常に動作させるかのどちらかの対応が必要になります。

回避策:Fiddlerでループバック制限を解除する

回避策として、Webアプリのデバッグやコンピューターとインターネットサーバー間のHTTPトラフィック検査を目的とした無料のHTTP/HTTPSプロキシサーバーFiddlerを使用します(Windowsストアから任意のMetroアプリのAPPXインストールファイルへの直接リンクを取得する用途にも使えます)。

  1. こちらのページからFiddler Web Debuggerをダウンロードします。Windows 8以降ではFiddler for .Net 4が必要です(.NET Framework 4がインストールされていることが前提です)。
  2. Fiddlerを標準設定でインストールします。
  3. デフォルトでは、Fiddlerはローカルプロキシサーバーとして動作するため、Metroアプリのトラフィックを捕捉できません(Metroアプリはデフォルトでローカルプロキシ経由の通信ができないため)。Fiddlerの拡張機能Windows 8 AppContainer Loopback Utility(enableloopbackutility.exe)を使用すると、特定のMetroアプリのAppContainerに対するループバック制限を解除できます。この拡張機能をダウンロードしてインストールしてください。
  4. ユーティリティのインストール後、Fiddlerを起動し、ToolsメニューからWin8 Loopback Exemptionsを選択します(ツールバー左端のWindows 8ボタンをクリックしても同じ操作が可能です)。
  5. 次のステップへ進む前に、VPNが確立されていること(またはローカルプロキシサーバーが起動していること)を確認してください。
  6. トラフィックをFiddler経由にし、ループバックアクセス制限を解除したいMetroアプリを選択します。すべてのアプリを対象にする場合はExempt Allをクリックし、Save Changesで設定を保存します。

ヒント:このウィンドウには、セキュリティと信頼性の観点から、WindowsがMetroアプリによるローカルコンピューターへのトラフィック送信をブロックしている旨が記載されています。AppContainer Loopback Exemption Utilityは、デバッグとテストの目的でこの制限を解除するものです。

  1. Fiddlerを最小化します(終了しないでください!)。その後、Metroアプリからのネットワークアクセスを確認します。

重要:新しいモダンアプリをインストールした場合は、そのアプリを手動でループバック除外リストに追加する必要があります。

Fiddlerは、展開や管理の面で不便な点があるため、企業環境での本番運用には向いていません。しかし、VPN環境でMetroアプリを動作させるための回避策としては非常に有用です。

以上、Fiddlerを活用して、任意のVPN接続やローカルプロキシサーバー経由でMetroアプリにインターネットアクセスを許可する方法を解説しました。

  1. 【解決済み】Windows 10 で L2TP VPN に接続できない原因と対処法まとめ

    Windows 10 から L2TP/IPsec VPN サーバーに接続できずにお困りの場合は、本記事の手順に従って問題を解決しましょう。 VPN 接続エラーにはさまざまな原因が考えられますが、多くの場合、VPN 接続の設定ミス(サーバー名・アドレスの誤り、認証方式、ユーザー名、パスワードの入力間違いなど)が原因です。そのため、トラブルシューティングの第一歩として、まずすべての VPN 設定が正しいかどうかを確認することが重要です。 本チュートリアルでは、Windows 10 や Windows Server 2012/2016 で L2TP/IPsec VPN サーバーに接続する際に発生する

  2. Windows 10でVPNエラー789「接続失敗」を解決する方法

    WindowsでVPNエラー789に悩まされていませんか?ご安心ください。デバイスの設定を少し変更するだけで、この問題は簡単に解決できます。VPN接続エラー789は、VPN設定の誤りや、IPSec設定が接続を妨げていることが原因で発生します。ここでは、この問題を解決するためのトラブルシューティング方法をいくつかご紹介します。VPNエラー789(接続失敗)の解決方法以下に、Windows 10デバイスでVPN接続エラーを解決するための対処法をご紹介します。方法1:ネットワークアダプターをリセットするデバイスにインストールされているネットワークアダプターをリセットすることで、数クリックだけでVPN