図解でわかる プロキシサーバ入門シリーズ ~第4回 初心者向け PAC 検証方法と留意点:net-export と netlog‑viewer を使いこなす~

PAC 検証の流れを示す図解(net-export と netlog viewer を使った手順) ネットワーク
図解で学ぶ PAC 検証:net-export でログ取得→netlog viewer で解析する実務フロー。

1. プロキシサーバ及びPACとは(第1・2・3回の復習)

本節では第1回で扱ったプロキシの概要、第2回で解説したプロキシサーバをどのように利用するか(PACファイルの利用及び第3回で解説したPACの具体的な記載方法について、短く復習した上で、本題であるPACファイルのテストとデバッグについて解説していきたいと思います。

1-1_プロキシサーバの概要

まず、おさらいですがプロキシサーバとは「 クライアントの代わりに外部と通信する中継役」です。技術的にはクライアント(PC等)からのリクエストを受け取り、代わりに外部サイト(サーバ)へ接続して応答を返すソフトウェア/ハードウェアを指します。通信を仲介することで、プロキシサーバは単なる中継地ではなくページのキャッシュやフィルタなどの様々な機能を提供することが可能になります。

クライアントと外部サーバ間のプロキシ中継図
図解1_プロキシはクライアントの代わりに外部と通信し、キャッシュやフィルタを提供する。

1-2 PACの役割とメリット

PAC(Proxy Auto-Config)ファイルは、クライアント機器(PC等)がアクセス先ごとに「 プロキシを使うか/直接接続するか」を自動判定するためのJavaScript形式の設定ファイルです。PACは端末側でアクセス先ごとの接続先を動的に決定できるため、管理者が一括でルールを更新すれば全端末に反映されます。手動設定と比べて運用負荷が低く、特定サービスだけ別プロキシに振るなど柔軟な運用が可能です。

PAC ファイル取得と DIRECT/PROXY 判定のフロー図
図解2_PAC はアクセス先ごとに DIRECT または PROXY を返し、端末はそれに従って接続する。

1-3_PACファイルの記載方法

PACファイルの主な構成は、下記になります

  • 基本構文(例:FindProxyForURL)      
  • 引数(例:url / host)  。
  • 返却値 (例 DIRECT / PROXY等)
  • 判定関数(例 dnsDomainIs, shExpMatch, isInNet, dnsResolve)
FindProxyForURL の引数と返却値、代表的判定関数の一覧図
図解3_FindProxyForURL の構造と shExpMatch / isInNet 等の使い方を図解。

各項目の詳細な内容は第三回記事を参照ください

図解でわかる プロキシサーバ入門シリーズ ~第3回 PACファイルの書き方を図解で解説 FindProxyForURL 基本構文と実例集~
PACファイルの基本と FindProxyForURL の書き方を図解で解説。dnsDomainIs/shExpMatch/isInNet の使い分けと実践テンプレ(社内優先・用途別振り分け)をコピペで提供。

2_PACの検証方法(検証方法及び留意点)

PAC導入で最も重要なのは検証です。ブラウザを利用しての確認方法や、PACのキャッシュクリアについて解説します。

2-1_ブラウザでの具体的な検証方法(Chrome/Edge)

Chrome/Edgeでは、以下の手順でPACファイルを検証します。

  • net-export」で通信ログを記録し、
  •  記録ファイルを 「 netlog‑viewer」 に読み込んで PAC の評価結果(実際に選ばれた接続方法)を確認します。
∞-CPU
∞-CPU

それでは具体的な手順についてみていきましょう。

2-1-1_ログ記録を開始 

ブラウザで chrome://net-export/(Chrome)または同等の Edge ページを開き、「Start Logging to Disk」をクリックして保存先を指定する。

chrome://net-export/ の Start Logging to Disk ボタンを示すスクリーンショット
図解4_net-export で「Start Logging to Disk」を選び、保存先とオプションを指定する。

2-1-2_再現操作 

確認したいサイトへアクセスして、PAC の判定が行われるリクエストを発生させる(ページ読み込みやリソース取得)。

2-1-3_ログ記録を停止 

Stop Logging を押して .json ログを保存する。

net-export 実行中にサイトへアクセスしているブラウザ画面の例
図解5_検証対象サイトへアクセスして PAC 判定を発生させ、必要なリクエストをログに残す。

2-1-4_ログを解析

保存したログを netlog‑viewer(https://netlog-viewer.appspot.com/)にアップロードし、「Event」や「Socket」タブで該当リクエストを探す。ここに「Direct」や「Proxy host:port」といった実際の接続結果が表示されます。

  • net-exportで保存したログを選択
  • 「Events」タブを選択
  • 調べたいサイト(URL)を検索
  • HTTP_STREAM_JOB_CONTROLLER等のイベントを選択
  • 詳細が表示されるのでどのプロキシが選ばれたかが分かります
    →「Direct」は直接通信、プロキシが使われていた場合はプロキシサーバの情報が表示されます。※例はDirect通信
netlog viewer の Event タブで Direct/Proxy 判定を確認する画面
図解6_Event タブで URL をフィルタし、HTTP_STREAM_JOB_CONTROLLER 等のイベントから接続結果を確認する。

2-2 PACファイルのキャッシュと反映タイミング

PC(WindowOS等)はPACファイルをキャッシュするため、導入時や変更時の検証の際にPACファイルの更新が端末に反映されないことがあります。ここではキャッシュクリアサービス再起動の手順を実務的に見ていきます。

2-2-1_ブラウザを“完全に”終了する

PAC キャッシュはブラウザが開いている限り残り続けるため、まず全プロセスを終了させる必要があります。

  • Edge/Chrome を閉じる
  • タスクバーに残っていないか確認
  • 必要なら タスクマネージャー → プロセス で msedge.exe / chrome.exe が残っていないか確認して終了する

2‐2‐2_ブラウザのキャッシュを削除する

ブラウザが保持している PAC のキャッシュを強制的に削除します。
「Windows+R」 →  「RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8」
このコマンドはブラウザの全キャッシュを削除します。

2-2-3_ブラウザを再起動し、PAC が適用されているか確認する

キャッシュを削除した状態でブラウザを起動し、PAC の評価結果を確認します。

  • Edge: edge://net-internals/#proxy
  • Chrome: chrome://net-internals/#proxy
  • 「Proxy auto-config」欄に最新 PAC が読み込まれているか確認

3_まとめ

本記事ではPAC ファイルの基本(役割・書き方)を短く復習し、Chrome/Edge の net-exportnetlog‑viewer を使って「実際にどの接続方法が選ばれたか」を確認する手順を解説しました。さらに、PAC が更新されても反映されない場合に備えて、ブラウザ終了・キャッシュ削除・PAC 再起動確認といった実務的なキャッシュ対策も紹介しましたので是非一度試してみてください。

(参考)よくある質問

Q1
PAC を更新したのに反映されないのはなぜ?
A1

 Windows やブラウザが 古い PAC をキャッシュしていることが多いです。ブラウザを完全終了し、WinINet キャッシュを削除すると改善します。

Q2
netlog‑viewer では何を見ればよい?
A2

Event タブで URL を検索し、Direct か Proxy が選ばれたかを確認します。意図と違う場合は PAC の条件式を見直します。

Q3
PAC の動作確認はブラウザだけで十分?
A3

基本は十分ですが、反映されない場合は curl で PAC を直接取得して、サーバ側のキャッシュ問題がないかも確認すると確実です。
(コマンドプロンプト → curl -H “Cache-Control: no-cache” http://<PAC_URL>- 取得した PAC の内容が最新か確認できます)

コメント

タイトルとURLをコピーしました