← العودة إلى المدونة

بروكسي فقط للمواقع الضرورية: توجيه حسب النطاقات في sing-box و mihomo

عبر بروكسي مدفوع، ليس من الضروري توجيه كل حركة المرور. نقوم بتحليل التوجيه حسب النطاقات في sing-box وmihomo (Clash Meta): تكوينات جاهزة للإصدارات الحالية، قواعد للمواقع والبرامج، عدة دول في نفس الوقت والفخاخ - QUIC، تسريبات DNS، صراع مع مضادات الكشف وتدوير في منتصف الجلسة.

📅٢ جمادى الأولى ١٤٤٨ هـ
بروكسي فقط للمواقع الضرورية: توجيه حسب النطاقات في sing-box و mihomo

وضع نموذجي: يجب فتح المتجر على أمازون الألمانية من عنوان IP ألماني، ومكتب المورد من الولايات المتحدة - من عنوان أمريكي، بينما يجب أن تذهب يوتيوب، ووسائل التواصل الاجتماعي، وتحديثات النظام مباشرة. من غير المريح والمكلف استخدام بروكسي "لكل النظام": عند الدفع مقابل غيغابايت عبر البروكسي، يتم استهلاك كل حركة المرور الخلفية. إيقاف التشغيل والتشغيل يدويًا - ستنسى في أسوأ اللحظات. الحل هو توجيه حسب النطاقات: يقرر العميل المحلي بنفسه أي موقع يمر عبر أي بروكسي، وأي موقع يذهب مباشرة. أدناه - تكوينات العمل لأكثر محركات البحث شعبية في عام 2026، sing-box و mihomo (المعروف سابقًا باسم Clash Meta)، وتحليل الفخاخ التي عادة ما تكسر المخطط.

ما هو أفضل من البروكسي في المتصفح وملف PAC

يعمل البروكسي في إعدادات المتصفح أو الإضافة فقط لهذا المتصفح. ملف PAC يمكنه اختيار البروكسي حسب النطاق، لكنه أيضًا يعيش داخل المتصفح وإعدادات النظام - عميل سطح المكتب للسوق، تيليجرام، سكربت على بايثون أو أداة سطر الأوامر ستتجاهله ببساطة.

تعمل sing-box و mihomo على مستوى أدنى: ترفع واجهة شبكة افتراضية (وضع TUN) وتسمح بمرور حركة المرور لكل البرامج. بعد ذلك، تمر كل اتصال عبر قائمة القواعد: النطاق، شبكة IP الفرعية، اسم العملية، المنفذ. إذا تطابق القاعدة - يذهب الاتصال إلى الخروج المحدد (بروكسي للدولة المطلوبة أو اتصال مباشر).

ما الذي يقدمه ذلك في الممارسة العملية:

  • توفير في حركة المرور. تمر المواقع العاملة فقط عبر البروكسي المدفوع، بينما الفيديوهات، التحديثات، والنسخ الاحتياطية السحابية - مباشرة.
  • عدة دول في وقت واحد. amazon.de - عبر الخروج الألماني، walmart.com - عبر الأمريكي، دون الحاجة للتبديل.
  • قواعد حسب البرامج. يمكن إرسال عملية معينة بالكامل إلى البروكسي (مثل عميل سطح المكتب أو السكربت)، دون المساس بالباقي.
  • أخطاء بشرية أقل. لا تحتاج إلى تذكر ما إذا كان البروكسي مفعلًا، - الموقع دائمًا يفتح من "IP الصحيح".

ما الذي ستحتاجه

  • بروكسي يدعم SOCKS5 أو HTTP ومصادقة باستخدام اسم المستخدم وكلمة المرور. كلا المحركين يمكنهما تمرير اسم المستخدم وكلمة المرور بأنفسهما، ولا حاجة لبوابة محلية.
  • عميل: لـ sing-box - التطبيقات الرسمية لنظام Android وiOS وmacOS أو النواة لنظام Windows/Linux؛ لـ mihomo - واجهات رسومية مثل Clash Verge Rev أو FlClash.
  • قائمة بالنطاقات التي يجب أن تمر عبر البروكسي. من الأفضل تجميعها مسبقًا - حول ذلك أدناه.

الخيار 1: sing-box (الإصدارات 1.12 وما بعدها)

ملاحظة مهمة حول الإصدارات. العديد من التكوينات من الإنترنت مكتوبة لـ sing-box القديم ولا تعمل على الإصدارات الحالية. وفقًا للقائمة الرسمية للوظائف القديمة: تم حذف geosite و geoip في 1.12.0 (بدلاً منها - rule-set)، تم استبدال حقل outbound داخل القواعد من 1.11 بالإجراءات ("action": "route")، تم حذف التنسيقات القديمة لخوادم DNS في 1.14.0، والمخارج الخاصة block و dns - في 1.13.0. الفرع المستقر الحالي عند كتابة هذه السطور هو 1.14.

أدنى تكوين عملي: بروكسي سكني ألماني لعدد من النطاقات، وكل شيء آخر مباشرة.

{
  "log": { "level": "info" },
  "dns": {
    "servers": [ { "type": "local", "tag": "local" } ]
  },
  "inbounds": [
    {
      "type": "tun",
      "tag": "tun-in",
      "address": [ "172.18.0.1/30" ],
      "auto_route": true,
      "strict_route": true
    }
  ],
  "outbounds": [
    {
      "type": "socks",
      "tag": "resi-de",
      "server": "ХОСТ_ИЗ_КАБИНЕТА",
      "server_port": 1080,
      "username": "ЛОГИН",
      "password": "ПАРОЛЬ"
    },
    { "type": "direct", "tag": "direct" }
  ],
  "route": {
    "auto_detect_interface": true,
    "default_domain_resolver": "local",
    "rules": [
      { "action": "sniff" },
      { "protocol": "dns", "action": "hijack-dns" },
      {
        "network": "udp",
        "port": 443,
        "domain_suffix": [ "amazon.de", "otto.de" ],
        "action": "reject"
      },
      {
        "domain_suffix": [ "amazon.de", "otto.de", "ipinfo.io" ],
        "action": "route",
        "outbound": "resi-de"
      }
    ],
    "final": "direct"
  }
}

قم بإدخال المضيف، المنفذ، اسم المستخدم وكلمة المرور من مكتب المزود. المنفذ 1080 هنا هو مجرد مثال.

ما تفعله كل جزء

  1. مدخل TUN (auto_route) يمرر حركة المرور من جميع الأنظمة إلى sing-box. strict_route على Windows يضيف قواعد جدار الحماية ضد تسرب DNS (تحذر الوثائق من أن هذا قد يكسر بعض البرامج، مثل VirtualBox).
  2. "action": "sniff" - السطر الرئيسي. تأتي الاتصالات عبر TUN إلى عناوين IP، وليس إلى النطاقات. يقوم التنصت باستخراج اسم الموقع من مصافحة TLS (SNI) أو رأس HTTP، وفقط بعد ذلك تبدأ القواعد domain_suffix في العمل. بدون هذا السطر، لا تعمل قواعد النطاق بصمت - سبب شائع لعدم تطبيق "التكوين".
  3. hijack-dns تعترض طلبات DNS للنظام وتعيدها إلى وحدة DNS الخاصة بـ sing-box.
  4. قاعدة مع reject لـ UDP 443 تعطل QUIC (HTTP/3) للنطاقات التي يتم تمريرها عبر البروكسي. سيعود المتصفح إلى HTTPS العادي فوق TCP، وسيذهب عبر البروكسي. لماذا - في قسم الفخاخ.
  5. domain_suffix تلتقط النطاق وجميع نطاقاته الفرعية: amazon.de تغطي كل من www.amazon.de و sellercentral.amazon.de.
  6. auto_detect_interface يربط الاتصالات الصادرة لـ sing-box بمحول الشبكة الفيزيائي. بدونه، ستعود حركة المرور إلى خادم البروكسي مرة أخرى إلى TUN، مما يؤدي إلى حلقة توجيه.
  7. final: direct - كل ما لم يتطابق مع أي قاعدة يذهب مباشرة.

عدة دول وقاعدة حسب البرنامج

يتم إضافة الخروج الثاني ككائن آخر socks مع علامته الخاصة (مثل resi-us) وقاعدة منفصلة. يمكن إرسال البرنامج بالكامل إلى البروكسي بواسطة قاعدة مع حقل process_name (يعمل على Windows وmacOS وLinux):

{
  "process_name": [ "python.exe" ],
  "action": "route",
  "outbound": "resi-us"
}

تتم مراجعة القواعد من الأعلى إلى الأسفل حتى يتم العثور على أول تطابق، لذا ضع القواعد الخاصة أعلى القواعد العامة.

الخيار 2: mihomo (Clash Meta)

mihomo مريح لأنه يحتوي على واجهات رسومية ناضجة، ويتم كتابة التكوين بلغة YAML، والتي يسهل قراءتها. نفس السيناريو:

tun:
  enable: true
  stack: gvisor
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://1.1.1.1/dns-query

proxies:
  - name: resi-de
    type: socks5
    server: ХОСТ_ИЗ_КАБИНЕТА
    port: 1080
    username: ЛОГИН
    password: ПАРОЛЬ

rule-providers:
  work-de:
    type: inline
    behavior: classical
    payload:
      - DOMAIN-SUFFIX,amazon.de
      - DOMAIN-SUFFIX,otto.de
      - DOMAIN-SUFFIX,ipinfo.io

rules:
  - RULE-SET,work-de,resi-de
  - MATCH,DIRECT

الاختلافات الرئيسية عن sing-box:

  • وضع fake-ip يحل مشكلة "الاتصال جاء إلى IP، وليس إلى نطاق" بطريقة أخرى: mihomo يجيب على طلبات DNS بعنوان وهمي، ويتذكر أي نطاق يتوافق معه، ويطبق القواعد بناءً عليه. يعرف الخادم الحقيقي للموقع العنوان الفعلي على جانبه.
  • مجموعة القواعد (rule-providers) من السهل الاحتفاظ بها كقائمة منفصلة. النوع inline يحتفظ بالنطاقات مباشرة في التكوين، بينما النوع http يسحب القائمة من الرابط ويحدثها على فترات، مثل القائمة العامة للفريق في المستودع.
  • MATCH - مكافئ لـ final: كل شيء آخر يذهب مباشرة.
  • للقواعد حسب البرامج، يوجد PROCESS-NAME، على Android يقبل اسم حزمة التطبيق.

كيفية تجميع قائمة النطاقات وعدم تفويت الضروري

الموقع ليس نطاقًا واحدًا. يقوم السوق بتحميل الصور من CDN، والسكريبتات - من نطاق منفصل، وقد تعيش المصادقة على نطاق ثالث. إذا كان النطاق الرئيسي يمر عبر IP ألماني، بينما نطاق الدخول - من IP الحقيقي الخاص بك، فإن مكافحة الاحتيال ترى عنوانين مختلفين في جلسة واحدة.

  1. افتح الموقع باستخدام أدوات المطورين (F12 → علامة التبويب الشبكة)، ومر عبر السيناريو النموذجي: تسجيل الدخول، البحث، بطاقة المنتج، المكتب.
  2. اكتب جميع النطاقات من عمود النطاق. يمكنك عدم إضافة العدادات الخارجية والإعلانات، ولكن يجب إضافة نطاقات الخدمة نفسها (بما في ذلك CDN وخادم المصادقة) - بالتأكيد.
  3. أضفها إلى القاعدة وكرر السيناريو. في سجل sing-box (مستوى info) أو في علامة تبويب الاتصالات لواجهة mihomo، يمكنك رؤية أي قاعدة تم تطبيقها على كل اتصال.
  4. احتفظ في القائمة بنطاق "مراقبة" مثل ipinfo.io: يظهر IP البروكسي، بينما الخدمة المجاورة للتحقق من IP، التي لم تدخل القائمة، تظهر IP الحقيقي الخاص بك. بهذه الطريقة، يمكنك رؤية أن التوجيه يعمل في ثانية.

الفخاخ التي تكسر المخطط

1. QUIC يتجاوز البروكسي

يتردد Chrome والمتصفحات الأخرى في زيارة المواقع الكبيرة عبر HTTP/3، أي عبر UDP. العديد من مزودي البروكسي لا يدعمون UDP عبر SOCKS5 أو يدعمونه بشكل محدود. في أسوأ الحالات، يذهب الاتصال إلى مكان آخر، وفي أفضل الحالات - يتباطأ الموقع حتى يعود المتصفح إلى TCP. لذلك، في تكوين sing-box أعلاه، يتم رفض UDP على المنفذ 443 للنطاقات العاملة بوضوح. في mihomo، من الأسهل تحقيق تأثير مماثل عن طريق تعطيل QUIC في المتصفح (العلم chrome://flags/#enable-quic).

2. تسرب DNS إلى المزود

إذا تم حل النطاق العامل محليًا عبر DNS لمزود الإنترنت الخاص بك، فلن يرى الموقع ذلك: سيظل الاتصال يأتي من IP البروكسي. لكن المزود وأي شخص يرى DNS الخاص بك سيعرف أي المواقع التي تفتحها. يقلل وضع fake-ip في mihomo ونقل النطاق إلى خادم البروكسي بعد التنصت في sing-box من هذه المشكلة. لمزيد من المعلومات حول الفحوصات وطرق الحماية - في تحليل طرق الحماية من تسرب DNS.

3. تعارض مع VPN آخر أو مكافحة الكشف

وجود واجهتين TUN في نفس الوقت - فوضى مضمونة في التوجيهات. إذا كان لدى ملف التعريف في المتصفح المضاد للكشف بروكسي خاص به، فمن الأفضل إخراج حركة المرور الخاصة به من TUN: باستخدام قاعدة حسب اسم العملية، أرسل المتصفح إلى direct، وبهذه الطريقة، يمر كل ملف تعريف عبر بروكسيه الخاص، كما هو مخطط له.

4. التوجيه النظامي لا يحل محل مكافحة الكشف

ستخرج جميع البرامج على الكمبيوتر إلى الشبكة من عنوان IP واحد إلى النطاق. بالنسبة لمتجر واحد، هذا طبيعي. بالنسبة لـ 10 حسابات على منصة واحدة - لا: ترى المنصة بصمة متصفح متطابقة وعنوان واحد. للتعددية، يعد توجيه النطاقات أداة مساعدة، وليس بديلاً عن مجموعة "ملف تعريف منفصل + بروكسي منفصل".

5. تبديل IP في منتصف الجلسة

إذا تم إعداد البروكسي لتغيير IP مع كل طلب، سيرى الموقع مع المصادقة عنوانًا جديدًا مع كل تحميل لصورة. بالنسبة للمكاتب والمتاجر ووسائل التواصل الاجتماعي، احصل على اسم المستخدم مع جلسة ثابتة (IP ثابت أثناء العمل) أو تبديل حسب المؤقت بفواصل زمنية تصل إلى عشرات الدقائق.

6. بروكسي بدون دعم البروتوكول المطلوب

إذا كان المزود يقدم فقط بروكسي HTTP، استخدم في sing-box مخرجًا من النوع http، وفي mihomo - type: http. كلا المحركين يدعمان اسم المستخدم وكلمة المرور أيضًا لـ HTTP. إذا لم يكن البرنامج نفسه قادرًا على العمل مع البروكسي مع المصادقة، ولا ترغب في رفع TUN، يمكنك استخدام بوابة محلية على gost، 3proxy أو Squid.

أي بروكسي يجب وضعه في القاعدة

  • الأسواق، وسائل التواصل الاجتماعي، مكاتب البائع، مكاتب الإعلانات - بروكسي سكني من الدولة المطلوبة مع جلسة ثابتة. عنوان مزود الخدمة المنزلية يثير أقل عدد من الأسئلة لدى مكافحة الاحتيال.
  • المنصات ذات الفحص الأكثر صرامة (التطبيقات المحمولة، TikTok، Instagram) - بروكسي محمول: يخرج العديد من المشتركين الحقيقيين إلى الشبكة من عنوان IP واحد لمزود الخدمة.
  • API، الوثائق، مستودعات الحزم، الخدمات بدون حماية ضد الروبوتات - بروكسي مراكز البيانات: هي أرخص وأسرع، ولتلك المهام لا تحتاج إلى IP "منزلي".

من الملائم إنشاء عدة مخارج من أنواع مختلفة في التكوين وتوزيع النطاقات عليها، بدلاً من دفع كل شيء عبر الأغلى.

النتيجة

توجيه النطاقات يحول البروكسي من "مفتاح" إلى أداة دقيقة: تفتح المواقع المطلوبة دائمًا من IP المطلوب، ولا تستهلك حركة المرور المتبقية الغيغابايت المدفوعة. يكفي 30 سطرًا من التكوين للبدء. الأهم هو عدم نسيان التنصت (أو fake-ip)، وتعطيل QUIC للنطاقات التي يتم تمريرها عبر البروكسي، وتجميع قائمة كاملة من نطاقات الخدمة، واستخدام التركيب الصحيح: لن تعمل التكوينات لـ sing-box حتى 1.12 على الإصدارات الحديثة.