تعيين DNS المحلي
يدعم Chute تعيين DNS مخصص محلياً. إنه مكافئ لـ /etc/hosts، لكن بميزات أقوى، بما في ذلك أحرف البدل (wildcard)، الأسماء المستعارة (alias)، وتعيين خادم DNS.
[Host]
abc.com = 1.2.3.4
*.dev = 6.7.8.9
foo.com = bar.com
bar.com = server:8.8.8.8
ملاحظة: تُقبل أسطر التعيين الموصوفة هنا أيضاً داخل قسم
[DNS]، إلى جانب خيارات خادم DNS. انظر قسم DNS. والاستثناء هو صيغةssid:الخاصة بـ Shadowrocket (DNS لكل شبكة): فهي لا تُعرف إلا في[Host]، وفي[DNS]تُقرأ كتعيين لاسم لا يظهر أبداً.
يمكن أن يسرد التعيين عدة عناوين، مع المزج بين IPv4 و IPv6: dns.google = 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888. يُجاب عن سؤال A بعناوين IPv4 وعن سؤال AAAA بعناوين IPv6. والقائمة التي تحتوي على أي شيء غير العناوين خطأ في الإعدادات. والاسم المعيَّن لعناوين من عائلة واحدة فقط يتلقى إجابة فارغة (NODATA) عن سؤال العائلة الأخرى، دون سؤال الخوادم العليا. ويمكن أيضاً أن يأخذ الاسم سطرين، أحدهما لعناوين IPv4 والآخر لعناوين IPv6. والتعيين الذي تضيفه إعادة تحميل الإعدادات أو وحدةٌ يسري فوراً. ولا تُخزَّن مؤقتاً إجابة NXDOMAIN من الخادم الأعلى إذا كان الاسم مشمولاً بتعيين أو اسم مستعار في [Host]، لأن التعيين أو الاسم المستعار له الأولوية.
أحرف البدل
يمكنك استخدام البادئة * لتعميم جميع النطاقات الفرعية. يرجى ملاحظة أن Chute يستخدم مطابقة نصية بسيطة. على سبيل المثال، *google.com سيطابق google.com و foo.google.com و bargoogle.com. و *.google.com لن يطابق google.com.
[Host]
*.dev = 6.7.8.9
الاسم المستعار
إنه مكافئ لسجل CNAME.
[Host]
foo.com = bar.com
يُجاب استعلام A أو AAAA للاسم المُعيَّن له اسم مستعار بعناوين الهدف، فلا يحتاج العميل إلى تتبُّع الاسم المستعار بنفسه. وإذا لم يكن لدى الهدف عنوان من عائلة العناوين المطلوبة، تكون الإجابة فارغة بدلاً من سجل من العائلة الأخرى. يحلّ Chute الهدف عند تحميل القاعدة؛ وإن لم يكن قد حُلَّ بعد، تكون الإجابة سجل CNAME ويُحلّ الهدف استعداداً للاستعلام التالي.
تعيين خادم DNS
يمكنك تعيين خادم DNS محدد لنطاق واحد أو أكثر.
[Host]
bar.com = server:8.8.8.8
يقبل server: أيضاً رابط DoH، بحيث يمكن تعيين نقطة نهاية DoH محددة للنطاقات مباشرة.
[Host]
*.example.com = server:https://doh.example/dns-query
يقبل server: قائمة خوادم مفصولة بفواصل. يُحتفظ بكل مدخل صالح للاستخدام ويُستعلَم منها جميعاً في الوقت نفسه، وتُعتمد أول إجابة. يمكن أن يكون المدخل عنوان IP مع منفذ اختياري (8.8.8.8:5353 و [2001:db8::1]:5353) أو system أو syslib (وforce-syslib مثله) أو عنوان DoH. ويمكن لعنوان IP أو عنوان DoH أن ينتهي باللاحقة #proxy؛ أما system و syslib إذا كُتبا معها فيُسقَطان مع تحذير، لأن محلّل النظام لا يمكن إرساله عبر سياسة. ويستعلم مدخل tcp://IP[:port] من ذلك الخادم باستخدام DNS عبر TCP.
[Host]
bar.com = server:8.8.8.8, 8.8.4.4
يمكنك تعيين خادم DNS الخاص بالنظام لنطاق واحد أو أكثر. سيستخدم Chute فقط إعدادات DNS الخاصة بالنظام للاستعلام عن هذه النطاقات.
[Host]
devs = server:system
نظراً لأن Chute لديه تطبيق عميل DNS خاص به، قد تفشل بعض أسماء المضيفين في التحليل. يمكنك استخدام server:syslib للسماح للنظام بمعالجة البحث.
[Host]
Macbook = server:syslib
تعيين خدمة DoH
يمكنك تعيين خدمة DoH محددة لنطاق واحد أو أكثر.
[Host]
bar.com = doh:cloudflare
افتراضياً، يحل النظام استعلامات A و AAAA لأسماء المضيفين ذات اللاحقة .local. أما استعلامات الأنواع الأخرى — PTR و SRV و TXT — فتذهب إلى الخوادم العليا المُعدّة.
تعيين خدمة DoT
يمكنك تعيين خدمة DoT محددة (DNS-over-TLS) لنطاق واحد أو أكثر.
[Host]
bar.com = dot:dns.google
لا يمكن لمدخل dot: أن يحمل اللاحقة #proxy.
تعيين خدمة DoQ
يمكنك تعيين خدمة DoQ محددة (DNS-over-QUIC) لنطاق واحد أو أكثر.
[Host]
bar.com = doq:dns.adguard.com
يمكن أن ينتهي المدخل بـ اللاحقة #proxy، كما في bar.com = doq:dns.adguard.com#proxy=HK، ليمر الاستعلام عبر تلك السياسة. ويُحفظ اسم السياسة كما كُتب تماماً.
تعيين خدمة DoH3
يمكنك تعيين خدمة DoH3 محددة (DNS-over-HTTP/3) لنطاق واحد أو أكثر.
[Host]
bar.com = doh3:https://dns.google/dns-query
ويمكن أن ينتهي، مثل مدخل DoQ، بـ اللاحقة #proxy.
مفاتيح مجموعات القواعد
يمكن أن يكون المفتاح مجموعة قواعد بدلاً من نمط نطاق:
[Host]
RULE-SET:https://example.com/cn-domains.list = server:223.5.5.5
RULE-SET:MyProvider = server:https://doh.pub/dns-query
DOMAIN-SET:https://example.com/ad-hosts.txt = 0.0.0.0
يأخذ RULE-SET:<source> عنوان URL أو اسم مزوّد قواعد، ويأخذ DOMAIN-SET:<source> عنوان URL. لا تشارك إلا قواعد النطاقات في المجموعة، وتُتجاهل قواعد IP والأنواع الأخرى. تُنزَّل المجموعة وتُحدَّث بالطريقة نفسها كما لو استخدمها سطر في [Rule]، وكل نطاق تطابقه يحصل على القيمة الموجودة على اليمين. لا يمكن استخدام المجموعتين المدمجتين SYSTEM و LAN هنا.
سكريبت DNS
[Host]
*.corp.example = script:CorpResolver
يُسلِّم script:<name> عملية البحث عن النطاقات المطابقة إلى السكريبت من النوع type=dns الذي يحمل هذا الاسم — سواء للاستعلامات التي ترسلها التطبيقات أو لعمليات البحث التي يجريها Chute نفسه. إذا لم يُرجع السكريبت أي عنوان، أو لم يوجد سكريبت dns مفعَّل بهذا الاسم، يُحلّ النطاق بالطريقة المعتادة.
DNS لكل شبكة (Shadowrocket)
[Host]
ssid:Home WiFi = server:192.168.1.1
يُقرأ ssid:<network name> = server:<servers> الخاص بـ Shadowrocket على أنه تجاوز DNS في [SSID Setting] لشبكة Wi-Fi تلك: فما دام الجهاز متصلاً بها، تحل هذه الخوادم محل المحلِّلات العادية في المجموعة الرئيسية. يمكن أن يحتوي اسم الشبكة على مسافات. ولا تُحتسب هنا إلا المحلِّلات العادية — عنوان مع منفذ اختياري، أو system أو syslib؛ أما عنوان DoH، الذي يقبله server: في مواضع أخرى من [Host]، فيُسقط مع تنبيه.
ملف hosts الخاص بالنظام
[General]
read-etc-hosts = false
على macOS و Android، يقرأ Chute أيضاً ملف hosts الخاص بالنظام، /etc/hosts، ويضيف مدخلاته إلى هذا الجدول قبل أسطر [Host]، فإذا ظهر اسم في الاثنين كان عنوان ملف hosts هو الغالب. يتحكم read-etc-hosts في [General] بذلك وهو مفعّل افتراضياً؛ اضبطه على false لاستبعاد الملف. أما Chute iOS و tvOS فلا يقرآن ملف hosts أبداً.
الاستخدام المدمج
يمكن استخدام جميع الميزات معاً. على سبيل المثال:
[Host]
*.dev = foo.com
*.bar.com = server:system
Macbook = server:syslib
*.foo.com = doh:cloudflare
*.local = dot:dns.google
api.internal = doq:dns.adguard.com
هذه الصفحة ترجمة للنسخة الإنجليزية. في حال وجود اختلاف، يُعتمد على النسخة الإنجليزية.
ملاحظة: التطبيق لا يدعم اللغة العربية حاليًا.