
TrustTunnel v1.1.0
بروتوكول VPN مفتوح المصدر يقوم بتوجيه حركة المرور TCP و UDP و ICMP عبر HTTPS، متجاوزًا DPI والتقييد. يتميز بتقسيم النفق، وكيل SOCKS5، DNS مخصص، وعملاء عبر المنصات المختلفة.
العملاء · App Store (iOS) · App Store (macOS) · Play store
جدول المحتويات
مقدمة
TrustTunnel هو بروتوكول VPN حديث ومفتوح المصدر تم تطويره في الأصل بواسطة AdGuard VPN وهو الآن متاح لأي شخص لاستخدامه وتدقيقه.
يوفر اتصالات VPN سريعة وآمنة وموثوقة دون المقايضات المعتادة. بحكم التصميم، لا يمكن تمييز حركة مرور TrustTunnel عن حركة مرور HTTPS العادية، مما يسمح لها بتجاوز التقييد وفحص الحزم العميق مع الحفاظ على حماية قوية للخصوصية.
يتضمن مشروع TrustTunnel نقطة نهاية VPN (هذا المستودع)، و المكتبة وواجهة سطر الأوامر للعميل، وتطبيق واجهة المستخدم الرسومية.
ميزات الخادم
-
بروتوكول VPN: تنفذ المكتبة بروتوكول VPN المتوافق مع HTTP/1.1 وHTTP/2 وQUIC. من خلال محاكاة حركة المرور الشبكية العادية، يصبح من المستحيل اكتشافها وحظرها.
-
أنفاق مرور مرنة: يمكن لـ TrustTunnel إنشاء أنفاق لحركة مرور TCP وUDP وICMP من وإلى العميل.
-
التوافق مع المنصات: الخادم متوافق مع Linux وmacOS. العميل متاح لـ Android وApple وWindows وLinux.
-
نقطة نهاية الاشتراك: يمكن اختياريًا تقديم عنوان URL للاشتراك لكل مستخدم عبر HTTPS. عند تمكين
[subscription]فيvpn.toml، يمكن لكل عميل جلب إعدادات JSON الخاصة به (معلمات الاتصال، وبيانات الاعتماد، وخوادم DNS الأولية، والمزيد) عبر HTTPS باستخدام HTTP Basic Auth، مما يتيح الخدمة الذاتية والتحديث التلقائي لإعدادات العميل دون إعادة توزيع الملفات يدويًا.
ميزات العميل
-
أنفاق المرور: المكتبة قادرة على إنشاء أنفاق لحركة مرور TCP وUDP وICMP من العميل إلى نقطة النهاية والعكس.
-
دعم متعدد المنصات: تدعم منصات Linux وmacOS وWindows، مما يوفر تجربة متسقة عبر أنظمة التشغيل المختلفة.
-
نفق على مستوى النظام ووكيل SOCKS5: يمكن إعداده كنفق على مستوى النظام، باستخدام واجهة شبكة افتراضية، وكذلك كوكيل SOCKS5.
-
الأنفاق المنقسمة: تدعم المكتبة الأنفاق المنقسمة، مما يسمح للمستخدمين باستثناء الاتصالات ببعض النطاقات أو المضيفين من التوجيه عبر نقطة نهاية VPN، أو العكس، بتوجيه الاتصالات فقط إلى نطاقات أو مضيفين محددين عبر نقطة النهاية بناءً على قائمة الاستثناءات.
-
خادم DNS مخصص: يمكن للمستخدمين تحديد خادم DNS مخصص، والذي يُستخدم لاستعلامات DNS الموجهة عبر نقطة نهاية VPN.
البدء السريع
إعداد نقطة النهاية
تثبيت نقطة النهاية
يتوفر نص برمجي للتثبيت يمكن تشغيله بالأمر التالي:```bash curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -
سيقوم نص التثبيت بتنزيل الحزمة المُجمَّعة مسبقًا من أحدث
إصدار على GitHub لبنية النظام المناسبة وفك ضغطها إلى
`/opt/trusttunnel`. يمكن تجاوز دليل الإخراج بتحديد
علامة `-o DIR` في نهاية الأمر أعلاه.
إذا كنت تريد تثبيت إصدار محدد (بدلاً من الأحدث)، استخدم `-V <version>`:```bash
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s - -V <version>
[!NOTE] تتوفر حزم جاهزة لمعماريات
linux-x86_64وlinux-aarch64وmacos-universal(Intel و Apple Silicon).
تحديث نقطة النهاية
يقوم سكربت التثبيت دائمًا بتثبيت أحدث إصدار متاح. لذلك، لتحديث التثبيت الخاص بك، قم بتشغيل أمر التثبيت مرة أخرى:```bash curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -
يُعيد هذا تشغيل المثبّت ويستبدل الملفات التنفيذية في دليل التثبيت
(`/opt/trusttunnel` افتراضيًا، أو الدليل الذي حددته باستخدام `-o DIR`).
> [!NOTE]
> لا تنسَ إيقاف نقطة النهاية قبل التحديث:
>
> ```bash
> sudo systemctl stop trusttunnel
> ```
>
> لإعادة تشغيل نقطة النهاية بعد التحديث:
>
> ```bash
> sudo systemctl start trusttunnel
> ```
#### معالج إعداد نقطة النهاية
يُرجى الرجوع إلى [CONFIGURATION.md](https://github.com/trusttunnel/trusttunnel/blob/master/CONFIGURATION.md) للحصول على التوثيق
الأكثر تفصيلاً حول كيفية إعداد نقطة النهاية.
يحتوي دليل التثبيت على الملف التنفيذي `setup_wizard` الذي يساعد في إنشاء
ملفات الإعداد المطلوبة لتشغيل نقطة النهاية:```bash
cd /opt/trusttunnel/
./setup_wizard -h
يدعم معالج الإعداد الوضع التفاعلي، لذا يمكنك تشغيله وسيطلب البيانات المطلوبة لتكوين نقطة النهاية.```bash cd /opt/trusttunnel/ sudo ./setup_wizard
> [!NOTE]
> مطلوب `sudo` لإدارة شهادات TLS بشكل صحيح.
سيسأل المعالج عن الحقول التالية، بعضها يحتوي على القيم الافتراضية
التي يمكنك استخدامها بأمان:
- **العنوان الذي سيتم الاستماع عليه** - حدد العنوان الذي ستستمع عليه نقطة النهاية.
استخدم `0.0.0.0:443` لعمليات النشر الأصلية (HTTPS على جميع الواجهات).
إذا كنت تشغّل باستخدام تعيين منفذ Docker `443:8443`، فاضبطه على `0.0.0.0:8443`.
- **مسار ملف بيانات الاعتماد** - المسار الذي سيتم تخزين بيانات اعتماد المستخدم
للتفويض فيه.
- **اسم المستخدم** - اسم المستخدم الذي سيستخدمه المستخدم للتفويض.
- **كلمة المرور** - كلمة مرور المستخدم.
- **إضافة مستخدم آخر؟** - اختر `yes` إذا كنت تريد إضافة المزيد من المستخدمين، أو `no`
لمتابعة عملية التكوين.
- **مسار ملف القواعد** - المسار لتخزين قواعد التصفية.
- **قواعد تصفية الاتصالات** - يمكنك إضافة قواعد ستستخدمها نقطة النهاية
للسماح باتصالات المستخدم أو منعها بناءً على:
- عنوان IP الخاص بالعميل
- بادئة TLS العشوائية
- TLS العشوائي مع القناع
اضغط `n` للسماح بجميع الاتصالات.
- **مسار ملف لتخزين إعدادات المكتبة** - المسار لتخزين ملف تكوين
نقطة النهاية الرئيسي.
- **اختيار الشهادة** - اختر كيفية الحصول على شهادة TLS:
- **إصدار شهادة Let's Encrypt** (يتطلب نطاقًا عامًا) - يحتوي
معالج الإعداد على دعم ACME مدمج ويمكنه الحصول تلقائيًا على شهادة مجانية
وموثوقة علنًا من Let's Encrypt. ستحتاج إلى:
- نطاق مسجّل يشير إلى عنوان IP الخاص بخادمك
- المنفذ 80 متاح من الإنترنت (لتحدي HTTP-01)، أو
- القدرة على إضافة سجلات DNS TXT (لتحدي DNS-01)
- **إنشاء شهادة موقّعة ذاتيًا** - مدعومة من كل من عميل CLI
وعميل Flutter. يتم تضمين الشهادة المُنشأة تلقائيًا
في تكوين العميل المُصدَّر.
- **توفير مسار لشهادة موجودة** - استخدم ملفات الشهادة الخاصة بك
التي تم الحصول عليها من CA آخر أو أداة مثل [certbot][certbot].
- **مسار ملف لتخزين إعدادات مضيفي TLS** - المسار لتخزين ملف إعدادات مضيف TLS.
في هذه المرحلة، يتم إنشاء جميع ملفات التكوين المطلوبة وحفظها على القرص.
[certbot]: https://eff-certbot.readthedocs.io/en/stable/
#### دورة حياة شهادة Let's Encrypt
يمكن لمعالج الإعداد الحصول على شهادة Let's Encrypt أثناء الإعداد الأولي، لكنك مسؤول عن ضمان بقائها صالحة بمرور الوقت (التجديد وإعادة تحميل/إعادة تشغيل الخدمة).