1. حالة المشروع: توقف تطوير CFW
Clash for Windows هو عميل رسومي يعتمد على نواة Clash للوكيل. وهو لا يوفر خوادم وكيل بنفسه، وليس شبكة إخفاء هوية ولا خدمة VPN كاملة. توقف المشروع الأصلي في نوفمبر 2023، وكان آخر إصدار عام هو 0.20.39، ولم يعد مستودع GitHub الأصلي متاحًا.
لا يجوز اعتبار الحزم التي تُسوَّق باسم «إصدار CFW 2026» أو «0.20.39.x» أو «Opt build» إصدارات رسمية من Fndroid. العميل القديم لا يتلقى صيانة مستمرة، ولا يمكن للقناة الأصلية التحقق من النسخ العشوائية. لذلك يُفضَّل في النشر الجديد استخدام عميل قائم على mihomo وما زال تحت الصيانة. أما هذا الدليل فيخدم أساسًا من يستخدم CFW بالفعل أو يحتاج إلى فهم إعداد قديم.
ويجب التمييز بين نواة Clash/Premium القديمة في CFW وبين Clash.Meta وmihomo وتعديلات الطرف الثالث. حقول الإعداد ليست متطابقة بينها، فلا تنسخ خيارات أحدث مثل respect-rules أو strict-route أو مكدسات جديدة إلى ملف CFW قديم دون التحقق من التوافق.
2. أربعة مفاهيم لا يجب الخلط بينها
يمكن تقسيم المسار الفعلي في CFW إلى أربع طبقات: كيف يصل التطبيق إلى النواة، وأي منفذ خروج تختاره النواة، وكيف يُحلل DNS، وماذا يحدث بعد أي عطل. تشغيل مفتاح واحد لا يثبت أن الطبقات الأخرى تعمل بصورة صحيحة.
- System Proxy يضبط التطبيقات التي تدعمه لاستخدام نقطة محلية؛ أما بعض الطرفيات والألعاب وتطبيقات UDP والتطبيقات المغلفة فقد تتجاهله.
- TUN يلتقط حركة أكبر، لكن التوجيه والقواعد ما زالا يحددان ما إذا كانت تمر عبر الوكيل. ليس تشغيل TUN ضمانًا وحده.
- Global لا يعالج إلا الحركة التي وصلت إلى النواة بالفعل، ولا يلتقط تطبيقًا يتجاوز Clash؛ كما يجب أن يختار GLOBAL عقدة حقيقية لا DIRECT.
- قد تمر صفحات الويب عبر العقدة بينما يظل DNS يذهب إلى المزود أو جهاز التوجيه أو واجهة أخرى أو DoH داخل المتصفح.
التطبيق
│
│ 1. System Proxy: يرسل التطبيق حركته إلى وكيل محلي
│ 2. TUN: تلتقط واجهة افتراضية حركة طبقة الشبكة
▼
نواة Clash
│
│ 3. Rule / Global / Direct: اختيار منفذ الخروج
│ 4. DNS: تحديد أين وكيف تُحلل الأسماء
▼
DIRECT / عقدة الوكيل / REJECT
│
▼
الوجهة3. حدود الخصوصية: ما الذي يمكن لـ CFW إخفاؤه وما الذي لا يستطيع
لذلك فإن «منع التسرب» في هذا الدليل يعني تقليل الكشف غير المقصود للشبكة والعنوان، وليس تحقيق إخفاء هوية مطلقًا. وإذا كان الموقع الدقيق مهمًا، فراجع أيضًا إعدادات الموقع في النظام وأذونات المتصفح ومعلومات الحساب بدل الاكتفاء بتغيير العقدة.
- بالنسبة إلى مواقع الوجهة: عندما تمر الطلبات كاملة عبر الوكيل، ترى عادة عنوان خروج العقدة لا عنوان IP العام الأصلي لمنزلك أو مكتبك.
- بالنسبة إلى مزود الوكيل: يمكنه عادة رؤية عنوان IP العام الأصلي لأنه يستقبل الاتصال، ولا يستطيع CFW إخفاءه عن المزود.
- بالنسبة إلى الشبكة المحلية أو مزود الإنترنت: قد يرى عنوان الوكيل والتوقيت وبيانات الحركة الوصفية؛ أما رؤية المحتوى فتتوقف على البروتوكول والتشفير.
- بالنسبة إلى مزود DNS: يشفر DoH/DoT النقل، لكن المزود الذي يُتصل به مباشرة قد يرى مصدر IP والأسماء المطلوبة. التشفير ليس إخفاء هوية.
- الحسابات وملفات تعريف الارتباط واللغة والمنطقة الزمنية وبصمات المتصفح وأذونات الموقع وتحديد الموقع عبر Wi-Fi قد تكشف الهوية أو الموقع أيضًا.
4. البدء السريع للمبتدئين
يمكن للملف البعيد تعريف العقد وقواعد DIRECT وDNS وMATCH النهائية وTUN وFake IP. الملف غير الموثوق قد يوجّه جزءًا من الحركة مباشرة عن قصد، لذا فمصدره مهم بقدر مزود العقدة. انسخ تعديلاتك احتياطيًا قبل تحديث ملف بعيد.
- استورد ملف اشتراك HTTPS موثوقًا أو ملف YAML محليًا في Profiles. غالبًا يحتوي رابط الاشتراك على رمز حساب، فلا تضعه في لقطات الشاشة أو السجلات العامة.
- اختر الملف الشخصي، ثم اختر Rule وعقدة حقيقية في Proxies.
- فعّل General → System Proxy وتحقق من الاتصال وعنوان الخروج في المتصفح.
- ثبّت Service Mode وفعّل TUN فقط عندما تحتاج إلى تغطية تطبيقات سطح المكتب أو الطرفية أو UDP على نطاق أوسع.
- أبقِ Allow LAN مغلقًا؛ التطبيقات المحلية التي تستخدم 127.0.0.1 لا تحتاج إلى وصول الشبكة المحلية.
- خيار Start with Windows يشغّل CFW عند الإقلاع فقط؛ ولا يتحقق من الملف الشخصي أو العقدة أو DNS أو حالة منع التسرب.
5. الاختيار بين System Proxy وTUN
للتصفح العادي مع توافق جيد، يكفي عادة System Proxy مع Rule. استخدم TUN عندما يجب أن تصل الطرفية أو الألعاب أو تطبيقات الدردشة أو البرامج التي تتجاهل وكيل النظام إلى Clash. تشغيل الاثنين معًا لا ينشئ «تشفيرًا مزدوجًا» وقد يجعل استكشاف الأخطاء أصعب.
- ثبّت الخدمة من General → Service Mode → Manage ووافق على طلب Windows.
- تحقق من Service Mode قبل تفعيل TUN Mode؛ وكانت وثائق الإصدار القديم تستخدم gVisor غالبًا للتوافق.
- لا تجرّب TAP القديم وTUN معًا؛ أعد التكوين المعروف بأنه يعمل بدل تعطيل جدار حماية Windows كله.
- في وضع Rule افحص مطابقات DIRECT وMATCH النهائية والوجهات العامة في قائمة تجاوز وكيل النظام.
- لاختبار خروج موحد بصورة مضبوطة، اختر Global مؤقتًا مع عقدة حقيقية، ثم قرر هل تعود إلى Rule.
6. مثال DNS/TUN في CFW القديم وحدوده
يوضح هذا المثال صيغة Mixin في CFW القديم. انسخ الإعداد الحالي وادمج المثال في نسخة منه، بدل استبدال ملف يعمل أو لصقه في mihomo الحديث. أولوية التجاوز في CFW هي Mixin > إعدادات TUN Mode > Profile، لذا لا تحرر الحقول نفسها في ثلاثة أماكن.
- يعيد Fake IP عناوين محجوزة للتطبيقات بينما تحتفظ النواة بتعيينات النطاقات؛ وهو ليس تشفيرًا ولا إخفاء هوية.
- ادمج fake-ip-filter مع القائمة الحالية للشبكة المحلية والخدمات التي تحتاج إلى عناوين حقيقية.
- dns.ipv6: false يمنع إجابات AAAA فقط؛ ولا يعطل IPv6 في Windows.
- قيمة dns-hijack المعروضة هنا خاصة بـ CFW القديم وليست صيغة عامة لكل العملاء.
- يشفّر DoH/DoT النقل إلى الأعلى فقط، ولا يثبت أن CFW القديم يرسل DNS عبر العقدة. إذا كان على المزود ألا يرى IP الأصلي، فالـ CFW القديم ليس حلًا موثوقًا وحده.
mixin:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- "localhost"
- "dns.msftncsi.com"
- "www.msftncsi.com"
- "www.msftconnecttest.com"
nameserver:
- "https://1.1.1.1/dns-query"
- "tls://1.0.0.1:853"
ipv6: false
tun:
enable: true
stack: gvisor
dns-hijack:
- "198.18.0.2:53"
auto-route: true
auto-detect-interface: true7. DoH في المتصفح وIPv6 وWebRTC وQUIC ومفتاح القطع
- DNS الآمن في المتصفح: لا تعطّله إلا بعد التحقق من TUN وDNS hijacking، حتى يحلل Clash الأسماء باتساق. لا تعطّل DoH قبل أن يعمل التقاط DNS.
- IPv6: مفتاح CFW ليس مفتاحًا عامًا لنظام التشغيل. إذا وُجد IPv6 عام على الشبكة الفعلية والنفق IPv4 فقط، فقد ترى وجهات IPv6 العنوان الأصلي. التقطه بالكامل أو قيّده بوعي وأعد الاختبار.
- WebRTC: قد يتجاوز STUN وكيل التطبيق التقليدي ويكشف عناوين إضافية. قد يساعد disable_non_proxied_udp في Chromium في السيناريوهات الصارمة، لكنه قد يضعف المكالمات الصوتية والمرئية أو يكسرها.
- يستخدم QUIC وHTTP/3 بروتوكول UDP. لا تفترض أن الفشل يعني رجوعًا آمنًا إلى TCP؛ تحقق من المسار أو عطّل QUIC مؤقتًا بسياسة مدعومة من المتصفح.
- مفتاح القطع: مفتاح TUN في CFW ليس آلية موثوقة تفشل مغلقة. الأعطال والنوم وتغير الشبكة وتحديثات الملف وVPN الأخرى قد تخلق مسارات غير مقصودة.
- عنوان مرشح .local عبر mDNS في متصفح حديث لا يثبت تلقائيًا تسرب IP عام؛ ركّز على عناوين IPv4/IPv6 العامة الأصلية.
8. شرح إعدادات General وProxies
- Port: نقطة الوكيل المختلط المحلية؛ استخدم القيمة المعروضة فعليًا ولا تفترض أنها 7890 دائمًا.
- Allow LAN: يسمح لأجهزة LAN الأخرى باستخدام الوكيل المحلي؛ أبقه مغلقًا في خط الأساس للخصوصية.
- Log Level: تكفي Info للاستخدام العادي وDebug لاستكشاف الأخطاء؛ أخفِ النطاقات وIP ومسارات العمليات وبيانات الاشتراك قبل مشاركة السجلات.
- IPv6: يضبط سلوك النواة لا مكدس IPv6 الكامل في نظام التشغيل.
- Home Directory: يحتوي على الإعدادات والسجلات وذاكرة التخزين؛ راجعه قبل مشاركته.
- GeoIP Database: يدعم قواعد GEOIP؛ وتحديثه لا يحدّث العقد أو النواة.
- UWP Loopback: يرفع قيود loopback عن تطبيقات مغلفة محددة؛ استخدمه فقط للتطبيقات التي تحتاجه.
- Service Mode: يوفر الدعم المميز لـ TUN؛ وليس خدمة وكيل.
- Mixin: يحقن حقولًا مشتركة في الملفات ويفيد للحفاظ على إعدادات DNS الشخصية.
- أنواع المجموعات: select للاختيار اليدوي، وurl-test للاختيار المقاس، وfallback للتبديل عند الفشل، وload-balance لتوزيع الاتصالات؛ والكمون المنخفض لا يعني نطاقًا عريضًا أعلى.
9. الملفات الشخصية وMixin وصياغة القواعد
تحتوي الملفات الشخصية على العقد والمجموعات والقواعد. قد تكتب التحديثات البعيدة فوق التعديلات اليدوية، لذا استخدم Mixin أو Diff أو نسخة محلية للتخصيص طويل الأمد. جافاسكربت Mixin والمحللات شيفرة نشطة ولا يجب تشغيلها إلا من مصادر موثوقة.
- تُقيَّم القواعد بالترتيب، ويجب أن يأتي MATCH في النهاية.
- استبدل Proxy بالاسم الدقيق لمجموعة وكيل موجودة.
- يتطلب PROCESS-NAME عادة اسم عملية Windows الكامل بما فيه .exe.
- لا يمنع no-resolve تحليل DNS الإضافي لمطابقة القاعدة فقط؛ وليس مفتاح خصوصية.
- REJECT يحظر الاتصال ولا يخفي عنوانه عبر وكيل.
rules:
- DOMAIN-SUFFIX,example.com,Proxy
- PROCESS-NAME,git.exe,Proxy
- IP-CIDR,203.0.113.0/24,Proxy,no-resolve
- MATCH,DIRECT10. استخدام Logs وConnections وSettings للتحقق
- تكشف Logs أخطاء تحميل الملف وDNS ومصافحة العقدة وبدء TUN.
- يعرض Connections مسار العملية Process Path والقاعدة المطابقة Rule وسلاسل الخروج Chains؛ وسلسلة تنتهي بـ DIRECT تتجاوز العقدة.
- تميز أنواع الدخول بين HTTP وSOCKS5 وTUN، وتفرق Network بين TCP وUDP.
- أغلق الاتصالات القديمة بعد تغيير العقد أو الأنماط أو الملفات حتى لا تستمر TCP قديمة في منفذ الخروج السابق.
- يمكن لخيارات Break When Proxy Change / Profile Change / Mode Change في Settings تقليل لبس الاتصالات القديمة.
- يحمي Core Secret ومنفذ المتحكم العشوائي واجهة التحكم المحلية؛ لا تكشف API بلا مصادقة على 0.0.0.0.
11. كيف تجعل CFW يعمل مع التطبيقات المختلفة
يتبع Chrome وEdge وكيل النظام عادة، لكن افحص إضافات الوكيل وDoH في المتصفح وWebRTC وQUIC. يمكن لـ Firefox استخدام إعدادات النظام أو SOCKS v5 يدويًا مع تحليل DNS عن بُعد. قد يكون لبيئة التطوير وإضافاتها وخوادم اللغة والطرفية المدمجة إعدادات وكيل منفصلة.
اختبر TUN أولًا للتطبيقات المغلفة في Windows، ولا تستخدم إعفاء UWP Loopback إلا لتطبيقات محددة تحتاجه. تحتاج الألعاب والصوت والمحاكيات غالبًا إلى TUN مع دعم UDP؛ وعمل المشغل لا يثبت أن اللعبة نفسها تمر عبر الوكيل. لدى WSL وDocker والآلات الافتراضية مكدسات شبكة منفصلة، و127.0.0.1 داخل الحاوية ليس عادة نقطة CFW على Windows.
# إعدادات مؤقتة لجلسة PowerShell الحالية
$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
# curl عبر وكيل HTTP صريح
curl.exe --proxy http://127.0.0.1:7890 https://example.com/
# SOCKS مع تحليل اسم المضيف عن بُعد
curl.exe --proxy socks5h://127.0.0.1:7890 https://example.com/
# ضبط وكيل Git عبر HTTP(S) وإزالته
git config --global http.proxy http://127.0.0.1:7890
git config --global --unset http.proxy
# إزالة متغيرات الوكيل من الجلسة الحالية
Remove-Item Env:HTTP_PROXY -ErrorAction SilentlyContinue
Remove-Item Env:HTTPS_PROXY -ErrorAction SilentlyContinue12. قائمة التحقق واستكشاف الأخطاء
- اختبر IPv4 وIPv6 منفصلين باستخدام خدمتين مستقلتين لعرض IP؛ ومدينة جغرافية غير دقيقة لا تثبت تسربًا وحدها.
- في Connections تحقق من العملية والقاعدة والسلسلة وإدخالات UDP؛ وغياب الإدخال يعني غالبًا أن التطبيق تجاوز Clash.
- شغّل اختبارات DNS القياسية والموسعة وابحث عن مزود الإنترنت أو جهاز التوجيه أو محللات محلية غير متوقعة؛ ولا يلزم أن يطابق IP المحلل العام عنوان العقدة.
- افحص WebRTC بحثًا عن العناوين العامة الأصلية، ولا تعتبر أسماء .local عبر mDNS تسربًا عامًا تلقائيًا.
- أعد الاختبار بعد تغيير العقدة وتحديث الملف والنوم وتغيير Wi-Fi وإعادة تشغيل CFW وإغلاق TUN غير المتوقع.
- إذا عادت التطبيقات إلى الإنترنت مباشرة عند توقف CFW، فالإعداد ليس مغلقًا عند الفشل.
- إذا كسر TUN الاتصال، افحص Service Mode ومعالجة الجدار وDNS وعملاء VPN/TUN المتنافسين والمكدس؛ أعد النسخة الاحتياطية بدل تعطيل الجدار كله.