Skip to content

قائمة مراجعة التنفيذ

قائمة مراجعة شاملة لإعادة تنفيذ sing-box، منظمة حسب المراحل. كل مرحلة تبني على المراحل السابقة.

المرحلة 1: الأساس

نظام التهيئة

  • [ ] محلل JSON مع سجل أنواع واعٍ بالسياق
  • [ ] هيكل Options الجذري مع جميع الحقول العليا
  • [ ] نوع Listable[T] (يقبل قيمة واحدة أو مصفوفة)
  • [ ] نوع Duration (تحليل نص مدة Go)
  • [ ] نوع NetworkList (نص واحد أو مصفوفة من "tcp"/"udp")
  • [ ] تعداد DomainStrategy (as_is، prefer_ipv4، prefer_ipv6، ipv4_only، ipv6_only)
  • [ ] تعداد NetworkStrategy
  • [ ] تعداد InterfaceType (wifi، cellular، ethernet، other)
  • [ ] نوع DNSQueryType (اسم نصي أو uint16)
  • [ ] UDPTimeoutCompat (رقم كثواني أو نص مدة)
  • [ ] ServerOptions (server + server_port)
  • [ ] ListenOptions (عنوان الاستماع، المنفذ، خيارات المقبس)
  • [ ] DialerOptions (التحويل، الربط، المهلة، علامة التوجيه، استراتيجية الشبكة)
  • [ ] DomainResolveOptions (نص مختصر أو كائن كامل)
  • [ ] تحليل متعدد الأشكال للمنافذ الواردة/الصادرة/نقاط النهاية/الخدمات/DNS عبر سجلات الأنواع
  • [ ] نظام علامات البناء / علامات الميزات للتضمين الشرطي للبروتوكولات
  • [ ] التحقق من تكرار الوسوم للمنافذ الواردة والصادرة/نقاط النهاية

التسجيل

  • [ ] مستويات السجل: trace، debug، info، warn، error، fatal، panic
  • [ ] مسجل واعٍ بالسياق (سياق لكل اتصال)
  • [ ] مصنع سجل قابل للملاحظة (لبث سجلات Clash API)
  • [ ] دعم الإخراج إلى ملف
  • [ ] خيار الطابع الزمني
  • [ ] خيار إخراج ملون

دورة حياة الخدمة

  • [ ] مراحل البدء: Initialize، Start، PostStart، Started
  • [ ] بدء الخدمات بترتيب مع حل التبعيات
  • [ ] الإيقاف الرشيق مع نشر Close()
  • [ ] سجل خدمات معتمد على السياق (service.FromContext[T])

المرحلة 2: خط الأنابيب الأساسي

واجهات المحول

  • [ ] واجهة adapter.Inbound
  • [ ] واجهة adapter.Outbound (مع N.Dialer)
  • [ ] واجهة adapter.Endpoint (ثنائي الاتجاه: وارد + صادر)
  • [ ] واجهة adapter.Router
  • [ ] هيكل بيانات وصفية adapter.InboundContext
  • [ ] adapter.ConnectionRouterEx لتوجيه الاتصالات
  • [ ] adapter.OutboundManager (بحث الوسم، المنفذ الصادر الافتراضي)
  • [ ] adapter.InboundManager
  • [ ] adapter.EndpointManager
  • [ ] adapter.NetworkManager

أوليات الشبكة

  • [ ] واجهة N.Dialer (DialContext، ListenPacket)
  • [ ] N.ExtendedConn (امتدادات القراءة/الكتابة المخزنة مؤقتاً)
  • [ ] N.PacketConn (مع ReadPacket/WritePacket للنسخ الصفري)
  • [ ] أدوات bufio (النسخ، الأنابيب، اتصالات العداد)
  • [ ] نوع M.Socksaddr (عنوان:منفذ موحد مع دعم FQDN)
  • [ ] نشر بيانات الاتصال الوصفية عبر السياق

المستمع

  • [ ] مستمع TCP بخيارات مقبس قابلة للتهيئة
  • [ ] مستمع UDP مع معالجة اتصال الحزم
  • [ ] تهيئة الحفاظ على الاتصال
  • [ ] دعم TCP Fast Open
  • [ ] دعم Multipath TCP
  • [ ] دعم علامة التوجيه (SO_MARK)
  • [ ] دعم مساحة أسماء الشبكة (setns)
  • [ ] دعم الربط بالواجهة

المتصل

  • [ ] متصل افتراضي بخيارات المقبس
  • [ ] متصل التحويل (السلسلة عبر منفذ صادر آخر)
  • [ ] ربط الواجهة
  • [ ] ربط العنوان (inet4/inet6)
  • [ ] نشر علامة التوجيه
  • [ ] مهلة الاتصال
  • [ ] تكامل تحليل النطاق
  • [ ] استراتيجية الشبكة (تفضيل أنواع واجهات محددة)
  • [ ] متصل احتياطي (تجربة شبكات متعددة)

الموجه

  • [ ] خط أنابيب مطابقة قواعد المسار
  • [ ] أنواع القواعد الافتراضية (النطاق، IP، المنفذ، العملية، الشبكة، إلخ)
  • [ ] القواعد المنطقية (AND، OR مع عكس)
  • [ ] إجراءات القواعد (توجيه، رفض، اختطاف DNS، استنشاق، تحليل)
  • [ ] المنفذ الصادر النهائي (المسار الافتراضي)
  • [ ] تكامل مجموعة القواعد
  • [ ] خط أنابيب قواعد DNS (منفصل عن قواعد المسار)
  • [ ] توجيه الاتصال مع إثراء البيانات الوصفية

الاستنشاق

  • [ ] إطار عمل استنشاق البروتوكول
  • [ ] استنشاق HTTP (الطريقة + ترويسة المضيف)
  • [ ] استنشاق TLS (SNI من ClientHello)
  • [ ] استنشاق QUIC (SNI من QUIC ClientHello)
  • [ ] استنشاق DNS (نطاق الاستعلام)
  • [ ] استنشاق SSH
  • [ ] استنشاق RDP
  • [ ] استنشاق BitTorrent
  • [ ] استنشاق DTLS
  • [ ] معالجة مهلة الاستنشاق
  • [ ] خيار تجاوز الوجهة

المرحلة 3: طبقة النقل

TLS

  • [ ] عميل TLS (مع SNI، ALPN، تثبيت الشهادة)
  • [ ] خادم TLS (شهادة، مفتاح، ACME)
  • [ ] عميل UTLS (بصمات Chrome/Firefox/Safari)
  • [ ] عميل وخادم Reality
  • [ ] دعم ECH (Client Hello المشفر)
  • [ ] تحسين kTLS (Linux)

ناقلات V2Ray

  • [ ] ناقل WebSocket (عميل + خادم)
  • [ ] ناقل HTTP/2 (عميل + خادم)
  • [ ] ناقل gRPC (عميل + خادم)
  • [ ] ناقل HTTPUpgrade (عميل + خادم)
  • [ ] ناقل QUIC (عميل + خادم) [علامة البناء: with_quic]

تعدد الإرسال (sing-mux)

  • [ ] عميل تعدد الإرسال (بروتوكولات smux، yamux، h2mux)
  • [ ] خادم تعدد الإرسال
  • [ ] تعدد إرسال التدفقات عبر اتصال واحد
  • [ ] دعم الحشو
  • [ ] خيار التحكم في الازدحام Brutal
  • [ ] تهيئة الحد الأقصى للاتصالات / الحد الأدنى للتدفقات / الحد الأقصى للتدفقات

المرحلة 4: البروتوكولات

Direct

  • [ ] منفذ وارد مباشر (قبول الاتصالات والتوجيه)
  • [ ] منفذ صادر مباشر (الاتصال مباشرة بالوجهة)

Block

  • [ ] منفذ صادر للحجب (رفض الاتصالات)

SOCKS

  • [ ] منفذ وارد SOCKS5 (مع مصادقة اختيارية)
  • [ ] منفذ وارد SOCKS4/4a
  • [ ] منفذ صادر SOCKS5 (عميل)
  • [ ] ربط UDP عبر SOCKS5

HTTP

  • [ ] منفذ وارد وكيل HTTP (CONNECT + HTTP عادي)
  • [ ] منفذ صادر HTTP CONNECT (عميل)
  • [ ] مصادقة أساسية/خلاصة

Mixed

  • [ ] منفذ وارد مختلط (كشف تلقائي HTTP/SOCKS5)

Shadowsocks

  • [ ] منفذ وارد Shadowsocks أحادي المستخدم
  • [ ] منفذ وارد Shadowsocks متعدد المستخدمين
  • [ ] منفذ وارد Shadowsocks للترحيل
  • [ ] منفذ صادر Shadowsocks
  • [ ] شيفرات AEAD (aes-128-gcm، aes-256-gcm، chacha20-ietf-poly1305)
  • [ ] شيفرات AEAD 2022 (2022-blake3-aes-128-gcm، 2022-blake3-aes-256-gcm، 2022-blake3-chacha20-poly1305)
  • [ ] ترحيل UDP
  • [ ] دعم إضافات SIP003 (obfs، v2ray-plugin)
  • [ ] UDP عبر TCP (UoT)

VMess

  • [ ] منفذ وارد VMess
  • [ ] منفذ صادر VMess
  • [ ] أوضاع الأمان: auto، zero، aes-128-gcm، chacha20-poly1305، aes-128-cfb، none
  • [ ] دعم alterId (قديم)
  • [ ] خيار الحشو العام
  • [ ] خيار الطول المصادق
  • [ ] ترميز الحزم: packetaddr، xudp

VLESS

  • [ ] منفذ وارد VLESS
  • [ ] منفذ صادر VLESS
  • [ ] مصادقة معتمدة على UUID
  • [ ] Flow: xtls-rprx-vision
  • [ ] ترميز الحزم: packetaddr، xudp

Trojan

  • [ ] منفذ وارد Trojan
  • [ ] منفذ صادر Trojan
  • [ ] تجزئة كلمة المرور SHA-224 (مفتاح سداسي عشري 56 بايت)
  • [ ] ترحيل UDP عبر بروتوكول Trojan

ShadowTLS

  • [ ] منفذ وارد ShadowTLS (v1، v2، v3)
  • [ ] منفذ صادر ShadowTLS
  • [ ] ترحيل مصافحة TLS

Hysteria / Hysteria2 [علامة البناء: with_quic]

  • [ ] منفذ وارد وصادر Hysteria
  • [ ] منفذ وارد وصادر Hysteria2
  • [ ] التحكم في ازدحام Brutal

TUIC [علامة البناء: with_quic]

  • [ ] منفذ وارد وصادر TUIC
  • [ ] تعدد إرسال معتمد على QUIC

WireGuard [علامة البناء: with_wireguard]

  • [ ] نقطة نهاية WireGuard (ثنائية الاتجاه)
  • [ ] مصافحة بروتوكول Noise
  • [ ] إدارة النظراء

أخرى

  • [ ] منفذ وارد NaiveProxy (ومنفذ صادر مع علامة بناء)
  • [ ] منفذ صادر Tor
  • [ ] منفذ صادر SSH

مجموعات المنافذ الصادرة

  • [ ] مجموعة المحدد (اختيار يدوي مع حفظ)
  • [ ] مجموعة URLTest (اختيار تلقائي حسب التأخير)
  • [ ] تنفيذ اختبار URL
  • [ ] تخزين سجل الاختبارات

المرحلة 5: DNS

نظام DNS

  • [ ] موجه DNS مع اختيار ناقل معتمد على القواعد
  • [ ] ذاكرة DNS المؤقتة مع TTL
  • [ ] حد سعة الذاكرة المؤقتة
  • [ ] ذاكرة مؤقتة مستقلة لكل قاعدة
  • [ ] شبكة العميل الفرعية (EDNS0)
  • [ ] تطبيق استراتيجية النطاق (تحليل A/AAAA/كلاهما)

ناقلات DNS

  • [ ] ناقل DNS عبر UDP
  • [ ] ناقل DNS عبر TCP
  • [ ] ناقل DNS عبر TLS (DoT)
  • [ ] ناقل DNS عبر HTTPS (DoH)
  • [ ] ناقل DNS عبر QUIC (DoQ) [علامة البناء: with_quic]
  • [ ] ناقل DNS عبر HTTP/3 [علامة البناء: with_quic]
  • [ ] ناقل DNS نظام محلي
  • [ ] ناقل DNS ملف Hosts
  • [ ] ناقل DNS FakeIP
  • [ ] ناقل DNS DHCP [علامة البناء: with_dhcp]

FakeIP

  • [ ] مجمع عناوين FakeIP (IPv4 + IPv6)
  • [ ] تخصيص العناوين وإعادة التدوير
  • [ ] تعيين ثنائي الاتجاه (عنوان <-> نطاق)
  • [ ] حفظ ملف الذاكرة المؤقتة
  • [ ] حفظ البيانات الوصفية (مؤشر التخصيص)

قواعد DNS

  • [ ] مطابقة قواعد DNS (النطاق، المصدر، نوع الاستعلام، إلخ)
  • [ ] إجراءات قواعد DNS (توجيه، رفض، استجابة محددة مسبقاً)
  • [ ] ذاكرة استجابات DNS المرفوضة المؤقتة (RDRC)

المرحلة 6: الميزات المتقدمة

مجموعات القواعد

  • [ ] قارئ تنسيق SRS الثنائي
  • [ ] كاتب تنسيق SRS الثنائي
  • [ ] قارئ تنسيق JSON المصدري
  • [ ] مجموعة قواعد محلية مع مراقبة الملفات
  • [ ] مجموعة قواعد بعيدة مع جلب HTTP وتخزين ETag المؤقت
  • [ ] مجموعات قواعد مضمنة
  • [ ] عدّ مراجع مجموعة القواعد وإدارة الذاكرة
  • [ ] بيانات وصفية مجموعة القواعد (علامات احتواء العملية/WIFI/IPCIDR)
  • [ ] استخراج مجموعة IP لتوجيه TUN

GeoIP / GeoSite (قديم)

  • [ ] قارئ MaxMind MMDB (نوع sing-geoip)
  • [ ] قارئ تنسيق GeoSite الثنائي
  • [ ] تجميع GeoSite إلى قواعد
  • [ ] التنزيل التلقائي عند الاستخدام الأول

باحث العمليات

  • [ ] Linux: تشخيص مقبس netlink + بحث procfs
  • [ ] macOS: تحليل قائمة PCB عبر sysctl
  • [ ] Windows: واجهة IP Helper API (GetExtendedTcpTable)
  • [ ] Android: netlink + ربط UID بمدير الحزم
  • [ ] تفويض واجهة المنصة

TUN

  • [ ] إنشاء وتهيئة جهاز TUN
  • [ ] التوجيه التلقائي (إدارة جدول التوجيه)
  • [ ] اختطاف DNS عبر TUN
  • [ ] دعم IPv4 و IPv6
  • [ ] تهيئة MTU
  • [ ] TUN المنصة (VpnService في Android، NetworkExtension في iOS)

Clash API [علامة البناء: with_clash_api]

  • [ ] خادم HTTP REST بموجه chi
  • [ ] مصادقة برمز Bearer
  • [ ] دعم WebSocket
  • [ ] بث إحصاءات حركة المرور
  • [ ] بث السجلات مع مرشح المستوى
  • [ ] تتبع الاتصالات وإدراجها
  • [ ] إدراج الوكلاء واختبار التأخير
  • [ ] واجهة تحديث المحدد
  • [ ] تبديل الوضع مع الحفظ
  • [ ] خدمة ملفات ثابتة لواجهة المستخدم الخارجية
  • [ ] تهيئة CORS

V2Ray API [علامة البناء: with_v2ray_api]

  • [ ] خادم gRPC
  • [ ] خدمة الإحصائيات (GetStats، QueryStats، GetSysStats)
  • [ ] عدادات حركة مرور لكل منفذ وارد/صادر/مستخدم
  • [ ] اصطلاح تسمية العدادات (entity>>>tag>>>traffic>>>direction)
  • [ ] مطابقة الأنماط (نص فرعي وتعبير نمطي)

ملف الذاكرة المؤقتة

  • [ ] قاعدة بيانات bbolt (أو ما يعادلها)
  • [ ] حفظ المنفذ الصادر المحدد
  • [ ] حفظ وضع Clash
  • [ ] تخزين مؤقت لمجموعة القواعد البعيدة
  • [ ] حفظ FakeIP (تعيين ثنائي الاتجاه)
  • [ ] حفظ RDRC مع انتهاء الصلاحية
  • [ ] فضاء أسماء معرف الذاكرة المؤقتة
  • [ ] استرداد التلف (الحذف وإعادة الإنشاء)
  • [ ] تخزين مؤقت للكتابة غير المتزامنة

واجهة المنصة

  • [ ] تعريف واجهة متوافق مع gomobile
  • [ ] جسر إدارة جهاز TUN
  • [ ] مراقبة الواجهة الافتراضية
  • [ ] تعداد واجهات الشبكة
  • [ ] جسر بحث مالك الاتصال
  • [ ] قراءة حالة WIFI
  • [ ] الوصول إلى شهادات النظام
  • [ ] إرسال الإشعارات
  • [ ] مراقبة الجوار
  • [ ] قواعد عند الطلب (iOS)
  • [ ] دورة حياة امتداد الشبكة (iOS)
  • [ ] خادم الأوامر (IPC)

المرحلة 7: الاختبار والتوافق

توافق تنسيق السلك

  • [ ] اختبارات تنسيق سلك بروتوكول VLESS
  • [ ] اختبارات تنسيق سلك بروتوكول VMess
  • [ ] اختبارات تنسيق سلك بروتوكول Trojan
  • [ ] اختبارات تنسيق سلك Shadowsocks (جميع متغيرات الشيفرات)
  • [ ] اختبارات تنسيق سلك تعدد الإرسال (sing-mux)
  • [ ] اختبارات التكامل مع sing-box الرسمي

توافق التهيئة

  • [ ] تحليل تهيئات أمثلة sing-box الرسمية
  • [ ] اختبارات التسلسل ذهاباً وإياباً
  • [ ] اختبارات ترقية التنسيقات القديمة
  • [ ] اختبارات رفض الحقول غير المعروفة

التشغيل البيني

  • [ ] اختبار ضد خوادم sing-box
  • [ ] اختبار ضد خوادم Xray-core
  • [ ] اختبار ضد Clash.Meta
  • [ ] توافق تنسيق مجموعة قواعد SRS
  • [ ] توافق قاعدة بيانات GeoIP
  • [ ] توافق قاعدة بيانات GeoSite