خيارات متنوعة
[General]
ipv6 = true
loglevel = notify
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
tun-included-routes = 192.168.1.12/32
خيارات شائعة
تفعيل دعم IPv6 الكامل (الافتراضي: true)
ipv6 = true
loglevel (الافتراضي: warning)
loglevel = notify
واحد من none, fatal, warning, notify, info أو verbose. لا ينصح بتفعيل verbose في الاستخدام اليومي لأن هذا سيبطئ الأداء بشكل كبير.
skip-proxy
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local
في نسخة iOS، يفرض هذا الخيار معالجة الاتصالات إلى نطاقات النطاق/IP هذه بواسطة Chute TUN، بدلاً من بروكسي Chute. في نسخة macOS، ستطبق هذه الإعدادات على النظام عند تفعيل "Set as System Proxy". يستخدم هذا الخيار لإصلاح مشاكل التوافق مع بعض التطبيقات.
- لتحديد نطاق واحد، أدخل اسم النطاق - على سبيل المثال، apple.com.
- لتحديد جميع المواقع على نطاق، استخدم نجمة قبل اسم النطاق - على سبيل المثال، *apple.com.
- لتحديد جزء محدد من نطاق، حدد كل جزء - على سبيل المثال، store.apple.com.
- لتحديد مضيفين أو شبكات بعناوين IP، أدخل عنوان IP محدد مثل 192.168.2.11 أو نطاق عناوين، مثل 192.168.2.* أو 192.168.2.0/24.
ملاحظة: إذا أدخلت عنوان IP أو نطاق عناوين، ستتمكن فقط من تجاوز البروكسي عند الاتصال بذلك المضيف باستخدام ذلك العنوان، وليس عند الاتصال بالمضيف باسم نطاق يُحلَّل إلى ذلك العنوان.
استماع خادم البروكسي
interface = 127.0.0.1
port = 8118
socks-interface = 127.0.0.1
socks-port = 8119
يتحكم interface / port في عنوان ومنفذ استماع خادم بروكسي HTTP (الافتراضي 127.0.0.1:8118). ويتحكم socks-interface / socks-port في خادم بروكسي SOCKS5 (الافتراضي 127.0.0.1:8119).
أسماء بديلة للتوافق: يُقبل
doh-serverكاسم بديل لـdoh؛ كما يُربطhttp-listen/socks5-listen(مثل0.0.0.0:6152أو[::]:6153أو رقم منفذ مجرد) بإعدادات الواجهة/المنفذ أعلاه. كما أن مضيف استماع شامل (0.0.0.0أو::أو*) يعيّن أيضاًallow-wifi-access = true.
مصادقة البروكسي الوارد
http-auth = username:password
يتطلب من العملاء المصادقة قبل استخدام خوادم بروكسي HTTP و SOCKS5 الخاصة بـ Chute. يمكن تكرار السطر للسماح ببيانات اعتماد متعددة.
تجاوز طلبات النظام
bypass-system = true
عند التفعيل، تتجاوز الطلبات المرسلة بواسطة عمليات النظام معالجة Chute.
الافتراضي:
true.
Real IP دائماً
always-real-ip = *.example.com, tracker.example.org
عندما يقدم Chute عناوين IP وهمية لاستعلامات DNS المختطفة (انظر hijack-dns)، تتم الإجابة دائماً على أسماء المضيفين المطابقة لهذه القائمة المفصولة بفواصل بعناوين IP الحقيقية المحللة بدلاً من ذلك. العلامات النجمية (wildcards) مدعومة.
مقاطعة الاتصالات الحالية
interrupt-exist-connections = true
عند التفعيل، سيؤدي تغيير السياسة المختارة في أي مجموعة سياسات (عبر URL Test، Fallback، Load Balance، SSID، أو الاختيار اليدوي) إلى إنهاء الاتصالات الحالية التي كانت تستخدم السياسة القديمة بشكل آمن. هذا يضمن استخدام الاتصالات للبروكسي المختار حديثاً فوراً بدلاً من البقاء على القديم.
يتم إغلاق كل اتصال متأثر بشكل آمن مع مهلة 3 ثوانٍ قبل الإغلاق القسري.
الافتراضي:
false. هذا إعداد عام — يؤثر على جميع مجموعات السياسات.
Network Framework (macOS / tvOS)
network-framework = true
تفعيل Apple Network.framework للاتصالات الصادرة. يمكن أن يوفر استخدام Network.framework أداء أفضل وتكاملاً حديثاً مع مكدس TLS على المنصات المدعومة.
الافتراضي:
trueعلى macOS،falseعلى iOS و tvOS.
استبعاد أسماء المضيفين البسيطة
exclude-simple-hostnames = true
عند التفعيل، تتجاوز الطلبات إلى أسماء المضيفين البسيطة (أسماء ذات تسمية واحدة بدون نقطة، مثال localhost) قواعد البروكسي وتحل محلياً. هذا يساعد في تجنب استعلامات DNS غير الضرورية لأسماء الشبكة المحلية.
على Chute Mac، تُفعّل عملية ترحيل تُنفَّذ مرة واحدة هذا الخيار افتراضياً عند التشغيل الأول؛ ويُحترم إيقافه صراحةً من قبل المستخدم.
الافتراضي:
false.
تعطيل سجل قاعدة البيانات
disable-db-record = true
عند التفعيل، يتوقف Chute عن كتابة سجلات حركة المرور إلى قاعدة البيانات المحلية. هذا يمكن أن يحسن الأداء ويقلل استخدام التخزين، لكن سجل حركة المرور لن يكون متاحاً في Chute Dashboard.
الافتراضي:
false.
عرض السرعة في شريط القوائم (Mac فقط)
menu-bar-show-speed = true
عند التفعيل، يعرض Chute Mac سرعة الرفع والتنزيل الحالية في شريط القوائم.
الافتراضي:
false.
اختطاف خوادم DNS الأخرى
hijack-dns = 8.8.8.8:53
افتراضياً، يرجع Chute فقط عناوين IP وهمية لاستعلامات DNS المرسلة إلى عنوان DNS الخاص بـ Chute (198.18.0.2). الاستعلامات المرسلة إلى DNS القياسي سيتم توجيهها ببساطة.
بعض الأجهزة أو البرامج تستخدم دائماً خادم DNS مبرمج بشكل ثابت. (على سبيل المثال، Google Speakers تستخدم دائماً 8.8.8.8). يمكنك استخدام هذا الخيار لاختطاف الاستعلام للحصول على عنوان وهمي.
يمكنك استخدام hijack-dns = *:53 لاختطاف جميع استعلامات DNS.
المسارات المستبعدة
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
يستطيع Chute VIF معالجة بروتوكولات TCP و UDP فقط. استخدم هذا الخيار لتجاوز نطاقات IP محددة للسماح لجميع حركات المرور بالمرور.
ملاحظة: هذا الخيار يعمل فقط لنوع Enhanced Mode VIF (utun) — ليس له تأثير عند استخدام نوع PacketTunnel VPN. الطلبات التي يعالجها خادم بروكسي Chute لن تتأثر. ادمج 'skip-proxy' و 'tun-excluded-routes' للتأكد من أن حركة HTTP معينة تتجاوز Chute.
قد يتسبب هذا الخيار في خطأ نظام ENOMEM (Cannot allocate memory). يبدو أنه خطأ في نظام iOS. يرجى عدم استخدام هذا الخيار إذا أمكن.
المسارات المضمنة
tun-included-routes = 192.168.1.12/32
افتراضياً، ستعلن واجهة Chute VIF عن نفسها كمسار افتراضي. لكن نظراً لأن واجهة Wi-Fi لديها مسار أصغر، قد لا تمر بعض حركات المرور عبر واجهة Chute VIF. استخدم هذا الخيار لإضافة مسار أصغر.
ملاحظة: هذا الخيار يعمل فقط لنوع Enhanced Mode VIF (utun) — ليس له تأثير عند استخدام نوع PacketTunnel VPN.
استكشاف البروتوكول
sniffing-enabled = true
sniffing-timeout = 100
يستطيع Chute اكتشاف البروتوكول الفعلي للاتصال عن طريق فحص البايتات الأولية. هذا يمكن قواعد مثل PROTOCOL,TLS,Proxy من العمل بشكل صحيح حتى للاتصالات الواردة غير HTTP.
sniffing-enabled (الافتراضي: false)
sniffing-enabled = true
تفعيل اكتشاف البروتوكول لاتصالات TCP.
sniffing-timeout (الافتراضي: 100ms)
sniffing-timeout = 200
الحد الأقصى للوقت بالمللي ثانية لانتظار البيانات الأولية لتحديد البروتوكول. قم بزيادة هذه القيمة إذا فشل اكتشاف البروتوكول على الاتصالات البطيئة.
حظر QUIC
block-quic = auto
يتحكم هذا الخيار في ما إذا كان Chute سيرفض حركة مرور QUIC المكتشفة، بما في ذلك HTTP/3. يعمل QUIC عبر UDP ولا يمكن فك تشفيره بواسطة HTTP MitM في Chute. قد يدفع رفض QUIC العملاء المتوافقين إلى إعادة المحاولة عبر TCP، مما يتيح معالجة البروكسي المعتمدة على TCP وفك تشفير HTTPS عند تفعيله.
| القيمة | السلوك |
|---|---|
off |
عدم تطبيق حظر عام على QUIC (الافتراضي). تتبع حركة QUIC المكتشفة قواعد التوجيه العادية. |
on |
رفض كل تدفق QUIC مكتشف، بما في ذلك حركة المرور الموجهة إلى DIRECT. |
auto |
رفض QUIC المكتشف فقط عندما تكون سياسة الخروج النهائية بروكسي. يُسمح بحركة المرور الموجهة إلى DIRECT، وتظل حركة المرور الموجهة إلى REJECT مرفوضة وفقًا لتلك القاعدة. |
بالنسبة إلى حركة المرور الداخلة عبر TUN، يرد Chute على تدفق QUIC المرفوض برسالة ICMP/ICMPv6 Port Unreachable، مما يسمح للعملاء المتوافقين بالعودة إلى TCP دون انتظار انتهاء مهلة QUIC.
يتم اكتشاف QUIC الخاص بـ
block-quicتلقائيًا ولا يتطلبsniffing-enabled؛ إذ يتحكمsniffing-enabledفي اكتشاف بروتوكولات TCP. استخدم قاعدةPROTOCOL,QUIC,...عند الحاجة إلى معالجة تدفقات QUIC منفردة بواسطة القواعد.
تجاوز TUN
bypass-tun = 192.168.0.0/16, 10.0.0.0/8
مشابه لـ skip-proxy، لكنه يعمل على مستوى توجيه TUN/VIF. الاتصالات إلى نطاقات IP هذه ستتجاوز واجهة TUN بالكامل وتذهب عبر مكدس شبكة النظام مباشرة.
ملاحظة: هذا الخيار يعمل فقط لنوع Enhanced Mode VIF (utun). ليس له تأثير عند استخدام نوع PacketTunnel VPN.
عرض صفحة خطأ للرفض
show-error-page-for-reject = true
عند التفعيل، يرجع Chute صفحة خطأ سهلة الاستخدام للطلبات المرفوضة بدلاً من إسقاط الاتصال ببساطة.
DNS المتفائل
optimistic-dns = false
عند التفعيل، يرجع Chute نتيجة DNS المخزنة مؤقتاً فوراً مع تحديث السجل في الخلفية. هذا يقلل زمن انتقال الاتصال على حساب احتمالية إرجاع سجلات DNS قديمة.
الافتراضي:
true. عيّنoptimistic-dns = falseللتعطيل.
السماح بالوصول عبر Wi-Fi
allow-wifi-access = true
الغرض منه السماح للأجهزة الأخرى على نفس شبكة Wi-Fi بالوصول إلى منافذ بروكسي HTTP/SOCKS5 الخاصة بـ Chute. يظهر المفتاح في تطبيقات Chute وتُحفظ القيمة في الإعدادات.
تنبيه: النواة حالياً تخزن هذا العلم لكنها لا تفرضه بعد.
الإعدادات المدارة
#!MANAGED-CONFIG https://example.com/config.conf interval=86400 strict=false
الإعداد الذي يبدأ سطره الأول بترويسة #!MANAGED-CONFIG يُعاد جلبه تلقائيًا من عنوان URL. معلمات الترويسة وسلوك التحديث موثقة في الإعداد المُدار.
Replica / تسجيل حركة المرور
replica = true
مفتاح replica في [General] (replica = true) يفعّل تسجيل حركة المرور؛ بينما يتولى قسم [Replica] تصفية ما يعرضه Chute Dashboard، ومفاتيحه موثقة في Replica.
الوصول إلى المتحكم الخارجي (Chute Dashboard)
external-controller-access = password@0.0.0.0:6155
يبدأ خادم التحكم عن بعد المستخدم بواسطة Chute Dashboard. القيمة هي password@host:port؛ ويمكن اختيارياً أن يسبق كلمة المرور اسم مستخدم (user:password@host:port). على iOS، تفتح قناة USB مرافقة على port + 1 (وليس على macOS).
HTTP Control API و Web UI
[General]
external-http-controller = 127.0.0.1:9090
external-http-secret = your-secret-token
external-http-ui = true
external-http-cors = false
يوفر Chute HTTP Control API مدمج وواجهة إدارة ويب، مشابهة للوحات تحكم Clash و Surge. تعرض API حالة النواة، حركة المرور، الاتصالات، DNS، عناصر تحكم السياسات، وإدارة الإعدادات عبر نقاط نهاية REST.
external-http-controller (الافتراضي: معطل)
external-http-controller = 127.0.0.1:9090
العنوان والمنفذ لخادم تحكم HTTP. استخدم 127.0.0.1 للوصول المحلي فقط. الربط بعنوان محدد غير loopback (مثل 192.168.1.5:9090) يتطلب external-http-secret غير فارغ — بدونه يرفض الخادم البدء ويسجل تحذيراً. لاحظ أن 0.0.0.0 يجتاز هذا الفحص رغم أنه يستمع على جميع الواجهات: ومع سر فارغ يكشف ذلك واجهة API بأكملها للشبكة دون مصادقة، لذا عيّن دائماً سراً عند الربط بـ 0.0.0.0.
external-http-secret (الافتراضي: فارغ)
external-http-secret = your-secret-token
رمز Bearer المستخدم لمصادقة API. يجب أن تتضمن الطلبات الترويسة Authorization: Bearer <secret> — لا يُقبل الرمز إلا في هذه الترويسة، وليس أبداً كمعامل استعلام، ويُقارن في زمن ثابت. عندما يكون السر فارغاً، تُخدم جميع نقاط النهاية دون مصادقة. حالات فشل المصادقة تُرجع 401 مع {"ok": false, "error": {"code": "unauthorized", "message": "missing or invalid token"}}. لا تُحمى إلا مسارات /api/* والمسارات البديلة المتوافقة مع Clash؛ أما الأصول الثابتة لواجهة الويب فتُخدم دائماً.
external-http-ui (الافتراضي: true)
external-http-ui = true
عند التفعيل، يقدم Chute واجهة ويب مدمجة عند عنوان المتحكم. توفر واجهة الويب لوحة معلومات عامة، إدارة الاتصالات، فحص DNS، مراقبة حركة المرور، عناصر تحكم السياسات، وتحرير الإعدادات. عيّن إلى false لإبقاء API مفعلة مع تعطيل واجهة المستخدم.
external-http-cors (الافتراضي: false)
external-http-cors = true
تفعيل ترويسات CORS (Cross-Origin Resource Sharing) على استجابات API. مفيد عندما تحتاج واجهة الويب أو أدوات خارجية للوصول إلى API من أصل مختلف.
نقاط نهاية API:
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET |
/api/status |
حالة وقت التشغيل، المنافذ، مدة التشغيل |
GET |
/api/traffic |
عدادات حركة المرور العامة ولكل سياسة |
GET |
/api/connections |
الاتصالات النشطة الحالية |
DELETE |
/api/connections/:id |
إغلاق اتصال |
GET |
/api/connections/history |
سجلات الاتصالات التاريخية |
GET |
/api/connections/processes |
إحصاءات الاتصالات لكل عملية |
GET |
/api/connections/:id/request |
بيانات الطلب الملتقطة لاتصال |
GET |
/api/connections/:id/response |
بيانات الاستجابة الملتقطة لاتصال |
GET |
/api/dns |
سجلات ذاكرة DNS المؤقتة |
DELETE |
/api/dns/cache |
مسح ذاكرة DNS المؤقتة |
DELETE |
/api/dns/records/:domain |
إزالة سجل DNS واحد |
GET |
/api/config |
الإعدادات الحالية |
PUT |
/api/config |
إعادة تحميل الإعدادات |
GET |
/api/policies |
مجموعات السياسات والاختيار الحالي |
PUT |
/api/policies/:group |
تغيير اختيار مجموعة السياسات |
PUT |
/api/mode |
تعيين نمط التوجيه الصادر |
GET |
/api/features |
حالات مفاتيح الميزات |
PUT |
/api/features/mitm |
تبديل MitM |
PUT |
/api/features/record-traffic |
تبديل تسجيل حركة المرور |
GET |
/api/rules |
القواعد المحمّلة |
GET |
/api/logs |
أحدث مدخلات السجل |
ملاحظات نقاط النهاية:
GET /api/connectionsتقبلlimit(عدد صحيح موجب، الافتراضي والحد الأقصى 1000) وcursor(تُرجع فقط الاتصالات التي يكونidفيها أكبر من المؤشر). يحمل حقلdataفي الاستجابةconnectionsوtotalوpage_sizeوhas_moreو — عند وجود صفحات إضافية —next_cursor.GET /api/connections/historyتقبلlimit(الافتراضي 100، الحد الأقصى 1000) وcursor/before(مترادفان؛ تمريرهما معاً يُرفض).GET /api/connections/:id/requestو.../responseتُرجعان{"connection_id": <id>, "data": "<base64>"}. الالتقاطات الأكبر من 2 MiB تُرجع413.GET /api/configتُرجع الإعدادات مع استبدال القيم الحساسة (http-authوexternal-http-secretوca-p12وca-passphraseومفاتيح WireGuard وما شابه) بـ<redacted>— لا تُعِد إرسال الناتج كما هو إلىPUT /api/config، وإلا كُتبت العناصر النائبة في الإعدادات حرفياً.PUT /api/configتقبل إما JSON بالشكل{"configuration": "<full text>"}أو نص الإعدادات الخام كجسم للطلب (بحد 1 MB). عند النجاح تعيد النواة التحميل — أو تبدأ، إن لم تكن تعمل.PUT /api/policies/:groupتأخذ الاختيار من أول مفتاح موجود في الجسم من بينpolicyوnameوselectedوselect؛ ويمكن أن تكون القيمة اسم سياسة أو فهرساً رقمياً كنص. اسم المجموعة الخاصGLOBALيعيّن السياسة المختارة العامة.PUT /api/modeتتطلب رقم JSON:{"mode": 0}—0القواعد،1مباشر،2بروكسي.PUT /api/features/mitmوPUT /api/features/record-trafficتأخذان{"enabled": true}.GET /api/logsتقبلsince(ثوانٍ Unix)؛ يحتفظ المخزن المؤقت في الذاكرة بأحدث 1000 مدخلة، كل منها{timestamp, level, section, message}.
مثال — قراءة الحالة، ثم تبديل مجموعة سياسات:
curl -H "Authorization: Bearer your-secret-token" http://127.0.0.1:9090/api/status
{"ok":true,"data":{"running":true,"outbound_mode":0,"mitm":false, ...}}
curl -X PUT -H "Authorization: Bearer your-secret-token" \
-d '{"policy": "ProxyB"}' http://127.0.0.1:9090/api/policies/MainGroup
{"ok":true,"data":{"outbound_mode":0,"selectable_groups":[...], ...}}
ملاحظة: هذه الميزة معطلة افتراضياً. تستخدم كل استجابة الغلاف
{"ok": true, "data": {...}}عند النجاح و{"ok": false, "error": {"code": "...", "message": "..."}}عند الأخطاء؛ وأجسام الطلبات محدودة بـ 1 MB.تقبل نقاط النهاية
PUTأيضاًPATCH. وتتوفر مسارات بديلة متوافقة مع Clash للوحات التحكم الخارجية:/versionو/trafficو/connectionsو/configsو/proxiesو/rules— المسارات قابلة للوصول، لكن الاستجابات تستخدم غلاف Chute وأسماء حقوله بدلاً من مخطط Clash (تُرجع/versionفقط{"name", "run_id"})، لذا لن تعمل لوحات تحكم Clash مباشرةً دون تعديل.
بصمة العميل
global-client-fingerprint = chrome
يحدد بصمة عميل TLS لكل سياسة لا تحمل fingerprint خاصة بها. قيمة السياسة نفسها تسبق دائماً، لذا هذا افتراضي وليس تجاوزاً.
القيم المدعومة هي chrome و firefox و safari و ios، بالإضافة إلى edge
و 360 و qq و android و random التي تُعامل جميعها كـ Chrome. القيمة غير
المعروفة تُتجاهل وتُستخدم حزمة TLS الخاصة بالنظام.
الافتراضي: فارغ، أي حزمة TLS الخاصة بالنظام. تقرأه فقط سياسات Trojan وVMess وVLESS وShadowTLS.
هذه الصفحة ترجمة للنسخة الإنجليزية. في حال وجود اختلاف، يُعتمد على النسخة الإنجليزية.
ملاحظة: التطبيق لا يدعم اللغة العربية حاليًا.