قائمة مراجعة التنفيذ
قائمة مراجعة شاملة لإعادة تنفيذ 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