「インターネットに出られない」「特定サイトだけ繋がらない」「急に通信できなくなった」
その原因、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層で整理すれば必ず解決できます。
原因を段階的に排除すれば、最短で復旧可能です。
あわせて読みたい


プロキシ経由通信が失敗する原因と確認ポイント|即復旧のための完全トラブルシュート手順
「インターネットには出られるのに、プロキシ経由だけ失敗する」「特定サイトだけエラーになる」「CONNECTで止まる」 本記事では、プロキシ通信トラブルを体系的に切り…
あわせて読みたい


インターネットだけ遅い時の切り分け手順【社内は正常なのに外だけ遅い原因を完全解説】
「社内サーバは速いのに、インターネットだけ遅い」「VPNやクラウド接続は問題ないが、Web閲覧が重い」「時間帯によって外向き通信だけ遅くなる」 この現象は現場で非常…
あわせて読みたい


回線は空いているのに遅い理由|見落としがちなボトルネック一覧【帯域以外の真犯人を完全解説】
「回線使用率は30%なのに遅い」「帯域は余裕があるのにWebが重い」「増速したのに体感が変わらない」 この現象は、ネットワーク現場で非常に多い“思い込みトラブル”です…
