PACファイルが別のサイトを正しくプロキシ経由にしていても、IP確認ページには直接接続のアドレスが表示される場合があります。IP確認ページ自体に適用される分岐を確認してください。

function FindProxyForURL(url, host) {
  if (host === "example.com") {
    return "PROXY 203.0.113.10:8080; DIRECT";
  }
  return "DIRECT";
}

このスクリプトはexample.comにHTTPプロキシ、その次にDIRECTを提示します。それ以外のホストは明示的に直接接続なので、別ドメインのIP確認サイトではプロキシの分岐を試していません。使用前に文書用の接続先を意図したHTTPプロキシへ置き換えます。公開プロキシが方針に合う場合はHTTPプロキシ一覧から候補を選べます。

セミコロンは経路の候補を区切ります。DIRECTはプロキシなしの接続を許可し、選ばれると接続先はその直接経路の出口を見られます。プロキシ必須の方針を、プロキシ利用不可時にこのフォールバックを意図的に許すルールで実現することはできません。

候補の失敗をどう扱うかはブラウザーが判断し、失敗したプロキシを記憶する場合もあります。サイトがHTTPエラーを返すことは、プロキシに到達できないことと自動的に同じにはなりません。そのため、スクリプトの最初の候補だけでは実際の経路は確定できません。

PROXY IP:portは通常のHTTP待ち受け先を表します。対応していればCONNECTでHTTPSを運べるため、サイトがHTTPSという理由だけで別の接続先は不要です。また、使うのはブラウザーが渡すURL情報だけにしてください。HTTPSのパスやクエリーはPACの評価前に削られる場合があります。

意図した接続先に対する結果を評価し、同じルールが適用される新しいリクエストを送ります。対処を選ぶ前に、条件の誤一致、接続先への到達不能、許可された直接接続へのフォールバックを区別してください。

関連記事