PACファイルが原因で通信できない時の切り分け方法|即解決できる完全トラブルシュートガイド

  • URLをコピーしました!

「インターネットに出られない」「特定サイトだけ繋がらない」「急に通信できなくなった」
その原因、PACファイル(Proxy Auto-Config)かもしれません。

本記事では、PACファイルが原因で通信できない場合の切り分け方法を、 設計理解 → 症状別診断 → 具体的コマンド → 修正方法まで完全網羅します。

目次

PACファイルとは?まず仕組みを理解する

PACファイルは、JavaScript形式で「どの通信をどのプロキシへ送るか」を定義する設定ファイルです。

基本動作フロー

  • クライアントがPACファイル取得
  • URLごとにFindProxyForURL()を実行
  • PROXY / DIRECT を判定
  • 指定プロキシへ接続

基本構文例

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

このロジックに問題があると、通信不能が発生します。

まず確認すべき5つのポイント

① PACファイルは正常に取得できているか?

確認方法

curl http://proxy.example.local/proxy.pac

よくある原因

  • PACサーバ停止
  • DNS解決不可
  • HTTPS証明書エラー

② PACファイルの内容は正しいか?

ブラウザの開発者ツールで実際に使用されているプロキシを確認します。

Chrome確認方法

chrome://net-internals/#proxy

見るべき点

  • PROXY IP誤記
  • ポート番号誤り
  • 不要なセミコロン
  • return漏れ

③ DNS解決が正しいか?

PAC内でdnsResolve()を使っている場合、DNS不具合が即通信断につながります。

確認コマンド

nslookup proxy.example.local
dig proxy.example.local

見落としポイント

  • IPv6優先による不整合
  • 内部DNSと外部DNS混在

④ プロキシサーバ自体は正常か?

疎通確認

telnet 192.168.1.10 8080
nc -zv 192.168.1.10 8080

プロキシ経由テスト

curl -x http://192.168.1.10:8080 http://example.com -v

ここで失敗する場合は、PACではなくプロキシ側が原因です。

⑤ 認証・証明書エラーはないか?

407エラーの場合

curl -x http://user:pass@192.168.1.10:8080 http://example.com -v

証明書エラーの場合

curl -x http://192.168.1.10:8080 https://example.com -k -v

症状別:原因と解決方法

症状① 特定サイトだけ繋がらない

原因

  • if条件誤り
  • dnsDomainIsの記述ミス
  • ワイルドカード未対応

修正例

if (shExpMatch(host, "*.example.com")) {
    return "DIRECT";
}

症状② 社内通信までプロキシ経由になっている

原因

  • ローカルIP除外設定なし

対策例

if (isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0")) {
    return "DIRECT";
}

症状③ 断続的に通信失敗

原因

  • 複数プロキシ定義で片系障害
  • タイムアウト未考慮

修正例

return "PROXY 192.168.1.10:8080; PROXY 192.168.1.11:8080; DIRECT";

実践切り分けフロー(そのまま使える)

  • PAC取得確認
  • 内容確認
  • DNS確認
  • Proxy疎通確認
  • curlで直接通信確認
  • curlでプロキシ経由確認
  • 認証確認

設計段階で防ぐベストプラクティス

  • DIRECTの条件を明示的に定義
  • 複数プロキシは順序設計を明確化
  • IPv4/IPv6両対応
  • 変更時はテスト用ブラウザで検証
  • バージョン管理(Git推奨)

まとめ

PACファイルトラブルは、

  • 取得
  • 構文
  • DNS
  • プロキシ疎通
  • 認証

この5層で整理すれば必ず解決できます。

原因を段階的に排除すれば、最短で復旧可能です。

目次