【Windows 11】ローカルのPACファイルを使ってプロキシ設定を検証する方法

Tips

概要

社内ネットワークなどでプロキシサーバーを利用している場合、PACファイル(Proxy Auto-Configuration)を使用して、アクセス先に応じたプロキシの振り分けを行うことがあります。

PACファイルの設定を変更する際、いきなり本番環境に反映するのではなく、事前に動作を確認しておきたいことがあります。

今回は、Windows上に保存したPACファイルを使用して、プロキシ設定を検証する方法を紹介します。

Windows標準のプロキシ設定からPACファイルを指定するため、特別なツールをインストールする必要はありません。

なお、ブラウザの仕様や会社のセキュリティポリシーなど、利用環境によってはローカルのPACファイルを読み込めない場合がありますので、ご注意ください。

サンプルコード

今回は、以下のようなPACファイルを使用します。

function FindProxyForURL(url, host) {

    // 社内ドメインは直接接続
    if (dnsDomainIs(host, ".example.local")) {
        return "DIRECT";
    }

    // 特定のサイトは直接接続
    if (host === "example.com") {
        return "DIRECT";
    }

    // その他の通信はプロキシを経由
    return "PROXY 192.0.2.10:8080";
}

このサンプルでは、アクセス先によって以下のように通信経路を振り分けています。

アクセス先接続方法
*.example.local直接接続
example.com直接接続
その他のサイト192.0.2.10:8080 を経由

DIRECT はプロキシを使用せずに直接接続する指定です。

PROXY は、指定したプロキシサーバーを経由する指定です。

※ 192.0.2.10 は説明用のIPアドレスです。実際にプロキシ経由の通信を確認する場合は、利用可能なプロキシサーバーのIPアドレスとポート番号に変更してください。

詳細

1. PACファイルとは

PACファイルは、アクセス先のURLやホスト名などをもとに、プロキシサーバーを利用するかどうかを自動的に判断するためのJavaScriptファイルです。

PACファイルには、FindProxyForURL() という関数を記述します。

function FindProxyForURL(url, host) {
    return "DIRECT";
}

この関数は、アクセス先のURLとホスト名を受け取り、利用するプロキシサーバーや直接接続の指定を返します。

なお、PACファイルとWPADは厳密には異なります。

  • PAC:プロキシの振り分けルールを記述したファイル
  • WPAD:PACファイルの場所を自動検出する仕組み

今回はWPADによる自動検出ではなく、ローカルに保存したPACファイルを直接指定して検証します。

2. PACファイルを作成する

まず、Windows上にPACファイルを保存するフォルダーを作成します。

今回は以下のフォルダーを使用します。

C:\wpadtest

続いて、メモ帳などのテキストエディターでサンプルコードを記述し、以下のファイル名で保存します。

C:\wpadtest\wpad.dat

PACファイルは .pac という拡張子でも利用されますが、今回は wpad.dat としています。

ファイルを保存する際は、拡張子が .txt にならないように注意してください。

3. Windowsのプロキシ設定を変更する

続いて、Windowsのプロキシ設定からPACファイルを指定します。

Windows 11の「設定」を開き、以下の順番で移動します。

設定 → ネットワークとインターネット → プロキシ

【画像挿入:Windows 11のプロキシ設定画面】

「自動プロキシセットアップ」にある「セットアップ スクリプトを使う」の「セットアップ」をクリックします。

表示された画面で「セットアップ スクリプトを使う」をオンにし、スクリプトのアドレスに以下を入力します。

file:///C:/wpadtest/wpad.dat

【画像挿入:セットアップスクリプトの設定画面】

Windowsのファイルパスでは \ を使用しますが、URLとして指定する場合は / を使用します。

設定後、「保存」をクリックします。

これで、Windowsのプロキシ設定にローカルのPACファイルが指定されます。

ただし、設定が保存できても、利用するアプリケーションがローカルPACファイルを正常に読み込めるとは限りません。

4. PACファイルの動作を確認する

設定が完了したら、ブラウザなどでWebサイトにアクセスし、プロキシの振り分けが想定どおりに行われるか確認します。

今回のサンプルコードでは、以下の条件で接続方法が切り替わります。

if (host === "example.com") {
    return "DIRECT";
}

example.com へのアクセスは、プロキシを経由せずに直接接続します。

一方、それ以外のサイトについては、以下の設定が適用されます。

return "PROXY 192.0.2.10:8080";

こちらは指定したプロキシサーバーを経由する設定です。

実際の検証では、PACファイルに設定した接続先やプロキシサーバーに合わせて、通信が想定どおりに振り分けられているかを確認してください。

なお、Webサイトが正常に表示されたことだけでは、想定した経路で通信しているとは限りません。

必要に応じて、プロキシサーバーのアクセスログなども確認すると確実です。

5. PACファイルを修正した場合

PACファイルの振り分け条件を変更した場合は、ファイルを上書き保存します。

ただし、PACファイルの内容がキャッシュされている場合、変更がすぐに反映されないことがあります。

その場合は、プロキシ設定を再設定するか、検証に使用しているアプリケーションを再起動して、改めて動作を確認してください。

6. 利用時の注意事項

今回の方法では、Windowsのプロキシ設定からローカルのPACファイルを指定しています。

ただし、ブラウザの仕様や会社のセキュリティポリシーなど、利用環境によってはローカルのPACファイルを読み込めない場合がありますので、ご注意ください。

また、Windowsのプロキシ設定を変更すると、同じ設定を参照するほかのアプリケーションにも影響する可能性があります。

検証は、可能であればテスト用の端末や検証環境で実施してください。

7. 検証後は設定を戻す

検証が完了したら、Windowsのプロキシ設定を元に戻します。

「設定 → ネットワークとインターネット → プロキシ」を開き、「セットアップ スクリプトを使う」を検証前の設定に戻してください。

もともと別のPACファイルを利用していた場合は、元のスクリプトアドレスを再設定します。

検証用のPACファイルを指定したままにすると、通常のWebアクセスに影響する可能性があるため、忘れずに戻しておきましょう。

おわりに

今回は、Windows上に保存したPACファイルを使用して、プロキシ設定を検証する方法を紹介しました。

PACファイルの設定変更を行う場合、本番環境に反映する前に動作を確認しておくことで、想定外の通信影響を防ぎやすくなります。

Windows標準のプロキシ設定からPACファイルを指定できるため、検証用のWebサーバーなどを用意せずに設定を試すことができます。

ただし、ローカルPACファイルの読み込み可否は利用環境によって異なるため、設定後は実際の通信経路まで確認することをおすすめします。

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