القواعد
يستطيع Chute توجيه الطلبات إلى خادم بروكسي آخر أو الاتصال بالمضيف مباشرة، وفقاً لقواعد مخصصة.
الأولوية
تتم مطابقة القواعد من الأولى إلى الأخيرة، بالترتيب الذي تظهر به في ملف الإعدادات. بمعنى آخر، القواعد في أعلى القائمة لها أولوية أعلى من القواعد التي تليها.
التركيب
تتكون كل قاعدة من 3 أجزاء: نوع القاعدة، مطابق حركة المرور (باستثناء قاعدة FINAL)، وسياسة بروكسي: TYPE, VALUE, POLICY. مثال: DOMAIN-SUFFIX,apple.com, DIRECT IP-CIDR, 192.168.0.0/16,ProxyA
يجب أن يكون اسم سياسة البروكسي ضمن أحد أسماء السياسات، بما في ذلك بروكسي، مجموعة سياسات، DIRECT، أو REJECT. يجب أن تنتهي القواعد بقاعدة FINAL لتعريف السلوك الافتراضي.
مثال:
[Rule]
DOMAIN-SUFFIX,company.com,ProxyA
DOMAIN-KEYWORD,google,DIRECT
GEOIP,US,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
FINAL,ProxyB
أنواع القواعد
قواعد مبنية على النطاق
| النوع | الصيغة | يطابق |
|---|---|---|
| DOMAIN | DOMAIN,www.apple.com,Proxy |
تطابق تام لاسم النطاق |
| DOMAIN-SUFFIX | DOMAIN-SUFFIX,apple.com,Proxy |
تطابق لاحقة اسم النطاق |
| DOMAIN-KEYWORD | DOMAIN-KEYWORD,google,Proxy |
احتواء النطاق على كلمة مفتاحية |
| DOMAIN-WILDCARD | DOMAIN-WILDCARD,*.apple.com,Proxy |
تطابق نمط العلامة النجمية |
| DOMAIN-REGEX | DOMAIN-REGEX,^mail\..+\.com$,Proxy |
تطابق تعبير نمطي للنطاق |
| DOMAIN-SET | DOMAIN-SET,my-set,DIRECT |
مجموعة نطاقات مسماة من ملف/رابط |
قواعد مبنية على IP
| النوع | الصيغة | يطابق |
|---|---|---|
| IP-CIDR | IP-CIDR,192.168.0.0/16,DIRECT |
عنوان IP في نطاق CIDR |
| IP-CIDR6 | IP-CIDR6,2001:db8::/32,DIRECT |
عنوان IPv6 في نطاق CIDR |
| GEOIP | GEOIP,US,DIRECT |
رمز الدولة من قاعدة بيانات GeoIP |
| IP-ASN | IP-ASN,13335,DIRECT |
عنوان IP ينتمي إلى ASN |
قواعد مستوى HTTP
| النوع | الصيغة | يطابق |
|---|---|---|
| USER-AGENT | USER-AGENT,Instagram*,DIRECT |
ترويسة User-Agent |
| URL-REGEX | URL-REGEX,^http://google\.com,DIRECT |
تطابق الرابط مع تعبير نمطي |
| PROTOCOL | PROTOCOL,HTTPS,Proxy |
البروتوكول المكتشف (HTTP/HTTPS/TLS/SSH/إلخ) |
قواعد العملية (Mac فقط)
| النوع | الصيغة | يطابق |
|---|---|---|
| PROCESS-NAME | PROCESS-NAME,Telegram,Proxy |
اسم العملية (مطابقة العلامة النجمية) |
| PROCESS-PATH | PROCESS-PATH,/Applications/Safari.app,Proxy |
مسار العملية الكامل |
| PROCESS-NAME-REGEX | PROCESS-NAME-REGEX,^Safari$,DIRECT |
اسم العملية (مطابقة تعبير نمطي) |
قواعد المنفذ والمصدر
| النوع | الصيغة | يطابق |
|---|---|---|
| DEST-PORT | DEST-PORT,80,DIRECT |
منفذ الوجهة |
| SRC-IP | SRC-IP,192.168.20.100,DIRECT |
عنوان IP المصدر |
| SRC-PORT | SRC-PORT,52345,DIRECT |
منفذ المصدر |
| IN-PORT | IN-PORT,6152,DIRECT |
منفذ البروكسي الوارد على Chute |
قواعد المطابقة المتقدمة
| النوع | الصيغة | يطابق |
|---|---|---|
| SUBNET | SUBNET,TYPE:WIFI,Proxy |
سمات الشبكة الفرعية (TYPE, BSSID, SSID, ROUTER) |
| HOSTNAME-TYPE | HOSTNAME-TYPE,AAAA,Proxy |
نوع سجل DNS (A/AAAA/إلخ) |
| IN-TYPE | IN-TYPE,SOCKS5,Proxy |
نوع الاتصال الوارد (HTTP/SOCKS5/TUN) |
| IN-USER | IN-USER,user1,Proxy |
اسم مستخدم المصادقة الواردة |
| IN-NAME | IN-NAME,my-proxy,Proxy |
اسم خادم البروكسي الوارد |
قواعد الدمج المنطقي
| النوع | الصيغة | يطابق |
|---|---|---|
| AND | AND,((DOMAIN,example.com),(DEST-PORT,443)),Proxy |
جميع القواعد الفرعية متطابقة |
| OR | OR,((DOMAIN,example.com),(DOMAIN,test.com)),Proxy |
أي قاعدة فرعية متطابقة |
| NOT | NOT,((DOMAIN,example.com)),Proxy |
القاعدة الفرعية غير متطابقة |
قواعد خاصة
| النوع | الصيغة | يطابق |
|---|---|---|
| RULE-SET | RULE-SET,SYSTEM,DIRECT |
حزمة قواعد من ملف أو رابط أو مجموعات مدمجة |
| SCRIPT | SCRIPT,MyRuleScript,PROXY |
مطابقة قواعد مخصصة عبر JavaScript |
| FINAL | FINAL,ProxyB |
الافتراضي عند عدم تطابق أي قاعدة أخرى (يجب أن يكون الأخير) |
الخيارات
no-resolve
عند مواجهة قاعدة GEOIP أو IP-CIDR أو IP-ASN، سيرسل Chute استعلام DNS للتحقق مما إذا كان اسم مضيف الطلب نطاقاً. يمكنك اختيار خيار no-resolve لتخطي هذه القاعدة للطلب الذي يحتوي على نطاق.
GEOIP,US,DIRECT,no-resolve
IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
ملاحظة: إذا تعذر حل بعض النطاقات بواسطة خادم DNS المحلي، يرجى التأكد من عدم وجود قاعدة مبنية على IP قبل القاعدة التي تطابق ذلك النطاق. وإلا سيفشل اختبار القاعدة بسبب خطأ DNS. يمكنك استخدام
no-resolveلحل هذه المشكلة أيضاً.
force-remote-dns
فرض تحليل DNS عبر خادم البروكسي البعيد بدلاً من DNS المحلي.
DOMAIN-SUFFIX,google.com,Proxy,force-remote-dns
extended-matching
توسيع مطابقة القاعدة المبنية على النطاق لتفحص أيضاً ترويسة Host في HTTP بالإضافة إلى اسم مضيف الاتصال. هذا مفيد عندما يختلف SNI أو هدف CONNECT عن ترويسة Host.
DOMAIN-SUFFIX,example.com,Proxy,extended-matching
requires-resolve
بالنسبة لقواعد SCRIPT، يضمن اكتمال تحليل DNS قبل تقييم السكريبت. هذا يضمن توفر $request.dnsResult في السكريبت.
SCRIPT,MyRuleScript,PROXY,requires-resolve
مجموعة النطاقات
يدعم Chute تعريف مجموعات نطاقات مسماة من ملفات أو روابط خارجية، قابلة للاستخدام مع نوع القاعدة DOMAIN-SET. كل سطر في ملف مجموعة النطاقات يحتوي على تعريف قاعدة بدون السياسة.