短い名前に対する PAC ルールはプロキシを迂回させることがある
ドットのないホスト名とその完全修飾形式が、同じ PAC スクリプト内で異なる経路を選びうる理由を理解する。
PAC スクリプトは URL からホスト名を受け取ります。dashboard は照合の前に自動的に dashboard.example.internal になるわけではありません:
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
return "PROXY 203.0.113.10:8080";
}ドキュメント用アドレスの代わりに実際の HTTP エンドポイントを使ってください。HTTP プロキシ一覧 は、その経路が許可されている場合の公開宛先テスト用の候補を提供します。このスクリプトでは短い名前が意図的に DIRECT を返し、完全修飾名はプロキシ側の分岐に到達します。「Plain hostname」とはドットのない表記という意味であり、ホストが信頼できるローカルネットワーク上にあるという判定ではありません。
望むポリシーが 1 つの内部ドメインなら、すべての短い名前ではなくそのドメインに一致させてください。dnsDomainIs と shExpMatch は入力とパターンの意味が異なります。.example.internal の接尾辞チェックは完全一致のルート example.internal を含みません。意図する場合はそのケースを明示的に含めてください。シェル形式のパターンは IP サブネットでも正規表現でもありません。
短い名前、完全修飾名、無関係な公開ホスト、および意図する任意のドメインルートについてスクリプトの結果を比較してください。これにより、プロキシに接続せずにルール選択を検証できます。広い DIRECT 分岐が、本来到達可能なエンドポイントの試行を妨げる場合は、最初に返るルール を確認してください。
ポリシーを表現できる場合は名前の比較を使ってください。DNS ヘルパーは独自の照会と遅延を追加します。ブラウザの暗黙のローカルバイパスもスクリプトとは別に保ってください。localhost チェックは、公開または内部宛先の実際の表記の代わりにはなりません。