
TrustTunnel v1.1.0
بروتوكول VPN مفتوح المصدر يقوم بتوجيه حركة المرور TCP و UDP و ICMP عبر HTTPS، متجاوزًا DPI والتقييد. يتميز بتقسيم النفق، وكيل SOCKS5، DNS مخصص، وعملاء عبر المنصات المختلفة.
العملاء · متجر التطبيقات · متجر بلاي
جدول المحتويات
مقدمة
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.
ميزات العميل
-
نفق المرور: المكتبة قادرة على إنشاء نفق لحركة مرور TCP وUDP وICMP من العميل إلى النقطة الطرفية والعودة.
-
دعم عبر المنصات: تدعم منصات Linux وmacOS وWindows، مما يوفر تجربة متسقة عبر أنظمة تشغيل مختلفة.
-
نفق على مستوى النظام ووكيل SOCKS5: يمكن إعداده كنفق على مستوى النظام، باستخدام واجهة شبكة افتراضية، بالإضافة إلى وكيل SOCKS5.
-
النفق المقسم: تدعم المكتبة النفق المقسم، مما يسمح للمستخدمين باستبعاد الاتصالات إلى نطاقات أو مضيفين معينة من التوجيه عبر نقطة VPN الطرفية، أو العكس، توجيه الاتصالات فقط إلى نطاقات أو مضيفين معينة عبر النقطة الطرفية بناءً على قائمة استبعاد.
-
مغير DNS مخصص: يمكن للمستخدمين تحديد مغير DNS مخصص، والذي يُستخدم لاستعلامات DNS الموجهة عبر نقطة VPN الطرفية.
بداية سريعة
إعداد النقطة الطرفية
تثبيت النقطة الطرفية
يتوفر نص تثبيت يمكن تشغيله بالأمر التالي:
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -
سوف يقوم نص التثبيت بتنزيل الحزمة المُجمّعة مسبقًا من أحدث إصدار على GitHub
للهندسة المعمارية المناسبة للنظام وفك ضغطها إلى
/opt/trusttunnel. يمكن تجاوز دليل الإخراج بتحديد
العلم -o DIR في نهاية الأمر أعلاه.
إذا كنت تريد تثبيت إصدار معين (بدلاً من الأحدث)، استخدم -V <version>:
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).
تحديث النقطة الطرفية
يقوم نص التثبيت دائمًا بتثبيت أحدث إصدار متاح. لذا، لتحديث التثبيت، قم بتشغيل أمر التثبيت مرة أخرى:
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -
يؤدي هذا إلى إعادة تشغيل المثبت واستبدال الملفات الثنائية في دليل التثبيت
(/opt/trusttunnel افتراضيًا، أو الدليل الذي حددته باستخدام -o DIR).
[!NOTE] لا تنسَ إيقاف النقطة الطرفية قبل التحديث:
sudo systemctl stop trusttunnelلتشغيل النقطة الطرفية مرة أخرى بعد التحديث:
sudo systemctl start trusttunnel
معالج تكوين النقطة الطرفية
يُرجى الرجوع إلى CONFIGURATION.md للحصول على توثيق أكثر تفصيلاً حول كيفية تكوين النقطة الطرفية.
يحتوي دليل التثبيت على الملف الثنائي setup_wizard الذي يساعد في إنشاء
ملفات التكوين المطلوبة لتشغيل النقطة الطرفية:
cd /opt/trusttunnel/
./setup_wizard -h
يدعم معالج الإعداد الوضع التفاعلي، لذا يمكنك تشغيله وسيطلب البيانات المطلوبة لتكوين النقطة الطرفية.
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 لا يدعم الشهادات الموقعة ذاتيًا حتى الآن.
- توفير مسار لشهادة موجودة - استخدم ملفات الشهادات الخاصة بك التي تم الحصول عليها من مرجع مصدق آخر أو أداة مثل certbot.
- إصدار شهادة Let's Encrypt (يتطلب نطاقًا عامًا) - يدعم معالج الإعداد
ACME المدمج ويمكنه الحصول تلقائيًا على شهادة مجانية
موثوقة من Let's Encrypt. ستحتاج إلى:
-
مسار ملف لتخزين إعدادات مضيفات TLS - المسار لتخزين ملف إعدادات مضيفات TLS.
في هذه المرحلة، يتم إنشاء جميع ملفات التكوين المطلوبة وحفظها على القرص.
دورة حياة شهادة Let's Encrypt
يمكن لمعالج الإعداد الحصول على شهادة Let's Encrypt أثناء الإعداد الأولي، ولكنك مسؤول عن ضمان بقائها صالحة بمرور الوقت (التجديد وإعادة تحميل/إعادة تشغيل الخدمة).
إذا كنت تستخدم Certbot لإدارة الشهادات وتجديدها تلقائيًا، فاتبع الدليل في CERT_RENEWAL.md.
تشغيل النقطة الطرفية
تحتوي الحزمة المثبتة على قالب خدمة systemd، باسم
trusttunnel.service.template.
يمكن استخدام هذا القالب لإعداد النقطة الطرفية كخدمة systemd:
[!NOTE] يفترض ملف القالب أن ملف TrustTunnel Endpoint الثنائي وجميع ملفات التكوين الخاصة به موجودة في
/opt/trusttunnelولها أسماء الملفات الافتراضية. قم بتعديل القالب إذا كنت قد استخدمت مسارات مختلفة.
cd /opt/trusttunnel/
cp trusttunnel.service.template /etc/systemd/system/trusttunnel.service
sudo systemctl daemon-reload
sudo systemctl enable --now trusttunnel
تصدير تكوين العميل
يمكن للملف الثنائي للنقطة الطرفية إنشاء تكوينات العميل بتنسيقين:
تنسيق الرابط العميق (الافتراضي)
قم بإنشاء URI مضغوط من النوع tt://? مناسب لأكواد QR وتطبيقات الهاتف المحمول:
# <client_name> - اسم العميل الذي سيتم تضمين بيانات اعتماده في التكوين
# <address> - `ip`، `ip:port`، `domain`، أو `domain:port` الذي سيستخدمه العميل للاتصال
# إذا تم تحديد `ip` أو `domain` فقط، فسيتم استخدام المنفذ من حقل `listen_address`
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address>
# أو حدد التنسيق صراحة:
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> --format deeplink
يخرج هذا URI رابط عميق tt://? يمكن:
- مشاركته مباشرة مع عملاء الهاتف المحمول
- استخدامه مع عميل CLI أو عميل TrustTunnel Flutter
يمكنك أيضًا تقديم خيارات إضافية:
--name <display_name>: تعيين اسم عرض مخصص للخادم في تطبيق العميل.--dns-upstream <dns_upstream>: تحديد مغير DNS للعميل. يمكن أن يكون عنوان IP أو URI DNS آمن (على سبيل المثال،tls://1.1.1.1،https://dns.google/dns-query). يمكن استخدام هذا العلم عدة مرات لتوفير قائمة بمغيرات DNS.
مثال مع اسم مخصص ومغيرات DNS:
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> \
--name "My Secure VPN" \
--dns-upstream 1.1.1.1 --dns-upstream tls://8.8.8.8
عند استخدام --generate-client-random-prefix، تقوم النقطة الطرفية أيضًا بإلحاق
قاعدة السماح بالقيمة المُنشأة بملف rules.toml المشار إليه من
vpn.toml.
ملاحظة: إذا كانت شهادتك موقعة من قبل مرجع مصدق موثوق (مثل Let's Encrypt)، فسيتم حذفها تلقائيًا من الرابط العميق للحفاظ على صغره. يتم تضمين الشهادات الموقعة ذاتيًا تلقائيًا.
تنسيق TOML (لعميل CLI)
قم بإنشاء ملف تكوين TOML تقليدي:
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <public_ip> --format toml
يخرج هذا ملف تكوين TOML مناسب لعميل CLI.
يحتوي كلا التنسيقين على جميع المعلومات اللازمة للاتصال بالنقطة الطرفية. راجع توثيق عميل TrustTunnel Flutter للحصول على إرشادات الإعداد.
تهانينا! لقد انتهيت من إعداد النقطة الطرفية!
إعداد العميل
تتوفر عملاء متعددون للاتصال بالنقطة الطرفية — راجع قسم العملاء للحصول على القائمة الكاملة. تغطي الإرشادات أدناه إعداد عميل CLI الرسمي.
تثبيت العميل
Linux / macOS
يتوفر نص تثبيت:
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -
سوف يقوم نص التثبيت بتنزيل الحزمة المُجمّعة مسبقًا من أحدث إصدار على GitHub للهندسة المعمارية المناسبة للنظام وفك ضغطها إلى /opt/trusttunnel_client. يمكن تجاوز دليل الإخراج بتحديد العلم -o DIR في نهاية الأمر أعلاه.
[!NOTE] يدعم نص التثبيت هياكل x86_64، aarch64، armv7، mips و mipsel لأنظمة linux و arm64 و x86_64 لأنظمة macos.
Windows
قم بتنزيل أحدث أرشيف إصدار من صفحة إصدارات TrustTunnel Client.
استخرج الأرشيف إلى دليل من اختيارك، على سبيل المثال C:\TrustTunnel\.
إعداد الموجه
لنشر الموجه، يُرجى الرجوع إلى أدلة تثبيت العميل الخاصة بالموجه.
- موجهات Keenetic: TrustTunnel-Keenetic (دليل باللغة الروسية)
تحديث العميل
Linux / macOS
يقوم نص التثبيت دائمًا بتثبيت أحدث إصدار متاح. لذا، لتحديث التثبيت، قم بتشغيل أمر التثبيت مرة أخرى:
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -
يؤدي هذا إلى إعادة تشغيل المثبت واستبدال الملفات الثنائية في دليل التثبيت (/opt/trusttunnel_client افتراضيًا، أو الدليل الذي حددته باستخدام -o DIR).
[!NOTE] لا تنسَ إيقاف العميل قبل التحديث (على سبيل المثال، عن طريق إيقاف العملية الجارية).
Windows
قم بتنزيل أحدث إصدار من صفحة الإصدارات واستبدل الملفات في دليل التثبيت الخاص بك.
معالج تكوين العميل
يحتوي دليل التثبيت على الملف الثنائي setup_wizard الذي يساعد في إنشاء
ملفات التكوين المطلوبة لتشغيل العميل.
Linux / macOS
cd /opt/trusttunnel_client/
./setup_wizard -h
لتكوين العميل لاستخدام التكوين الذي تم إنشاؤه بواسطة النقطة الطرفية، قم بتشغيل الأمر التالي:
./setup_wizard --mode non-interactive \
--endpoint_config <endpoint_config> \
--settings trusttunnel_client.toml
Windows
setup_wizard.exe --mode non-interactive ^
--endpoint_config <endpoint_config> ^
--settings trusttunnel_client.toml
في كلتا الحالتين، <endpoint_config> هو المسار لملف التكوين
الذي تم إنشاؤه بواسطة النقطة الطرفية.
سيحتوي trusttunnel_client.toml على جميع التكوينات المطلوبة
للعميل.
[!TIP] يحتوي التكوين المُنشأ على إعدادات أساسية للاتصال بالنقطة الطرفية. للحصول على ميزات متقدمة، قم بتحرير
trusttunnel_client.tomlمباشرة. يمكنك تكوين:
- وضع VPN: توجيه كل حركة المرور (
general) أو وجهات محددة فقط (selective)- مفتاح القتل: حظر حركة المرور عند قطع اتصال VPN
- مغيرات DNS: محللات DNS مخصصة (يدعم DoH، DoT، DoQ)
- الاستثناءات: النطاقات/عناوين IP التي سيتم تجاوزها أو توجيهها عبر VPN
- نوع المستمع: جهاز TUN أو وكيل SOCKS5
راجع README عميل TrustTunnel CLI لجميع الخيارات المتاحة.
[!NOTE] بعد تحرير التكوين، أعد تشغيل العميل لتصبح التغييرات سارية المفعول.
تشغيل العميل
Linux / macOS
cd /opt/trusttunnel_client/
sudo ./trusttunnel_client -c trusttunnel_client.toml
sudo مطلوب لإعداد المسارات وواجهة tun.
Windows
افتح نافذة طرفية كمسؤول وقم بتشغيل:
trusttunnel_client.exe -c trusttunnel_client.toml
صلاحيات المسؤول مطلوبة لإعداد المسارات وواجهة TUN.
العملاء
رسمي
CLI
عميل TrustTunnel — Linux، macOS، Windows
GUI
عميل TrustTunnel Flutter — iOS، Android (macOS، Windows — قريبًا). متاح على متجر التطبيقات* و متجر بلاي.
[!NOTE] * في بعض البلدان، تطبيق iOS غير متاح في متجر التطبيقات. قد تحتاج إلى Apple ID من بلد آخر لتنزيله. تعلم كيفية تغيير بلد متجر التطبيقات.
مجتمع
[!NOTE] عملاء المجتمع يتم تطويرهم وصيانتهم بشكل مستقل. لا يتم دعمهم رسميًا من قبل فريق TrustTunnel.
GUI
Trusty - عميل GUI عبر المنصات مبني باستخدام Flutter (Windows مستقر، macOS تجريبي). يتضمن سجلات في الوقت الفعلي، ونشر خادم SSH بنقرة واحدة، واكتشاف تلقائي لمجموعات النطاقات للنفق المقسم.
TrustTunnel-GUI-Client — عميل GUI لنظام Windows، تم تنفيذه كغلاف Python لـ عميل TrustTunnel
Surge — (تجاري) صندوق أدوات شبكة لـ macOS و iOS مع دعم تجريبي لـ TrustTunnel
FireTunnel - عميل عبر المنصات مكتوب بلغة QT يستخدم عميل TrustTunnel معدلًا
انظر أيضًا
- CONFIGURATION.md - وثائق التكوين
- DEVELOPMENT.md - وثائق التطوير
- PROTOCOL.md - مواصفات البروتوكول
- CHANGELOG.md - سجل التغييرات
- VERIFY_RELEASES.md - كيفية التحقق من الإصدارات
الخريطة الزمنية
بينما يدعم VPN الخاص بنا حاليًا إنشاء نفق لحركة مرور TCP/UDP/ICMP، نخطط لإضافة دعم الاتصالات من نظير إلى نظير بين العملاء.
ترقبوا هذه الميزة في الإصدارات القادمة.
الترخيص
هذا المشروع مرخص بموجب ترخيص Apache 2.0. انظر LICENSE للحصول على التفاصيل.