アカウントを何十も管理している場合、チームで作業している場合、または異なるプロキシサーバーを介してトラフィックを柔軟にルーティングしたい場合、各ブラウザやデバイスを手動で設定することは悪夢のようになります。PACファイルはこの問題を解決します:1つのルールファイルで、すべてのトラフィックが自動的に必要な場所に送信されます。この記事では、PACファイルとは何か、どのように機能するか、そしてアービトラージャー、SMM専門家、企業ユーザーがどのように利用しているかを解説します。
PACファイルとは何か、どのように機能するか
PACファイル(Proxy Auto-Config)は、.pacという拡張子を持つ小さなファイルで、内部にはJavaScriptの関数が書かれています。この関数は、各リクエストのURLを取得し、それを直接送信するか、プロキシサーバーを介して送信するかを決定します。プロキシを介する場合は、どのプロキシを使用するかも決定します。
この技術は1990年代にNetscape Navigatorのブラウザで登場し、それ以来企業ネットワークの標準となっています。今日、PACファイルはすべての人気ブラウザ(Chrome、Firefox、Edge、Safari)およびWindows、macOS、Linuxのオペレーティングシステムでサポートされています。
動作原理はシンプルです:ブラウザやアプリケーションがページをロードしたいとき、最初にPACファイルのFindProxyForURL(url, host)関数を実行します。この関数は、次の3つの値のいずれかを返します:
- DIRECT — 直接接続、プロキシなし
- PROXY host:port — 指定されたアドレスのHTTPプロキシを使用
- SOCKS5 host:port — SOCKS5プロキシを使用(ほとんどの現代のブラウザでサポートされています)
最も重要なのは、異なるサイトに対して複数のルールを指定できることです。たとえば、Facebookへのトラフィックは1つのプロキシを介し、Wildberriesへのトラフィックは別のプロキシを介し、その他は直接接続されます。これがPACファイルをプロキシを使ったプロフェッショナルな作業に欠かせないツールにしています。
💡 重要な理解
PACファイルはプログラムでもサービスでもありません。これは単にルーティングロジックを持つテキストファイルです。ブラウザが自動的にそれを読み取り、ルールを適用します。追加のソフトウェアは必要ありません。
PACファイル vs 手動設定:違いは何か
技術的な詳細に入る前に、正直に答えましょう:ブラウザの設定でプロキシを手動で設定するだけで済むのに、なぜ複雑にする必要があるのでしょうか?その答えは、あなたの作業の規模によります。
アカウントが1つとプロキシが1つであれば、手動設定は十分です。しかし、10、20、50のプロファイルを扱い始めると、または異なるサイトに異なるプロキシが必要になると、手動設定はエラーのリスクが高い恒常的なルーチンに変わります。
| 基準 | 手動設定 | PACファイル |
|---|---|---|
| プロファイルの数 | 1–5(便利) | 10–1000+(スケーラブル) |
| 異なるサイトに対する異なるプロキシ | 不可能 | 簡単に設定可能 |
| 設定の変更 | 各デバイスで手動 | 1つのファイルで全てが更新 |
| 障害時のバックアッププロキシ | なし | フォールバックを設定可能 |
| 企業管理 | 中央集権化が難しい | 会社全体に1つのURL |
| 参入障壁 | ゼロ | 1回理解する必要がある |
結論は明らかです:PACファイルは、プロキシをプロフェッショナルに扱う人々のためのツールです。複数の広告アカウントを運営するアービトラージャーや、数十のクライアントアカウントを持つSMMエージェンシーにとって、PACファイルは毎週数時間の作業を節約します。
PACファイルの構造:ルールの読み方と書き方
「JavaScript」という言葉に驚かないでください — PACファイルはプログラミングの知識を必要としません。これは、理解しやすいロジックを持つ数行のコードです。基本的な構造を例を用いて解説します。
すべてのPACファイルには、1つの必須関数が含まれています:
function FindProxyForURL(url, host) {
// ここにルールを記述
return "DIRECT";
}
関数のパラメータ:url — リクエストの完全なアドレス、host — ドメインのみ。関数は、指示を含む文字列を返す必要があります。
例1:すべてのトラフィックを1つのプロキシ経由で
function FindProxyForURL(url, host) {
return "PROXY 185.100.200.10:8080";
}
例2:FacebookとInstagramはプロキシ経由、その他は直接
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.facebook.com") ||
shExpMatch(host, "*.instagram.com") ||
shExpMatch(host, "*.fbcdn.net")) {
return "SOCKS5 185.100.200.10:1080";
}
return "DIRECT";
}
例3:異なるサービスに対する異なるプロキシ + バックアップ
function FindProxyForURL(url, host) {
// Facebook広告 — モバイルプロキシ経由
if (shExpMatch(host, "*.facebook.com") ||
shExpMatch(host, "*.instagram.com")) {
return "SOCKS5 mobile-proxy.example.com:1080; DIRECT";
}
// WildberriesとOzon — レジデンシャルプロキシ経由
if (shExpMatch(host, "*.wildberries.ru") ||
shExpMatch(host, "*.ozon.ru")) {
return "PROXY res-proxy.example.com:8080";
}
// ローカルネットワーク — 常に直接
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
return "DIRECT";
}
// その他は直接
return "DIRECT";
}
SOCKS5 ...; DIRECTという行に注意してください — セミコロンは主要なプロキシとバックアップオプションを区切ります。主要なプロキシが利用できない場合、ブラウザは自動的にリストから次のオプションを試みます。
PACファイルで必要な主な組み込み関数は次のとおりです:
| 関数 | 何をするか | 例 |
|---|---|---|
shExpMatch(host, pattern) |
パターンに基づいてドメインをチェック | *.facebook.com |
isInNet(host, ip, mask) |
サブネットへの所属をチェック | 192.168.0.0 / 255.255.0.0 |
isLocalhost(host) |
ローカルホストかどうかをチェック | localhostを除外するため |
dnsDomainIs(host, domain) |
ドメインの正確な一致をチェック | dnsDomainIs(host, ".google.com") |
PACファイルが必要な人とその理由:ビジネスシナリオ
PACファイルは抽象的な技術ではありません。具体的なシナリオを考えてみましょう。これらは実際に時間を節約し、ブロックを防ぐのに役立ちます。
アービトラージャーとFacebook広告
典型的な状況:アービトラージャーが15〜30のFacebook広告アカウントを扱っています。各アカウントはアンチデテクトブラウザの個別のプロファイルと個別のプロキシに関連付けられています。このとき、Facebook.com、Instagram.com、Metaのサービスへのトラフィックはプロキシを介し、作業用のサービス(Google Docs、Telegram、内部ツールなど)は直接接続される必要があります。
PACファイルはこれを1つのファイルで解決します:Metaのドメインに対するルールを記述すれば、すべてのトラフィックが<а href="https://proxycove.com/ja/mobile-proxies/" style="color:#2563eb;">モバイルプロキシを介して送信され、Facebookのアルゴリズムに疑念を抱かれにくくなります。その他は直接接続されます。1つのファイルがすべてのプロファイルで機能します。
SMMエージェンシーとマルチアカウント
SMM専門家は、InstagramやTikTokで30〜50のクライアントアカウントを管理しています。各アカウントはユニークなIPで動作する必要があります。プロキシプールを更新する際(IPアドレスの変更)、すべてのプロファイルの設定を更新する必要があり、これは数時間の作業になります。
PACファイルを使用すると、ファイルをサーバーに配置(またはGoogle Driveに配置)し、Dolphin AntyやAdsPowerのすべてのプロファイルが1つのURLを参照します。ファイルを更新すれば、すべての設定が自動的に変更されます。手動でプロファイルを切り替える必要はありません。
マーケットプレイスの価格監視
WildberriesやOzonのセラーは、競合の価格を定期的に監視しています。マーケットプレイスは、1つのIPからのパースや頻繁なリクエストを積極的にブロックします。PACファイルを使用すると、Wildberries.ruやOzon.ruへのリクエストが<а href="https://proxycove.com/ja/residential-proxies/" style="color:#2563eb;">レジデンシャルプロキシを介して送信され、その他のトラフィックは直接接続されます。これにより、プロキシへの負荷とトラフィックコストが削減されます。
企業ネットワーク
企業環境では、PACファイルは従業員のインターネットトラフィックを中央集権的に管理するために使用されます。IT部門はPACファイルを内部サーバーに配置し、会社のすべてのコンピュータがDHCPやActive Directoryのグループポリシーを介して自動的に取得します。内部リソースへのトラフィックは直接接続され、外部トラフィックはフィルタリングとロギングを伴う企業プロキシを介して送信されます。
📌 ビジネスにおける重要な利点
PACファイルはトラフィックルーティングの管理のための単一のポイントです。50台のデバイスや30のブラウザプロファイルの設定を更新する代わりに、1つのファイルを変更するだけで、すべての変更が自動的に適用されます。
ブラウザやシステムでPACファイルを接続する方法
PACファイルは、ローカルファイルへのパス、サーバー上のURL、またはWPADプロトコル(企業ネットワークでの自動検出)を介して接続できます。それぞれのオプションを見てみましょう。
Windows — システム設定
Windowsのプロキシ設定は、システム設定を使用するすべてのブラウザ(Chrome、Edge、Internet Explorer)に適用されます:
- 設定 → ネットワークとインターネット → プロキシを開きます。
- プロキシサーバーの自動設定のセクションを見つけます。
- スクリプト設定を使用するのスイッチをオンにします。
- スクリプトのアドレスフィールドにPACファイルへのパスを入力します:
- ローカルファイル:
file:///C:/proxy/config.pac - ネットワークファイル:
http://server.company.com/proxy.pac
- ローカルファイル:
- 保存をクリックします。
macOS — システム設定
- システム環境設定 → ネットワークを開きます。
- アクティブなネットワーク接続(Wi-FiまたはEthernet)を選択 → 詳細をクリックします。
- プロキシサーバータブに移動します。
- プロキシサーバーの自動設定にチェックを入れます。
- URLフィールドにPACファイルのアドレスを入力します。
- OK → 適用をクリックします。
Firefox — 個別設定
Firefoxは、システム設定とは独立した独自のプロキシ設定を使用します:
- 設定を開きます(またはアドレスバーに
about:preferencesと入力します)。 - ネットワーク設定セクションまでスクロールダウンし、設定をクリックします。
- プロキシサーバーの自動設定URLを選択します。
- PACファイルのURLを入力します。
- OKをクリックします。
PACファイルを保存する場所
PACファイルの保存方法はいくつかあります:
- コンピュータにローカルに — 簡単ですが、中央集権的に更新することはできません。
- ウェブサーバーに — チームに最適で、更新が即座に適用されます。
- GitHub PagesやGistに — 小規模チーム向けの無料ホスティング。
- 企業ネットワークに — WPAD(Web Proxy Auto-Discovery Protocol)を介して。
サーバーに配置する際は、正しいMIMEタイプを設定することが重要です:サーバーは、Content-Type: application/x-ns-proxy-autoconfigというヘッダーでファイルを提供する必要があります。これがないと、一部のブラウザは処理を拒否する可能性があります。
アンチデテクトブラウザにおけるPACファイル:Dolphin、AdsPower、GoLogin
アービトラージャーやSMM専門家にとって、PACファイルのアンチデテクトブラウザとの統合は特に重要です。最も人気のあるツールでの動作を見てみましょう。
Dolphin Anty
Dolphin Antyは、アービトラージャーの間で最も人気のあるアンチデテクトブラウザの1つです。PACファイルを介したプロキシの設定は、プロファイルレベルで行われます:
- Dolphin Antyを開き、必要なプロファイルに移動します。
- プロファイル編集アイコンをクリックします。
- プロキシセクションで接続タイプを選択します。
- カスタムまたはPACスクリプトオプションを選択します(バージョンによって異なります)。
- PACファイルのURLまたはスクリプトの内容を直接貼り付けます。
- プロファイルを保存し、ブラウザを起動します。
重要なポイント:Dolphin Antyでは、1つのプロキシ設定をグループのプロファイルに同時に適用できます。これにより、PACファイルを変更する際に、各プロファイルを手動で編集する必要がなく、サーバー上のファイルを更新するだけで済みます。
AdsPower
AdsPowerは、ブラウザプロファイルの設定を介してPACファイルをサポートしています:
- メインメニューで必要なプロファイルを選択 → 編集をクリックします。
- プロキシ設定セクションに移動します。
- プロキシタイプフィールドでカスタムプロキシを選択します。
- 接続タイプをPACとして指定します。
- PACファイルのURLを対応するフィールドに入力します。
- プロキシを確認をクリックして検証し、保存します。
GoLoginとMultilogin
GoLoginとMultiloginもPACスクリプトをサポートしています。GoLoginでの設定は同様で、プロファイルの設定 → プロキシ → PACタイプを選択 → URLまたはスクリプトの内容を貼り付けます。Multiloginはより企業向けのツールで、APIを介してプロキシの管理機能が拡張されており、新しいプロファイルにPACファイルを自動的に割り当てることができます。
⚡ アービトラージャー向けのライフハック
異なるタスク用に複数のPACファイルを作成します:1つはFacebook Ads用、もう1つはTikTok Ads用、3つ目は監視用です。これにより、異なるチームやタスクのためにプロキシ設定を迅速に切り替えることができ、プロファイルグループ内のスクリプトのURLを変更するだけで済みます。
企業ネットワークのためのPAC設定:ステップバイステップガイド
PACファイルの企業利用は次のレベルです。ここでは、10台から数千台のデバイスのためのトラフィックを中央集権的に管理することについて話しています。
ステップ1:ルーティングロジックを定義する
PACファイルを書く前に、次の質問に答えてください:
- どのリソースがプロキシなしでアクセス可能であるべきか?(内部サービス、イントラネット)
- どの外部トラフィックを企業プロキシを介して送信する必要があるか?
- サイトのカテゴリによるフィルタリングが必要か?
- どのプロキシをバックアップとして使用するか?
ステップ2:PACファイルを作成する
典型的な企業PACファイルは次のようになります:
function FindProxyForURL(url, host) {
// ローカルアドレスは常に直接
if (isPlainHostName(host) || isLocalhost(host)) {
return "DIRECT";
}
// 企業の内部ネットワークは直接
if (isInNet(host, "10.0.0.0", "255.0.0.0") ||
isInNet(host, "172.16.0.0", "255.240.0.0") ||
isInNet(host, "192.168.0.0", "255.255.0.0")) {
return "DIRECT";
}
// 企業ドメインは直接
if (dnsDomainIs(host, ".company.ru") ||
dnsDomainIs(host, ".company-internal.ru")) {
return "DIRECT";
}
// すべての外部トラフィックは企業プロキシを介して
// 利用できない場合のバックアップオプション
return "PROXY proxy.company.ru:8080; PROXY proxy2.company.ru:8080; DIRECT";
}
ステップ3:ファイルをウェブサーバーに配置する
PACファイルを企業の内部ウェブサーバーに配置します。次のことを確認してください:
- ファイルが安定したURLでアクセス可能であること(例:
http://proxy.company.ru/proxy.pac) - サーバーがPACファイルに対して正しいContent-Typeを提供していること
- URLがネットワーク内のすべてのデバイスから認証なしでアクセス可能であること
- 合理的なTTL(例:1時間)でキャッシングが設定されていること
ステップ4:グループポリシーを介して設定を配布する
WindowsとActive Directoryの企業環境では、PACファイルの設定はGPO(グループポリシーオブジェクト)を介して配布されます:
- グループポリシー管理エディタ(GPMC)を開きます。
- 新しいGPOを作成するか、既存のものを編集します。
- ユーザー構成 → Windowsの設定 → Internet Explorerの設定(またはChrome用にレジストリを介して)に移動します。
- 自動構成設定でPACファイルのURLを指定します。
- 必要な部門にポリシーを適用します。
Chromeの場合、企業環境ではChrome ADMXテンプレートを介して別のポリシーが使用されます:ProxyPacUrlパラメータを使用すると、ドメイン内のすべてのインストールされたChromeにPACファイルのURLを強制的に設定できます。
ステップ5:WPADを設定して自動検出を行う
WPAD(Web Proxy Auto-Discovery)は、デバイスが手動設定なしでPACファイルを自動的に見つけることを可能にするプロトコルです。これを行うには:
- PACファイルを
http://wpad.company.ru/wpad.datに配置します。 - DNSレコードを追加します:
wpad→ あなたのウェブサーバーのIP - デバイスで「自動的に設定を検出する」オプションを有効にします。
この設定を行うと、ネットワーク内の新しいデバイスは、IT部門の介入なしに自動的にプロキシ設定を取得します。
PACファイルを使用する際のよくあるエラーとその回避方法
経験豊富な専門家でも、PACファイルを使用する際に一般的なエラーを犯すことがあります。最も一般的なエラーを見てみましょう。
エラー1:JavaScriptの構文エラー
PACファイルに構文エラーがある場合、ブラウザはそれを無視し、プロキシなしで動作するか、すべてのトラフィックをブロックします。これは最も厄介な問題の1つで、エラーがユーザーに表示されることはありません。
解決策:デプロイ前にPACファイルをオンラインバリデーター(例:pacparser.io)やブラウザのDevToolsでチェックしてください。Chromeでは、chrome://net-internals/#proxyを開いて、ファイルが適用されたかどうかを確認できます。
エラー2:サーバーのMIMEタイプが不正
サーバーがPACファイルをContent-Type: text/plainまたはapplication/octet-streamで提供する場合、一部のブラウザ(特にChrome)はそれを適用しません。
解決策:サーバーを設定してContent-Typeをapplication/x-ns-proxy-autoconfigに設定します。Apacheの場合、.htaccessに次の行を追加します:AddType application/x-ns-proxy-autoconfig .pac
エラー3:ブラウザ起動時にPACファイルが利用できない
PACファイルがサーバーに配置されている場合、そのサーバーがブラウザ起動時に利用できないと(たとえば、在宅勤務中の企業サーバー)、ブラウザがページをロードしようとするとフリーズすることがあります。
解決策:常に戻り値の最後にDIRECTを追加してください。また、高可用性のプラットフォーム(CDN、GitHub Pages)にPACファイルを保存することを検討してください。
エラー4:すべてのサブドメインを含めるのを忘れた
よくあるエラー:facebook.comのルールを書いたが、*.facebook.com、*.fbcdn.net、*.instagram.comを忘れた。結果として、メインページはプロキシを介し、メディアファイルは直接接続されます。これにより、混合リクエストが発生し、実際のIPが漏れる可能性があります。
解決策:各プラットフォームで使用されるすべてのドメインを注意深く調査してください。Facebookの場合、次のようになります:facebook.com、*.facebook.com、instagram.com、*.instagram.com、fbcdn.net、*.fbcdn.net、whatsapp.com、*.whatsapp.comなど。
エラー5:古いバージョンのPACファイルがキャッシュされている
ブラウザはPACファイルを積極的にキャッシュします。サーバー上のファイルを更新した後、変更がすぐに適用されない場合があります — ブラウザは古いバージョンを使用し続けます。
解決策:更新時にファイルのURLにバージョニングを追加します:proxy.pac?v=2。または、サーバーで短いTTLのキャッシングヘッダーを設定します。Chromeでは、chrome://net-internals/#proxy → 設定を再適用することでPACを強制的に再読み込みできます。
| 問題 | 症状 | 解決策 |
|---|---|---|
| 構文エラー | プロキシが全く機能しない | PACファイルバリデーター |
| 不正なMIMEタイプ | Chromeがファイルを無視する | サーバーでContent-Typeを設定する |
| サーバーが利用できない | ブラウザがフリーズする | フォールバックとしてDIRECTを追加する |
| 不完全なドメインリスト | 実際のIPが漏れる | プラットフォームのすべてのサブドメインを確認する |
| キャッシュ | 変更が適用されない | ファイルのURLにバージョニングを追加する |
結論
PACファイルは、プロキシをプロフェッショナルに扱うすべての人にとって強力で過小評価されているツールです。各プロファイルやデバイスの手動設定に時間を費やす代わりに、トラフィックのルーティングロジックを一度記述すれば、すべてが自動的に機能します。
アービトラージャーにとって、PACファイルはFacebook AdsやTikTok Adsのための数十の広告アカウントのトラフィックを柔軟に管理することを意味します。SMMエージェンシーにとっては、すべてのクライアントアカウントのプロキシ設定を手動で作業することなく中央集権的に更新することを意味します。企業のIT部門にとっては、グループポリシーを介して会社全体のインターネットトラフィックを管理するための単一のポイントです。
記事からの重要なポイント:PACファイルは、各リクエストをどのプロキシに送信するかを決定するJavaScript関数です。すべてのブラウザとオペレーティングシステムでサポートされており、サーバーに中央集権的に保存してチーム全体で一度に更新できます。アンチデテクトブラウザのDolphin Anty、AdsPower、GoLogin、Multiloginは、プロファイルレベルでPACファイルをサポートしています。
ソーシャルネットワークやマーケットプレイスでの作業のためにPACファイルを設定する場合、正しいプロキシタイプを選択することが重要です。実際のユーザーを模倣することが重要なタスク(Facebook Ads、Instagram、TikTok)には、レジデンシャルプロキシが最適です。これらは実際の家庭ユーザーのIPアドレスを使用し、プラットフォームのアルゴリズムに疑念を抱かれにくくなります。モバイルトラフィックやMeta広告アカウントでの作業には、モバイルプロキシを検討する価値があります。
```