إذا كنت تدير عدة حسابات إعلانات، أو تقوم بجمع البيانات من الأسواق، أو تعمل مع منصات أجنبية - فمن المؤكد أنك واجهت موقفًا حيث تمر كل حركة المرور عبر وكيل، على الرغم من أنك تحتاج إلى ذلك فقط لعدد قليل من المواقع. في النهاية: تنخفض السرعة، وتزداد تكلفة البيانات، ويصبح الوكيل "محترقًا" بشكل أسرع. يحل ملف PAC هذه المشكلة: حيث يسمح لك بتحديد المواقع التي تمر عبر الوكيل بدقة، وأيها - مباشرة.
ما هو ملف PAC ولماذا هو مطلوب
PAC هو اختصار لـ Proxy Auto-Configuration - إعداد الوكيل تلقائيًا. في الأساس، هو ملف نصي صغير يحتوي على دالة JavaScript، والتي تحدد لكل طلب من المتصفح أو النظام: هل يجب توجيه حركة المرور مباشرة أو عبر خادم وكيل.
يبدو الأمر تقنيًا، لكن في الممارسة العملية، هو أداة بسيطة جدًا. تقوم بكتابة القواعد مرة واحدة - ويقوم النظام بتطبيقها تلقائيًا. لا تحتاج إلى التبديل يدويًا بين الوكلاء في كل مرة أو الاحتفاظ بمتصفح منفصل لكل موقع.
من يستفيد من ذلك حقًا:
- للمتداولين - تقوم بتشغيل الإعلانات على Facebook Ads و TikTok Ads، لكنك لا تريد أن تمر كل حركة المرور الأخرى (البريد، المراسلات، المواقع العملية) عبر الوكيل وتبطئ العمل.
- لمتخصصي SMM - تدير 20-50 حسابًا على Instagram أو TikTok، ولكل ملف تعريف يحتاج إلى وكيل خاص به فقط للمنصة المحددة.
- لبائعي الأسواق - تجمع أسعار Wildberries أو Ozon، لكنك تريد أن تمر الطلبات إلى هذه المواقع فقط عبر الوكيل، وليس كل الإنترنت.
- للمسوقين - تتحقق من نتائج البحث والإعلانات من مناطق مختلفة، بينما تستمر باقي الأعمال باستخدام IP الحقيقي الخاص بك.
الميزة الرئيسية لملف PAC مقارنة بالإعداد العادي للوكيل هي توفير البيانات والموارد. عندما تمر كل حركة المرور عبر الوكيل، فإنك تدفع مقابل كل ميغابايت، بما في ذلك YouTube و Google Docs وتحديثات Windows. يسمح لك ملف PAC بتمرير فقط ما هو ضروري عبر الوكيل.
💡 نقطة مهمة
يدعم ملف PAC جميع المتصفحات الحديثة (Chrome و Firefox و Edge) وأنظمة التشغيل (Windows و macOS و Linux) ومعظم متصفحات مكافحة الكشف. هذه معيار موجود منذ أكثر من 25 عامًا.
كيف يعمل ملف PAC: منطق توجيه حركة المرور
في كل مرة يحاول فيها المتصفح أو التطبيق فتح أي عنوان URL، فإنه يستدعي دالة من ملف PAC ويمرر لها معلمين: عنوان URL نفسه واسم المضيف (النطاق). تقوم الدالة بتحليل هذه البيانات وتعيد واحدة من ثلاث قيم:
DIRECT- الاتصال مباشرة، بدون وكيل.PROXY host:port- استخدام وكيل HTTP بالعنوان والمنفذ المحددين.SOCKS5 host:port- استخدام وكيل SOCKS5.
يتم تنفيذ الدالة على الفور - قبل إنشاء الاتصال. لا يلاحظ المستخدم أي تأخير. يمكن أن تكون المنطق معقدًا كما تريد: يمكنك توجيه حركة المرور إلى Facebook عبر وكيل واحد، وإلى TikTok عبر آخر، وترك كل شيء آخر مباشرة.
إليك مخطط مبسط للعمل:
- تفتح في المتصفح facebook.com
- يستدعي المتصفح دالة ملف PAC: "إلى أين يتم توجيه الطلب إلى facebook.com؟"
- تتحقق الدالة من قائمة القواعد وتجيب: "استخدم PROXY 185.10.10.1:8080"
- يتصل المتصفح بـ Facebook عبر الوكيل
- تفتح google.com - تجيب الدالة: "DIRECT"
- يفتح Google مباشرة باستخدام IP الحقيقي الخاص بك
يسمى هذا النهج split tunneling - تقسيم حركة المرور. هذه ممارسة قياسية في الشبكات المؤسسية وVPN، لكن للعمل مع الوكلاء، يعد ملف PAC أفضل حتى - فهو أسهل في الإعداد ولا يتطلب تثبيت برامج إضافية.
هيكل ملف PAC: تحليل الأجزاء
ملف PAC هو ملف نصي عادي بامتداد .pac. يحتوي داخله على دالة JavaScript واحدة إلزامية باسم FindProxyForURL. يتم استدعاؤها من قبل المتصفح مع كل طلب.
يبدو الهيكل الأساسي كما يلي:
function FindProxyForURL(url, host) {
// القاعدة 1: إذا كان هذا هو localhost - دائمًا مباشرة
if (isPlainHostName(host)) {
return "DIRECT";
}
// القاعدة 2: إذا كان النطاق - facebook.com - عبر الوكيل
if (dnsDomainIs(host, "facebook.com")) {
return "PROXY 185.10.10.1:8080";
}
// القاعدة 3: جميع الطلبات الأخرى - مباشرة
return "DIRECT";
}
لنحلل الوظائف المدمجة الرئيسية التي ستستخدمها في كثير من الأحيان:
| الوظيفة | ماذا تفعل | مثال |
|---|---|---|
dnsDomainIs(host, ".example.com") |
يتحقق مما إذا كان المضيف ينتمي إلى النطاق | سوف يلتقط facebook.com وجميع النطاقات الفرعية |
shExpMatch(host, "*.example.com") |
مطابقة النمط (wildcard) | تصفية مرنة حسب نمط النطاق |
isInNet(host, "10.0.0.0", "255.0.0.0") |
يتحقق من الانتماء إلى شبكة IP الفرعية | لتصفية حسب نطاقات IP |
isPlainHostName(host) |
يتحقق مما إذا كان المضيف اسمًا محليًا | localhost، printer، nas - مباشرة |
localHostOrDomainIs(host, "...") |
يتحقق من المضيف المحلي أو النطاق | للاستثناءات في الشبكة الداخلية |
نقطة مهمة: تعالج الدالة القواعد من الأعلى إلى الأسفل وتتوقف عند أول تطابق. لذلك، فإن ترتيب القواعد مهم - ضع الشروط الأكثر تحديدًا أولاً، وفي النهاية - القاعدة العامة الافتراضية.
أمثلة جاهزة لملفات PAC لمهام حقيقية
أدناه - أربعة قوالب عملية لمهام محددة. انسخ ما تحتاجه، واستبدل عنوان الوكيل ورقم المنفذ ببياناتك - وملفك جاهز للاستخدام.
القالب 1: فقط Facebook و Instagram عبر الوكيل (للمتداولين)
function FindProxyForURL(url, host) {
// العناوين المحلية - دائمًا مباشرة
if (isPlainHostName(host) ||
shExpMatch(host, "*.local") ||
host === "127.0.0.1") {
return "DIRECT";
}
// Facebook وجميع نطاقاته الفرعية - عبر الوكيل
if (dnsDomainIs(host, "facebook.com") ||
dnsDomainIs(host, "fbcdn.net") ||
dnsDomainIs(host, "fb.com")) {
return "PROXY 185.10.10.1:8080";
}
// Instagram - عبر نفس الوكيل
if (dnsDomainIs(host, "instagram.com") ||
dnsDomainIs(host, "cdninstagram.com")) {
return "PROXY 185.10.10.1:8080";
}
// كل شيء آخر - مباشرة
return "DIRECT";
}
القالب 2: وكلاء مختلفة لمنصات مختلفة (لوكالات SMM)
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
// Instagram - عبر وكيل مقيم #1
if (dnsDomainIs(host, "instagram.com") ||
dnsDomainIs(host, "cdninstagram.com")) {
return "PROXY 91.200.10.5:3128";
}
// TikTok - عبر وكيل مقيم #2
if (dnsDomainIs(host, "tiktok.com") ||
dnsDomainIs(host, "tiktokcdn.com") ||
dnsDomainIs(host, "musical.ly")) {
return "PROXY 91.200.10.6:3128";
}
// VK - عبر وكيل منفصل
if (dnsDomainIs(host, "vk.com") ||
dnsDomainIs(host, "vk.me") ||
dnsDomainIs(host, "userapi.com")) {
return "PROXY 91.200.10.7:3128";
}
return "DIRECT";
}
القالب 3: جمع بيانات Wildberries و Ozon (للبائعين)
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
// Wildberries - عبر الوكيل (جمع الأسعار)
if (dnsDomainIs(host, "wildberries.ru") ||
dnsDomainIs(host, "wbstatic.net") ||
dnsDomainIs(host, "wb.ru")) {
return "PROXY 45.130.10.20:8080";
}
// Ozon - عبر الوكيل
if (dnsDomainIs(host, "ozon.ru") ||
dnsDomainIs(host, "ozonusercontent.com")) {
return "PROXY 45.130.10.20:8080";
}
// Avito - عبر الوكيل
if (dnsDomainIs(host, "avito.ru") ||
dnsDomainIs(host, "avito.st")) {
return "PROXY 45.130.10.20:8080";
}
return "DIRECT";
}
القالب 4: وكيل SOCKS5 مع HTTP احتياطي (تحمل الفشل)
function FindProxyForURL(url, host) {
if (isPlainHostName(host)) {
return "DIRECT";
}
// المواقع المستهدفة - SOCKS5 أساسي، HTTP احتياطي
if (dnsDomainIs(host, "facebook.com") ||
dnsDomainIs(host, "instagram.com") ||
dnsDomainIs(host, "tiktok.com")) {
// إذا كان SOCKS5 غير متاح - سيتحول تلقائيًا إلى HTTP
return "SOCKS5 185.10.10.1:1080; PROXY 185.10.10.1:8080; DIRECT";
}
return "DIRECT";
}
💡 حول الوكلاء الاحتياطيين
السطر "SOCKS5 ...; PROXY ...; DIRECT" - هو سلسلة احتياطية. إذا كان الوكيل الأول غير متاح، سيحاول المتصفح تلقائيًا الثاني، ثم الاتصال المباشر. هذا مفيد جدًا للمهام الحرجة حيث لا يمكن تحمل التوقف.
كيفية توصيل ملف PAC في المتصفح والنظام
هناك طريقتان لتوصيل ملف PAC: من خلال ملف محلي على الكمبيوتر أو عبر URL (إذا كان الملف مستضافًا على الخادم). لمعظم المهام، يكفي استخدام ملف محلي.
الخطوة 1: أنشئ ملف PAC
افتح أي محرر نصوص (Notepad، Notepad++، VS Code) والصق الكود من القوالب أعلاه. احفظ الملف بامتداد .pac، على سبيل المثال: proxy_rules.pac. المكان الموصى به للتخزين: C:\proxy\proxy_rules.pac (Windows) أو /Users/username/proxy/proxy_rules.pac (macOS).
الخطوة 2: الاتصال في Windows 10/11
- افتح الإعدادات → الشبكة والإنترنت → الوكيل
- في قسم "استخدام نص إعداد"، قم بتحويل المفتاح إلى وضع تشغيل
- في حقل "عنوان النص"، أدخل مسار الملف بالتنسيق:
file:///C:/proxy/proxy_rules.pac - اضغط على حفظ
- أعد تشغيل المتصفح
الخطوة 3: الاتصال في macOS
- افتح تفضيلات النظام → الشبكة
- اختر الاتصال الشبكي النشط (Wi-Fi أو Ethernet) واضغط على متقدم
- انتقل إلى علامة التبويب الوكيل
- ضع علامة بجانب إعداد الوكيل التلقائي
- في حقل URL، أدخل:
file:///Users/username/proxy/proxy_rules.pac - اضغط على موافق → تطبيق
الخطوة 4: الاتصال في Google Chrome (بشكل منفصل عن النظام)
يستخدم Chrome إعدادات الوكيل النظامية، لكن يمكنك تشغيله مع ملف PAC منفصل عبر خيارات سطر الأوامر. هذا مفيد إذا كنت تريد أن يعمل Chrome فقط عبر PAC، بينما لا تعمل التطبيقات الأخرى.
أنشئ اختصارًا لـ Chrome وفي حقل "الكائن" أضف في نهاية السطر:
--proxy-pac-url="file:///C:/proxy/proxy_rules.pac"
الخطوة 5: الاتصال في Firefox
- افتح الإعدادات → الأساسية → إعدادات الشبكة → إعداد
- اختر URL إعداد الوكيل التلقائي
- أدخل المسار:
file:///C:/proxy/proxy_rules.pac - اضغط على موافق
ملف PAC في متصفحات مكافحة الكشف: Dolphin، AdsPower، GoLogin
بالنسبة للمتداولين ومتخصصي SMM الذين يعملون مع متصفحات مكافحة الكشف، يفتح ملف PAC فرصًا إضافية. بدلاً من تعيين وكيل واحد لكل ملف تعريف، يمكنك إعداد توجيه مرن داخل ملف تعريف المتصفح.
Dolphin Anty
في Dolphin Anty، يتم توصيل ملف PAC على مستوى الملف الشخصي. عند إنشاء أو تعديل الملف الشخصي في قسم الوكيل، اختر نوع PAC-script وحدد URL أو مسار الملف. يتيح ذلك لملف تعريف واحد استخدام وكلاء مختلفين لمواقع مختلفة - على سبيل المثال، Facebook عبر وكيل موبايل، وكل شيء آخر مباشرة.
سيناريو عملي: لديك 10 حسابات إعلانات على Facebook. لكل ملف تعريف في Dolphin، تقوم بتوصيل ملف PAC الذي يوجه فقط نطاقات Facebook و Instagram عبر الوكيل. تمر باقي حركة المرور (تحميل الإضافات، التحديثات) مباشرة - مما يوفر بيانات الوكيل بنسبة تصل إلى 70%.
AdsPower
في AdsPower، عند إعداد الملف الشخصي في قسم إعدادات الوكيل، هناك حقل لإدخال URL ملف PAC. حدد عنوان ملف PAC الخاص بك - إذا كان محليًا، قم باستضافته على خادم HTTP محلي بسيط (على سبيل المثال، عبر Python: python -m http.server 8000) وحدد العنوان http://localhost:8000/proxy_rules.pac.
GoLogin
يدعم GoLogin ملفات PAC عبر حقل Proxy URL في إعدادات الملف الشخصي. التركيب مشابه - حدد URL الكامل للملف. كما يتيح GoLogin حفظ قوالب إعدادات الوكيل وتطبيقها بشكل جماعي على عدة ملفات شخصية في وقت واحد، وهو أمر مريح عند العمل مع عدد كبير من الحسابات.
Multilogin و Octo Browser
يدعم كلا المتصفحين تكوين PAC عبر URL. في Multilogin، يتم إعداد ذلك في قسم Profile → Proxy → Custom proxy. في Octo Browser - بنفس الطريقة، في إعدادات الملف الشخصي، اختر نوع الوكيل PAC وحدد الرابط إلى الملف.
🔧 نصيحة لمتصفحات مكافحة الكشف
قم باستضافة ملف PAC على استضافة مجانية (GitHub Pages، Pastebin RAW، Cloudflare Workers) - وبالتالي لن تحتاج إلى خادم محلي، وسيكون الملف متاحًا من أي ملف شخصي ومن أي جهاز. بالإضافة إلى ذلك، يمكنك تحديث القواعد في مكان واحد، وستطبق التغييرات على جميع الملفات الشخصية مرة واحدة.
ما هو نوع الوكيل الذي تختاره لتكوين PAC
يعمل ملف PAC مع أي نوع من الوكلاء، لكن الأنواع المختلفة تناسب مهام مختلفة. إليك جدول مقارن يساعدك في اتخاذ القرار:
| نوع الوكيل | أفضل ما يناسب | البروتوكولات في PAC | السرعة |
|---|---|---|---|
| مقيم | إعلانات Facebook، Instagram، TikTok - الشبكات الاجتماعية ذات الحماية الصارمة ضد الاحتيال | PROXY، SOCKS5 | متوسطة |
| محمول | تربية الحسابات، العمل مع النسخ المحمولة من التطبيقات | PROXY، SOCKS5 | متوسطة |
| مراكز البيانات | جمع بيانات الأسواق، مراقبة الأسعار، مهام SEO | PROXY، SOCKS5 | عالية |
للعمل مع إعلانات Facebook و Instagram عبر تكوين PAC، يختار المتداولون غالبًا وكلاء مقيمين - لديهم عناوين IP حقيقية لمستخدمي المنازل ويثيرون الشكوك لدى خوارزميات المنصات بشكل أقل بكثير.
إذا كنت تدير حسابات على Instagram أو TikTok من أجهزة محمولة أو عبر ملفات تعريف محمولة في متصفحات مكافحة الكشف، فانتبه إلى وكلاء محمولين - يعملون عبر الشبكات المحمولة الحقيقية لمشغلي الشبكات ويقدمون أكثر حركة مرور "نظيفة" لهذه المنصات.
لمهام جمع بيانات Wildberries و Ozon أو Avito، حيث تكون السرعة وعدد الطلبات مهمين، سيكون الخيار الأمثل هو وكلاء مراكز البيانات - فهي أسرع وتسمح بإجراء عدد كبير من الطلبات في وحدة الزمن.
إعداد المصادقة في ملف PAC
إذا كان وكيلك يتطلب تسجيل دخول وكلمة مرور، فلا تحتاج إلى ذكرها في ملف PAC - فهذا غير آمن، حيث يمكن قراءة الملف. تتم معالجة المصادقة بواسطة المتصفح بشكل منفصل: عند الاتصال الأول، سيطلب بيانات الاعتماد ويحفظها. أو استخدم وكلاء بتوثيق عبر IP - حينها لا تحتاج إلى تسجيل دخول/كلمة مرور على الإطلاق.
الأخطاء الشائعة وكيفية إصلاحها
عند إعداد ملف PAC، ترتبط معظم المشكلات بعدة أخطاء نموذجية. دعنا نحلل كل واحدة مع الحل.
الخطأ 1: ملف PAC لا يتم تطبيقه
الأعراض: لقد حددت مسار الملف، لكن حركة المرور لا تزال تمر مباشرة أو عبر الإعدادات القديمة.
الأسباب والحلول:
- مسار الملف غير صحيح. تحقق من التنسيق: يجب أن يكون في Windows
file:///C:/path/file.pac(ثلاثة شرطات بعد file:) - قام المتصفح بتخزين الإعدادات القديمة في الذاكرة المؤقتة. أغلق المتصفح تمامًا وأعد فتحه.
- قد تتداخل سياسة المجموعة في Windows. تحقق من خلال gpedit.msc → تكوين الكمبيوتر → القوالب الإدارية → مكونات Windows → Internet Explorer
الخطأ 2: تمر كل حركة المرور عبر الوكيل، وليس فقط المطلوبة
الأعراض: السرعة انخفضت، وكل الإنترنت بطيء.
السبب: في نهاية الدالة، يوجد return "PROXY ..." بدلاً من return "DIRECT".
الحل: تأكد من أن السطر الأخير من الدالة هو return "DIRECT"; هذه القاعدة الافتراضية لكل ما لم يقع تحت الشروط السابقة.
الخطأ 3: النطاقات الفرعية لا تقع تحت القاعدة
الأعراض: القاعدة لـ facebook.com تعمل، لكن static.facebook.com أو m.facebook.com - لا.
السبب: تتحقق الدالة dnsDomainIs من المطابقة الدقيقة للنطاق وجميع نطاقاته الفرعية، لكن فقط إذا قمت بتحديد النطاق بنقطة في البداية.
الحل: استخدم dnsDomainIs(host, "facebook.com") - ستلتقط هذه الدالة تلقائيًا جميع النطاقات الفرعية. أو أضف أسطرًا منفصلة لكل نطاق فرعي.
الخطأ 4: خطأ نحوي في JavaScript
الأعراض: ملف PAC لا يعمل على الإطلاق، والمتصفح يتجاهله.
الحل: تحقق من الملف باستخدام أداة عبر الإنترنت PAC File Debugger (ابحث في Google) أو ألصق الكود في وحدة تحكم المتصفح (F12 → وحدة التحكم) - ستظهر أخطاء JavaScript على الفور. غالبًا ما تكون المشكلة هي قوس مفقود أو فاصلة منقوطة.
الخطأ 5: ملف PAC لا يعمل مع مواقع HTTPS
الأعراض: تفتح مواقع HTTP عبر الوكيل، لكن HTTPS - لا.
السبب: بالنسبة لـ HTTPS، يقوم المتصفح بإنشاء نفق عبر طريقة CONNECT. بعض الوكلاء HTTP لا يدعمون CONNECT.
الحل: استخدم وكلاء SOCKS5 بدلاً من HTTP - فهي تدعم كلا نوعي الاتصال. في ملف PAC، استبدل PROXY بـ SOCKS5.
قائمة التحقق للتحقق من ملف PAC
- ✅ الوظيفة تسمى بدقة
FindProxyForURL(مع مراعاة الحالة) - ✅ تأخذ الوظيفة معلمين:
urlوhost - ✅ جميع الأقواس المغلقة
- ✅ في نهاية الوظيفة يوجد
return "DIRECT"; - ✅ عنوان الوكيل بتنسيق
IP:PORTبدون مسافات - ✅ تم حفظ الملف بتشفير UTF-8
- ✅ يبدأ مسار الملف في الإعدادات بـ
file:/// - ✅ تم إعادة تشغيل المتصفح بعد التغييرات
الخاتمة والتوصيات
يعد ملف PAC واحدًا من أكثر الأدوات التي يتم التقليل من قيمتها لأولئك الذين يعملون مع الوكلاء بشكل احترافي. فهو يحل عدة مشاكل في وقت واحد: يوفر بيانات الوكيل، ويحافظ على السرعة لبقية الإنترنت، ويسمح بإدارة مرنة للتوجيه دون الحاجة إلى تبديل الإعدادات يدويًا.
بالنسبة للمتداولين، يتيح ملف PAC بالتعاون مع متصفح مكافحة الكشف (Dolphin Anty، AdsPower، GoLogin) إعدادًا بحيث تمر حركة المرور الخاصة بإعلانات Facebook أو TikTok فقط عبر الوكيل - ولا بايت إضافي. لمتخصصي SMM - وكلاء مختلفة لـ Instagram و TikTok و VK ضمن نظام واحد. لبائعي الأسواق - جمع بيانات Wildberries و Ozon بشكل محدد دون تحميل زائد.
أهم شيء يجب تذكره: ملف PAC هو مجرد ملف نصي يحتوي على عدة أسطر من الكود. لا تحتاج إلى الخوف منه. خذ أحد القوالب الجاهزة من هذه المقالة، وأدخل بيانات الوكيل الخاصة بك - وفي 10 دقائق سيكون لديك توجيه مرن لحركة المرور معد.
إذا كنت تخطط للعمل مع إعلانات Facebook أو Instagram أو TikTok عبر تكوين PAC، نوصي باستخدام وكلاء مقيمين - حيث يوفرون أعلى مستوى من الثقة من قبل المنصات وأقل خطر للحظر عند إعداد التوجيه بشكل صحيح عبر ملف PAC.