プロキシサーバーのフィルターが原因?アクセスできないサイトを突き止める方法

はじめに

社内ネットワークや学校などの環境では、インターネットアクセスの管理・セキュリティ強化のためにプロキシサーバーが導入されていることがよくあります。ときにはこのプロキシサーバーのフィルタリング機能が原因で、特定のWebサイトやサービスにアクセスできなくなることも。

    プロキシサーバーとは

    代理サーバーとしての役割

    プロキシサーバー(proxy server)とは、ユーザーのリクエスト(通信)を“代理”として受け取り、インターネット上の目的のサーバーにアクセスする役割を担うサーバーのことです。
    一般的に、以下の目的で利用されます。

      キャッシュ機能: よくアクセスするサイトのデータをプロキシ側で一時保存し、ネットワーク帯域を節約する。
      セキュリティ・フィルタリング: 社内ルールや企業ポリシーに反するサイトや有害サイトへのアクセスを制限する。
      ログ管理: どの端末がどのサイトにアクセスしているかを記録・監視する。

      フィルタリングの仕組み

      プロキシサーバーにはURLやキーワードをもとにアクセスを許可・ブロックする機能が搭載されている場合があります。たとえば「SNSサイト禁止」「特定のカテゴリのサイトは禁止」のように設定されている場合、該当のサイトにアクセスしようとすると、ブラウザ上にブロック画面が表示されたり“接続エラー”になったりすることがあります。

      プロキシサーバーのフィルターでサイトにアクセスできないケース

      よくある症状

      プロキシサーバーが原因で特定のサイトにアクセスできないとき、以下のような症状が現れることが多いです。

      接続タイムアウト: ブラウザ上でエラーが表示され、ページがまったく表示されない。
      ブロック画面が表示される: 「このサイトはアクセス禁止です」などの専用ページが表示される。
      部分的なリソースの読み込み失敗: サイトは見られるが、画像や特定のスクリプトだけが読み込めない。
      こういった場合、プロキシサーバーの管理画面を確認できれば、どのURLがブロックされたのか一目でわかることがあります。しかし、組織の方針などで管理画面にアクセスできないケースも少なくありません。

      検証ツールを使って原因を突き止める手順

      ここでは、プロキシサーバーの管理画面に頼らずに、Chromeの開発者ツール(検証ツール)などを使ってフィルタリングの原因を調べる方法を紹介します。
      他のブラウザ(Firefox、Edgeなど)でも同様の手順で確認できますが、ここではChromeを例とします。

      開発者ツール(検証画面)の起動

      Chromeを開き、アクセスしたいサイトに移動。
      キーボードのF12キー、または右上のメニューから「その他のツール > デベロッパーツール」を選択。

      Networkタブの確認

      開発者ツールを開いたら、上部のタブからNetworkを選択する。
      すでにページが読み込まれている場合は、いったんリロード(もしくは「Disable cache」にチェックを入れてリロード)する。
      すると、該当サイトの読み込みリクエストの一覧が表示される。
      ここで注目すべきは、

      ステータスコード: 200(OK)、404(Not Found)、403(Forbidden)、407(Proxy Authentication Required)など
      URL: ブロックの原因となっているかもしれないドメインやファイルパス
      もしフィルタリングが作動している場合、特定のリソースだけ403や404、あるいは proxy error が返っているといったことが確認できるでしょう。

      Consoleタブのエラーを確認

      Networkタブにエラーがない場合でも、Consoleタブにエラーメッセージが残っていることがあります。

      ブロックされたリソースのURL
      「Failed to load resource: the server responded with a status of 403」などの文言
      これらのエラー文言から、フィルタリングによるエラーかどうか判断材料になります。

      実際にブロックされているURLをブラウザで直接開いてみる

      NetworkタブやConsoleタブで見つけたエラーURLに対して、

      ブラウザのアドレスバーに直接貼り付けてアクセス
      「このURL自体がブロックされているのか」を確認
      これにより、主サイト自体は表示できても、広告や解析用のドメインがブロックされてページが中途半端に崩れているというケースも特定できるはずです。

      補足:コマンドラインの活用例

      もし開発者ツールだけでは原因が分かりづらい場合、curlやpingなどのコマンドラインツールを使っても検証ができます。

      curlでの確認

      ターミナルやコマンドプロンプトで下記のように入力します:

      curl -I http://アクセスしたいサイトのURL

      ヘッダー情報(ステータスコードなど)が返ってきますが、もしプロキシが介入している場合は「プロキシのエラーメッセージ」「Access Denied」などが返ってくることがあります。

      pingでの接続確認

      ping アクセスしたいサイトのドメイン

      pingはICMPプロトコルを使っているため、Webアクセスのフィルタリングと挙動が異なることもありますが、サーバー側に全く応答がないのか、そもそもDNS解決できないのか、といった点を切り分けるヒントになります。