切れたトンネルは開いたまま壊れる
VPN接続が切れると、OSは黙って通常のインターフェイスに通信を流します。アプリは動き続け、警告は何も出ません。キルスイッチはこのフェイルオープンをフェイルクローズに変えます。トンネルがなければ、通信もなし。
ガイド
キルスイッチは、VPNトンネルが切れた瞬間にすべてのインターネット通信を遮断し、アプリが通常回線へ静かにフォールバックするのを防ぎます。これがないと、2秒の切断でも本当のIPアドレスがさらされます。さらに、トンネルが張られている間でも、DNSリクエスト、ブラウザのWebRTC、IPv6の通信はトンネルの脇をすり抜けることがあります。どの漏れにも、簡単なテストと対処法があります。
VPN接続が切れると、OSは黙って通常のインターフェイスに通信を流します。アプリは動き続け、警告は何も出ません。キルスイッチはこのフェイルオープンをフェイルクローズに変えます。トンネルがなければ、通信もなし。
DNSクエリはトンネルの外のISPリゾルバへ行くことがあり、WebRTCはWebサイトにあなたのアドレスを渡すことがあり、IPv6はIPv4専用トンネルを迂回できます——VPNのアイコンが「接続中」と示している間ずっと、です。
設定画面を信じる必要はありません。リークテストは、Webサイトに実際に見えているアドレスとリゾルバを表示します。わざとトンネルを切ってみれば、キルスイッチが持ちこたえるかどうかも分かります。
接続は開いたまま壊れます。VPNは、通信を仮想ネットワークインターフェイスへ導く経路を追加します。トンネルのプロセスが落ちたりタイムアウトしたりすると、その経路は消えますが、Wi-Fiや有線経由のデフォルト経路は残ります。だからシステムはパケットを届け続けます——今度はISP経由で直接。アプリは数秒でソケットを張り直し、本当のIPから通信を送り始め、どこにもエラーダイアログは出ません。
切断は日常茶飯事です。Wi-Fiからモバイル回線への切り替え、スリープから復帰するノートPC、不安定なホテルのネットワーク、VPNサーバーの再起動。どれも一瞬トンネルを壊します。その一瞬が何を意味するかは、トンネルが落ちている間に端末から何かが出ていくことを許すかどうかで決まります。
キルスイッチは魔法ではなく、ファイアウォールルールの集まりです。厳格版が許す外向き通信は2種類だけ。トンネルインターフェイスに入るパケットと、VPNクライアント自身がサーバーへ送る暗号化パケットです。トンネルが落ちると、アプリの通信は戻ってくるまで単純に行き場を失います。
これは故障を防ぐのではなく、故障の仕方を変えるものです。キルスイッチがあれば、切断は「気づける接続の一時停止」になり、なければ「気づかないまま本当のアドレスで流れる通信」になります。ネットワークは不完全で、トンネルはこれからも切れます——フェイルクローズは、その瞬間を無害にするのです。
違いが出るのは、アプリ自体が死んだときです。アプリ内キルスイッチは、VPNクライアントの中でトンネルを監視し、切れたら通信を止めるコードです。それはクライアントが動いている間しか機能しません。クライアントがクラッシュしたり、バッテリー最適化に殺されたりすれば、保護も一緒に死にます——まさにトンネルが消える瞬間に。
システムレベルのキルスイッチは、OS自身のファイアウォールにルールを入れます。どのアプリが動いていようと、すべての外向きパケットが検査されます。Androidにはこれが標準で備わっています。「常時オンVPN」に「VPN以外の接続をブロック」を組み合わせると、再起動後アプリが立ち上がる前でも、OS自体がトンネル外の通信を拒否します。2つを見分ける乱暴な方法:ブラウジング中にVPNアプリを強制終了してみる——それでもページが読み込めるなら、スイッチはアプリの中に住んでいます。
DNSリークとは、通信本体はトンネルに乗っているのに、名前解決がローカルネットワークに割り当てられたリゾルバ——普通はISPのもの——へ行ってしまうことです。Webサイトに見えるのはVPNのアドレスですが、リゾルバにはあなたが開くすべてのサイト名が届き、それは事実上の閲覧ログになります。古典的な犯人はWindowsです。複数のインターフェイスが有効だと全部に並列で問い合わせ、先に答えたほうを使うことがあります。
対処は2段構えで、良いクライアントは両方やります。システムのリゾルバをトンネル内のものに向けること、そして他のすべてのインターフェイスでDNSをブロックし、はぐれたクエリの行き場をなくすこと。そのうえで検証を。リークテストを実行して、表示されるリゾルバを確認してください——ISPのものが混じっていたら、名前解決は漏れています。
WebRTCはビデオ通話を支えるブラウザ技術で、どのWebサイトでも数行のJavaScriptで呼び出せます。直接接続を確立するために、あなたのマシンに届きうるすべてのアドレスを収集します。ローカルアドレス、そしてSTUNサーバーに問い合わせて得る公開アドレスです。ページはあなたの操作なしに、その候補一覧を読み取れます。
端末全体のトンネルなら、STUNリクエストもトンネルの中を通るので、見つかるのはVPNのアドレスです。危険なのは部分的な構成です。ブラウザだけのプロキシや、ブラウザをトンネルの外に置くスプリットトンネリングでは、WebRTCのUDPパケットが直接外に出て、本当のIPをさらします。
理屈をこねるよりテストを。無料チェッカー /webrtc-leak-test/ が、あなたのブラウザが今まさに開示しているアドレスを表示します。本当のアドレスが出てきたら、端末全体のトンネルに移るか、ブラウザ設定でWebRTCを無効にしてください。
多くのVPN構成はIPv4しか運びません。ISPがIPv6も提供している場合——モバイル網はほとんどそうです——、システムはトンネルの外に生きたIPv6経路を持ち続け、現代のOSはサイトが両対応ならIPv6を優先します。結果は選択的な露出です。IPv6のないサイトにはVPNのアドレスが見え、あるサイトには本当のアドレスが見え、IPv4だけのテストは「すべて正常」と報告します。
きれいな対処は2つあります。良いほうは、IPv6を正しく扱うVPNです。IPv4と並べてトンネルに通すか、ブロック経路を張ってIPv6パケットを直接送らず破棄します。乱暴なフォールバックは、端末やルーターでIPv6を無効にすることです。どちらにしても検証を。リークテストに、VPNのものではないIPv6アドレスが1つも出ないことを確認してください。
チェックは実際に使う環境で行いましょう——自宅のWi-Fi、モバイル回線のスマホ、カフェのネットワーク。漏れは各ネットワークのDNS設定とIPv6の有無に依存するからです。ひととおりで5分ほどです。
VPNトンネルをルーターに載せると、ネットワーク上のすべての端末が一度に守られます。アプリを入れられないテレビ、ゲーム機、スマートスピーカーも含めてです。トレードオフは本物です。スループットはルーターのCPUに縛られ、家中が1つの国から出ていくことになり、トラブルシューティングは難しくなります。このガイドでは、構成の種類と決め方を解説します。
旅先では、VPNはホテルや空港のWi-Fiで通信を暗号化し、アカウントへのログインをいつもの国からの接続に見せかけ、海外だと挙動の変わるサービスに届かせてくれます。万能薬ではありません。ストリーミングサービスはサーバーのアドレスを検知しますし、現地のルールは国ごとに違います。何より大事なルールはひとつ——出発前にすべてを設定し、テストしておくことです。
VPN(仮想プライベートネットワーク)は、あなたの端末とリモートサーバーの間に暗号化されたトンネルを作り、通信はそのサーバーを経由してインターネットに出ていきます。プロバイダーからはどのサイトを見ているか分からなくなり、Webサイト側にはあなたのIPアドレスの代わりにサーバーのIPアドレスが見えます。あくまでプライバシーを守る道具であって、透明マントではありません。