النموذج الأولي لتطبيق SingLinkVPN أصبح مفتوح المصدر

Contents
نشرت SingLinkLabs، الفريق الذي يقف وراء SingLinkVPN، اليوم الشيفرة المصدرية لـالنموذج الأولي من الجيل الأول لتطبيق SingLinkVPN على GitHub بموجب رخصة Apache-2.0. وهو تطبيق VPN بأسلوب التطبيقات الاستهلاكية لأنظمة Windows وmacOS وAndroid وiOS، مبني من قاعدة شيفرة واحدة على بروتوكول SingLink الذي أصبح مفتوح المصدر حديثًا.
يُطرح التطبيق مع البروتوكول نفسه — راجع بروتوكول SingLink أصبح مفتوح المصدر. ومعًا يوضحان كيف يتكامل بروتوكول VPN مفتوح مع تطبيق عميل متكامل، من زر الاتصال وصولًا إلى الحزم المشفّرة.
المستودع: SingLinkLabs / singlink-vpn-app · الحالة: نموذج أولي من الجيل الأول · الرخصة: Apache-2.0 · التقنيات: Flutter (Dart) للواجهة، وGo للنواة
هذا ليس التطبيق الذي تنزّله من موقعنا
تطبيقات SingLinkVPN الرسمية التي تنزّلها من موقعنا ومن متاجر التطبيقات منتجات منفصلة. فهي تعمل على بروتوكولاتنا الإنتاجية، ومنها SingLink 2.0، وشيفرتها المصدرية الأساسية ليست جزءًا من هذا الإصدار. ولا شيء يتغير للمستخدمين الحاليين.
النموذج الأولي تطبيق عميل مرجعي لبروتوكول SingLink المفتوح. لا يتصل إلا بالخوادم التي تعمل بهذا البروتوكول، ولا يتضمن تسجيل دخول إلى حساب: تضيف الخوادم بنفسك بلصق رابط خادم أو باستيراده من الحافظة. وهو غير منشور في أي متجر تطبيقات.
ما الذي يفعله التطبيق
- الاتصال وقطعه بلمسة واحدة عبر زر دائري كبير يعرض ثلاث حالات: غير متصل، وجارٍ الاتصال، ومتصل.
- حالة الحماية ("Not protected" أو "Protected") ومؤقّت للاتصال.
- عنوان IP الخاص بك: بعد الاتصال، يعرض التطبيق عنوان IP الخروج الذي تراه المواقع.
- اختيار الموقع: تُعرض الخوادم مع أعلام الدول، وفي أعلى القائمة "Quick connect (auto)". وتغيير الموقع أثناء الاتصال يعيد الاتصال تلقائيًا.
- زمن استجابة صادق: لا تُعرض إلا القيم المقيسة فعلًا. والخوادم التي لم تُقَس بعد تعرض "—" بدلًا من رقم مختلَق.
- سرعة مباشرة: سرعة التنزيل والرفع، إضافة إلى البيانات المستهلكة في الجلسة الحالية.
- رسائل خطأ واضحة تخبرك بما عليك فعله تاليًا، مع التفاصيل التقنية على بُعد لمسة واحدة.
- الوضعان الفاتح والداكن، وفقًا لإعدادات النظام.
وضعا اتصال
على الهواتف، VPN على مستوى الجهاز كله. يستخدم Android خدمة VpnService الخاصة بالنظام، ويستخدم iOS امتداد Network Extension. تمر حركة جميع التطبيقات عبر النفق، وتجري استعلامات DNS داخله أيضًا.
على الحواسيب، وضع وكيل النظام. عند الاتصال، يضبط التطبيق وكيل النظام، ويستعيد إعداداتك السابقة عند قطع الاتصال أو الخروج. وإذا أُغلق التطبيق قسرًا أثناء الاتصال، فإنه يستعيدها عند تشغيله التالي. تتبع المتصفحات ومعظم التطبيقات وكيل النظام؛ أما القليل من البرامج التي تتجاهل إعدادات الوكيل فلا تتبعه. والخطوة التالية المخطط لها هي VPN على مستوى الحزم لأجهزة سطح المكتب (Network Extension على macOS، وWintun على Windows).
كيف بُني
- قاعدة شيفرة Flutter واحدة تُنتج التطبيقات الأربعة كلها، بالواجهة نفسها على كل منصة. والواجهة باللغة الإنجليزية.
- نواة بلغة Go تحتوي على بروتوكول SingLink وتُترجَم إلى مكتبة أصلية لكل منصة، يستدعيها التطبيق مباشرة.
- على الهواتف، تضيف النواة مكدّس الشبكة gVisor العامل في مساحة المستخدم من Google (Apache-2.0)، الذي يحوّل حركة الجهاز بأكمله إلى اتصالات SingLink.
- مكتوب من الصفر. باستثناء القالب الفارغ الذي يولّده Flutter لأي مشروع جديد، كل الشيفرة جديدة. ولم تُؤخذ أي شيفرة أو أيقونات أو صور من تطبيقات VPN أخرى.
وضع كل منصة
- macOS 13 أو أحدث (Apple silicon): وضع وكيل النظام. بُني واختُبر باتصال حقيقي.
- Android 7 أو أحدث: VPN على مستوى الجهاز كله. بُني ملف APK واختُبر باتصال حقيقي على محاكي Android.
- iOS 15 أو أحدث: VPN على مستوى الجهاز كله. يُبنى ويعمل في محاكي iOS؛ لكن المحاكي لا يستطيع إنشاء نفق VPN، وتشغيله على iPhone حقيقي يتطلب حساب Apple Developer.
- Windows 10 و11 (x64): وضع وكيل النظام. بُنيت مكتبة النواة؛ أما التطبيق نفسه فيجب ترجمته على Windows، ويتضمن المستودع سير عمل GitHub Actions يقوم بذلك.
حدود بصراحة
- إنه نموذج أولي. موجّه للمطورين والباحثين وكل من يريد أن يرى كيف تعمل الأجزاء، وليس بديلًا عن التطبيقات الرسمية.
- التوزيع يحتاج إلى خطوات إضافية. يتطلب إصدار عام لأجهزة Mac توقيع Apple وتوثيقها (notarization)، ويتطلب iPhone حقيقي حساب Apple Developer، وإصدارات Android موقّعة بمفتاح اختبار.
- دعم macOS يعني حاليًا macOS 13 أو أحدث على أجهزة Mac بمعالجات Apple silicon (M-series).
- يستخدم سطح المكتب وضع وكيل النظام، لذا لا تُغطّى بعد البرامج التي تتجاهل إعدادات الوكيل.
- البروتوكول الأساسي ما زال مسودة. خضع لمراجعة أمنية داخلية لكن لم يخضع بعد لتدقيق من جهة خارجية، ولم يُختبر ميدانيًا في البر الرئيسي للصين.
- تُعرض أسماء الخوادم كما يرسلها الخادم. سمِّ الخوادم بالإنجليزية للحصول على واجهة إنجليزية بالكامل.
ابنِه وشارك
يشرح ملف README في المستودع كيفية بناء النواة والتطبيق لكل منصة. أما نواة البروتوكول فلها مستودعها الخاص، SingLinkLabs / singlink-protocol.
نرحب بالأسئلة وتقارير الأخطاء وطلبات Pull Request على GitHub. يُرجى الإبلاغ عن الثغرات الأمنية بشكل خاص بدلًا من Issue عام — والإجراء موضح في SECURITY.md في مستودع البروتوكول.
الرخصة والعلامات التجارية
الشيفرة مرخّصة بموجب Apache-2.0: يمكنك استخدامها وتعديلها وإعادة توزيعها، بما في ذلك تجاريًا، وفق شروط الرخصة. الاسمان "SingLink" و"SingLinkVPN" واسماهما الصينيان والشعار علامات تجارية لـ SingLinkLabs، ولا تمنح الرخصة إذنًا باستخدامها. ويجب على النسخ المشتقة (forks) استخدام اسمها وأيقونتها الخاصين. ويتضمن التطبيق مكدّس الشبكة gVisor، المرخّص أيضًا بموجب Apache-2.0.
قراءات إضافية
- بروتوكول SingLink أصبح مفتوح المصدر
- مشاريع SingLinkLabs مفتوحة المصدر
- الورقة البيضاء التقنية لـ SingLink 2.0، البروتوكول الإنتاجي للتطبيقات الرسمية
- نزّل تطبيقات SingLinkVPN الرسمية

