VPN をオンにしたときだけ一部のサイトが開けないのはなぜ?
一つのサイトだけ失敗し他は読み込めるなら、障害の範囲は素早く絞れます。エラーを読み、名前解決を試し、それからクライアントに触る前にパケットサイズを確認します。
一つのサイトだけが失敗し、それ以外はすべて読み込めるということは、トンネルが通信を運んでいる証拠であり、多くの人が思うよりずっと問題の範囲を絞り込めます。三つの観察、つまり HTTP 応答をそもそも受け取ったか、ホスト名がアドレスに解決されたか、小さいリクエストは通り大きいものは止まるかが残りを整理します。これらの答えを得る前に VPN を疑うと、たいていは障害を消すのではなく別の場所へ移すだけです。
観察は順番に進めてください。応答したサイトが同時に解決に失敗していたはずはなく、何も読み込めないなら別の枝にいるので、接続済みだがインターネットなしの確認が当てはまります。
エラーメッセージに枝を選ばせる
拒否、ボット対策の確認、エラーページは、サービスが応答した、つまりパケットがアプリケーションに届いて戻ってきたことを意味します。これは問題を、出口アドレスやアカウント、あるいは公開していないリクエストのパターンを重んじるかもしれないサイトのアクセス方針へと移します。名前解決の失敗はサイトにまったく届いていないので、まず確認すべきはアドレスです。タイムアウトはその中間で、何かは送られたのに、何も確認しなかった状態です。
証明書の警告は四つ目の枝に属します。接続に応答した何かの身元をブラウザが確認できなかったという意味で、こちら側のプロキシか、クリックして通り抜けるべきでない本物の不一致のどちらかです。これは経路の問題ではなく信頼の問題として扱ってください。
応答するサイトはトンネルの破損を証明していない
応答がブロックページなら、ブラウザとマシンを変えないまま、同じページを二つ目の出口から比較します。結果が出口アドレスに従うなら、サイトはそのアドレスを別扱いしており、クライアントの設定では変えられません。遮断がブラウザに従うなら、原因は拡張機能、保存されたプロキシ、リゾルバの設定にあります。二回の実行でこれらの説明は安く切り分けられます。
ブラウザだけで起きる失敗は珍しくないので、早めに試す価値があります。ある対応ブラウザでは読み込め、別のブラウザでは失敗するページは、プロファイルの状態、コンテンツブロッカー、ブラウザ内部で設定された暗号化 DNS を示します。Chrome の安全な DNS に関するガイダンスにその設定の場所が書かれており、対応する操作で変えるほうが端末を初期化するよりましです。
大きな転送だけが止まるときはパケットサイズを見る
ヘッダーを描画してから止まるページは、まったく始まらないページとは別の署名を持ちます。小さい応答は通るのに、フルサイズのペイロードが送信側に何も伝えられない場所で破棄される、というのがブラウザから見た経路 MTU 障害の姿です。フィルタリングを論じる前に、同じホストへ小さなリクエストと大きなリクエストを送って比べてください。経路 MTU 探索は経路上の最小リンクサイズを学ぶはずで、フィルタリングされたネットワークが日常的に捨てる ICMP のフィードバックに依存しています。
その仮説は単発の ping ではなくサイズを掃引して試してください。一定のペイロードサイズで始まる失敗は強い証拠ですが、場所が動く失敗はそうではありません。
失敗したリクエストで修正を確認する
キャッシュされた外枠は描画されてもサインインの後ろの API 呼び出しは失敗したままかもしれないので、ホームページではなく元の操作を再テストしてください。下のコマンドは同じホストに対して、名前解決、小さなリクエスト、大きなリクエストを切り分けます。ホスト名とパスは、実際に壊れたリクエストのものに置き換えてください。
dig +short www.example.com
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' https://www.example.com/
curl -sS -o /dev/null -w '%{http_code} %{size_download}\n' https://www.example.com/assets/app.js
ping -M do -s 1400 -c 3 203.0.113.20
dig の答えがブラウザの使ったものと違うなら、変数はリゾルバで、見るべき場所はブラウザ自身の DNS 設定です。小さなリクエストがステータスを返すのに大きなものが止まるなら、パケットサイズの枝を進めてください。両方がタイムアウトするなら、出口経路とそのアドレスに対するサイトの扱いが再び俎上に載ります。
元のリクエストを成功させた変更だけを残し、残りは元に戻してください。ブラウザ、リゾルバ、クライアントへの同時変更を山のように積むと、どれが効いたのか言えなくなります。