أدلة ذات صلة
Tailscale بالتفصيل: كيف تتصل الأجهزة بعضها ببعض مباشرة
آخر تحديث
يمكن تلخيص ما يفعله Tailscale في جملة واحدة: يعطي كل جهاز تملكه عنوانًا داخليًا ثابتًا، ثم ينشئ بين الأجهزة أنفاق WireGuard مشفّرة مباشرة، دون أن تمر الحركة عبر خادم مركزي. وهو يقسم نظام الشبكة إلى نصفين: طبقة التحكم لا تفعل سوى التعرّف على الأشخاص وتوزيع المفاتيح وإخبار كل جهاز «أين الأجهزة الأخرى الآن»؛ وطبقة البيانات اتصالات مشفّرة من جهاز إلى جهاز، لا تمر حركتك فيها عبر خادم التحكم. الصعوبة أن أجهزة البيت والعمل تختبئ خلف الراوترات بلا عناوين عامة، فيصل Tailscale بينها مباشرة باختراق NAT، وإن تعذّر ذلك تمامًا استعان بخادم ترحيل. نشرح ذلك بهذا الترتيب.
الفرق بين الـ VPN التقليدي وTailscale: نجمة أم شبكة
الـ VPN التقليدي على شكل نجمة: كل الأجهزة تتصل بخادم VPN واحد، وإن أراد جهازان التواصل ذهبت الحركة أولًا إلى الخادم ثم عادت. الخادم عنق زجاجة ونقطة فشل واحدة: إن بطؤ بطؤ الجميع، وإن تعطّل انقطع الجميع.
أما Tailscale فشبكي (mesh): بين كل جهازين نفق مباشر خاص بهما. حين يصل الهاتف إلى NAS البيت، تذهب الحركة من الهاتف إلى NAS مباشرة، عبر أقصر طريق بينهما. ولا يحمل أي جهاز الحركة كلها.
ثمن الشبكة تعقيد الإدارة: عشرة أجهزة متصلة كل اثنين منها معًا تعني خمسة وأربعين نفقًا، وكل نفق يحتاج إلى تبادل المفاتيح ومعرفة العنوان الحالي للطرف الآخر. الصيانة اليدوية غير واقعية، وعمل Tailscale كله هو أتمتة ذلك.
طبقة التحكم: توزّع المفاتيح ودليل العناوين ولا تلمس الحركة
بعد تثبيت Tailscale يولّد كل جهاز زوج مفاتيح بنفسه؛ المفتاح الخاص يبقى على الجهاز إلى الأبد، والمفتاح العام يُسلَّم لخادم التحكم (يسمّيه Tailscale خادم التنسيق coordination server). وحين تسجّل الدخول بحسابك يعرف خادم التحكم «لمن هذا الجهاز».
لدى خادم التحكم جدول: المفتاح العام لكل جهاز، والعنوان الداخلي المخصص له، وعنوان الشبكة الذي يمكن الوصول إليه عبره حاليًا، وقواعد الوصول التي تحدد من يتصل بمن. يرسل إلى جهازك الصفوف التي يحق لك الوصول إليها، ومتى اتصل جهاز أو انقطع أو غيّر شبكته يُحدَّث الجدول ويُدفع إلى الأجهزة المعنية.
خادم التحكم لا يمرّر حركتك ولا يحصل على المفاتيح الخاصة، فلا يستطيع فك التواصل بين الأجهزة. إنه أشبه بموظف استقبال لا يفعل سوى توزيع دفتر العناوين وبطاقات الدخول: يخبرك أين الطرف الآخر وهل يحق لك الدخول، وما يُقال بعد الدخول لا يحضره.
تسجيل الدخول يعتمد على نظام الحسابات الذي لديك أصلًا (تسجيل دخول موحّد)، لا على كلمة مرور VPN منفصلة؛ ومفاتيح الأجهزة تنتهي صلاحيتها دوريًا وتحتاج إلى تأكيد بتسجيل دخول جديد، والجهاز الضائع يفقد صلاحية الوصول بمجرد حذفه من لوحة الإدارة.
طبقة البيانات: أنفاق WireGuard بين الأجهزة
ما ينقل البيانات فعلًا هو WireGuard. بعد أن يحصل كل جهاز على المفتاح العام لجهاز آخر يستطيع إنشاء نفق مشفّر معه، يعرف كل طرف فيه المفتاح العام للطرف الآخر، ولا يستطيع أحد في الوسط قراءته ولا تعديله.
لم يغيّر Tailscale شيئًا في جزء التشفير من WireGuard؛ ما يفعله هو الأمور التي لا يتولاها WireGuard نفسه: كيف تُوزَّع المفاتيح، وكيف تُخصَّص العناوين، وكيف تجد الأجهزة بعضها من جديد بعد تغيير الشبكة. مبدأ عمل WireGuard في WireGuard بالتفصيل.
لكل جهاز في هذه الشبكة عنوان داخلي ثابت (من النطاق الذي يبدأ بـ 100)، لا يتغير سواء كان متصلًا بإنترنت البيت أو شبكة الشركة أو بيانات الجوال. لذا تستطيع دائمًا الوصول إلى NAS البيت بالعنوان نفسه. ومع MagicDNS تستطيع الوصول باسم الجهاز مباشرة.
اختراق NAT: كيف يتصل جهازان مباشرة وكلاهما خلف راوتر
حاسوب البيت ليس له عنوان عام، ويخرج إلى الإنترنت عبر الراوتر الذي يترجم العناوين (NAT). والراوتر لا يسمح إلا بالاتصالات التي «بدأت من الداخل»، ويصدّ كل من يطرق الباب من الخارج. وحين يكون كل جهاز خلف راوتره، لا يستطيع أيٌّ منهما أن يفتح باب الآخر أولًا، وهذه هي صعوبة الاتصال المباشر بين جهازين.
طريقة Tailscale ثلاث خطوات. أولًا، يسأل كل جهاز خادمًا على الإنترنت العام: «من أي عنوان ومنفذ تراني أخرج؟»، فيعرف كيف يبدو من خارج الراوتر (هذا النوع من الخدمات يُسمّى STUN). ثانيًا، يتبادل الجهازان هذا العنوان الخارجي عبر خادم التحكم. ثالثًا، يرسل الطرفان حزمًا في الوقت نفسه إلى العنوان الخارجي للآخر: يرى كل راوتر أن الإرسال «بدأ من الداخل» فيفتح منفذًا للرد، وتدخل حزم الطرف الآخر من ذلك المنفذ تحديدًا، فيتم الاتصال. هذا ما يُسمّى «ثقب NAT».
الثقب يستخدم UDP. معظم راوترات المنازل تسمح به؛ لكن بعض الشبكات تترجم العناوين بطريقة صارمة جدًا (منفذ خارجي جديد لكل وجهة جديدة)، أو تحجب UDP كليًا، وحينها لا ينجح الثقب.
ترحيل DERP: من يتولى الأمر حين يتعذر الثقب
الثقب لا ينجح دائمًا، لذا جهّز Tailscale مجموعة من خوادم الترحيل اسمها DERP. حين يتعذر على جهازين الاتصال مؤقتًا، يتصل كلاهما بخادم DERP نفسه، فينقل هو الحزم المشفّرة إلى الطرف الآخر. وDERP يعمل عبر HTTPS (TCP 443)، الذي تسمح به كل الشبكات تقريبًا.
ما يمرّره خادم الترحيل حزم شفّرها WireGuard مسبقًا، وDERP لا يملك المفاتيح، فلا يرى إلا «من يرسل إلى من وبأي حجم»، لا المحتوى.
الاتصال يبدأ دائمًا عبر الترحيل: بمجرد اتصال الجهازين يتواصلان أولًا عبر DERP ليُضمن الاتصال فورًا؛ وفي الوقت نفسه يحاولان الثقب في الخلفية، ومتى نجح الاتصال المباشر انتقلا إليه بهدوء دون انقطاع. لذا من الطبيعي أن يكون زمن الاستجابة أعلى قليلًا في الثواني الأولى ثم ينخفض.
إن بقي الاتصال على الترحيل، فالسرعة وزمن الاستجابة يتوقفان على بُعد خادم الترحيل وانشغاله، وهو عادة أبطأ من الاتصال المباشر. وفي تطبيق Tailscale ترى هل الاتصال الحالي مباشر (direct) أم عبر ترحيل (relay).
نقطة الخروج وتوجيه الشبكة الفرعية: أكثر من وصول الأجهزة بعضها إلى بعض
- نقطة الخروج (exit node): حين تحدد جهازًا نقطة خروج، تُرسل كل حركة الإنترنت من أجهزتك الأخرى مشفّرة إليه أولًا، ثم تخرج من شبكته. والنتيجة مثل الـ VPN التقليدي: يظهر للخارج عنوان نقطة الخروج. ويمكن أن تكون نقطة الخروج حاسوبك في البيت، أو خادمًا يقدّمه مزوّد الخدمة.
- توجيه الشبكة الفرعية (subnet router): جهاز مثبّت عليه Tailscale يعمل وكيلًا عن الشبكة المحلية كلها التي هو فيها. فيُوصَل عبره إلى الطابعات والكاميرات وأجهزة NAS القديمة التي لا يمكن تثبيت Tailscale عليها.
- التحكم في الوصول (ACL): افتراضيًا تستطيع أجهزتك كلها الوصول بعضها إلى بعض، وفي استخدام الفرق يمكن كتابة قواعد تحدد أي الأشخاص وأي الأجهزة تصل إلى أي المنافذ. القواعد يرسلها خادم التحكم، وكل جهاز يطبّقها بنفسه.
- MagicDNS: يعطي كل جهاز اسمًا، فلا تحتاج إلى حفظ العناوين التي تبدأ بـ 100.
ما علاقته بـ WireGuard وبالـ VPN التقليدي
- مع WireGuard: WireGuard بروتوكول لنفق واحد، لا يهتم إلا بكيفية تواصل الطرفين بشكل مشفّر؛ ومفاتيح كل طرف وعنوان الطرف الآخر تضبطها يدويًا. أما Tailscale فنظام كامل مبني فوقه، يتولى عنك تسجيل الدخول وتوزيع المفاتيح وتخصيص العناوين واختراق NAT والترحيل.
- مع خدمات الـ VPN التقليدية: الـ VPN التقليدي يعني «كل الحركة إلى خادم واحد»، وتركيزه على تغيير نقطة الخروج؛ وتركيز Tailscale على «وصول الأجهزة بعضها إلى بعض»، وتغيير الخروج مجرد ميزة جانبية فيه (نقطة الخروج).
- مع أدوات كشف الشبكة الداخلية (مثل frp وOray): هذه تكشف منفذًا معينًا من الشبكة الداخلية على الإنترنت العام، فيصل إليه كل من يعرف العنوان، والأمان متروك لتلك الخدمة نفسها؛ أما Tailscale فلا يكشف أي منفذ، ولا يدخل إلا الأجهزة التي سجّلت الدخول باسمك.
- مع ZeroTier: الفكرة متقاربة، فكلاهما يبني الشبكة تلقائيًا؛ لكن ZeroTier يستخدم بروتوكوله الخاص ويحاكي شبكة من الطبقة الثانية، بينما يستخدم Tailscale WireGuard ويعمل في الطبقة الثالثة.
Headscale وخادم التحكم الخاص
تطبيقات Tailscale مفتوحة المصدر، أما خادم التحكم فخدمة تشغّلها الشركة. وHeadscale خادم تحكم مفتوح المصدر كتبه مجتمع المطوّرين، ويطبّق البروتوكول نفسه، ويمكن توجيه التطبيقات الرسمية إليه. وبهذا تبقى قائمة الأجهزة ودليل المفاتيح وقواعد الوصول في يدك.
خيار «الخادم المخصص» في التطبيق، أي Use custom server أو Use an alternate server، موجود لهذا الغرض: تُدخل عنوانًا، فلا يتصل التطبيق بخوادم شركة Tailscale بعد ذلك، بل بالخادم الذي حددته.
بعد التشغيل الذاتي، تُحدَّد طريقة تسجيل الدخول وعدد الأجهزة المسموح ونقاط الخروج المتاحة من قِبل مشغّل خادم التحكم هذا، ولا علاقة لها بالحصة المجانية ولا بالباقات المدفوعة لدى Tailscale الرسمية.
ما يجب معرفته عند استخدامه على شبكات الصين
- الثقب يعتمد على UDP. وكثير من خطوط الإنترنت في الصين تخنق UDP، والشبكات الداخلية الكبيرة لشركات الاتصالات (ترجمة عناوين متعددة الطبقات) تجعل نجاح الثقب أصعب، فاحتمال المرور عبر الترحيل أعلى منه خارج الصين.
- مع الترحيل تتوقف السرعة على مكان خادم الترحيل. إن كان بعيدًا ارتفع زمن الاستجابة، وهذا السبب الرئيسي لتفاوت تجربة Tailscale في الصين.
- شكل حزم WireGuard ثابت وغير مموّه، فقد يُتعرَّف عليه ويُخنق على الشبكات ذات الفحص الصارم. إنه أداة لبناء الشبكات، لا أداة مصممة لتجاوز الحجب.
- إبقاؤه مفعّلًا على الهاتف لا بأس به: النفق الخالي من الحركة لا يكاد يستهلك البطارية، والاتصال يعود بنفسه عند التنقل بين Wi‑Fi وبيانات الجوال.
كيف تستخدمه «خاصة» في LeoTun
قسم «خاصة» في LeoTun يستخدم تطبيق Tailscale الرسمي نفسه، موصولًا بخادم التحكم الذي نشغّله نحن: تسجّل الدخول بحسابك في هذا الموقع مرة واحدة، فيبقى الجهاز متصلًا دائمًا؛ ونوفّر نقاط خروج في مناطق مختلفة، فتختار المنطقة من قائمة Exit Node (نقطة الخروج) في التطبيق لتغيّر الخروج دون إعادة استيراد أي إعداد؛ والهاتف والحاسوب وNAS على الحساب نفسه يصل بعضها إلى بعض مباشرة.
ولأنك تسجّل الدخول إلى خادم التحكم في هذا الموقع، يُحسب عدد الأجهزة حسب باقة حسابك في الموقع، ولا علاقة له بحساب Tailscale الرسمي وحصته؛ وإن كان الجهاز قد سجّل الدخول سابقًا بحساب Tailscale رسمي، فسجّل الخروج منه أولًا ثم سجّل الدخول بحساب الموقع. خطوات التثبيت وتسجيل الدخول المصوّرة في ما هي «خاصة» (Tailscale)، والمدخل في صفحة «خاصة».
إن كانت شبكتك تقيّد UDP و«خاصة» بطيئة وغير ثابتة، يمكنك بالحساب نفسه الانتقال إلى طريقة اتصال أخرى؛ راجع أي طريقة اتصال تناسب أي حالة.
FAQ
هل تستطيع خوادم Tailscale رؤية حركتي؟
لا ترى المحتوى. خادم التحكم لا يحفظ إلا المفاتيح العامة وقائمة الأجهزة وقواعد الوصول، والمفاتيح الخاصة لا تغادر الأجهزة؛ وخوادم الترحيل تمرّر حزمًا مشفّرة مسبقًا دون أن تملك المفاتيح. ما تراه هو البيانات الوصفية: أي جهاز متصل، ومع من أنشأ اتصالًا.
ما العلاقة بين Tailscale وWireGuard؟
WireGuard هو بروتوكول النفق المشفّر في الأساس، وTailscale يضيف فوقه تسجيل الدخول بالحساب وتوزيع المفاتيح وتخصيص العناوين واختراق NAT والترحيل. يمكنك أن تعتبر WireGuard المحرّك، وTailscale السيارة الكاملة المركّب فيها المحرّك والجاهزة للقيادة.
لماذا يظهر أحيانًا أن الاتصال عبر ترحيل (relay) لا مباشر؟
هذا يعني أن الثقب بين الجهازين لم ينجح، والسبب المعتاد أن شبكة أحد الطرفين تحجب UDP، أو أن طريقة ترجمة العناوين صارمة جدًا. الترحيل يعمل كالمعتاد، لكن السرعة تتوقف على مكان خادم الترحيل. وتغيير الشبكة (مثل نقطة اتصال الهاتف) كثيرًا ما يتيح الاتصال المباشر.
ما هو DERP؟
خوادم الترحيل في Tailscale. حين يتعذر الاتصال المباشر بين جهازين، تمرّر الحزم المشفّرة بينهما؛ وعند اتصال الجهاز أول مرة يتواصل عبرها أولًا. وهي تعمل عبر HTTPS، فتعبر حتى الشبكات التي لا تسمح إلا بحركة الويب.
ما الفرق بين نقطة الخروج والـ VPN العادي؟
النتيجة واحدة: تخرج كل حركة الإنترنت من مكان آخر. الفرق أن نقطة الخروج مجرد جهاز في الشبكة، يمكنك في أي وقت تغييرها من القائمة إلى جهاز آخر أو إيقافها، دون إعادة ضبط، ودون أن يتأثر وصول الأجهزة بعضها إلى بعض.
ما هو Headscale؟
تطبيق مفتوح المصدر لخادم تحكم Tailscale. وجّه عنوان خادم التحكم في التطبيق الرسمي إليه، فتحصل على نظام شبكة في يدك، وتبقى طبقة البيانات WireGuard والتطبيق هو الرسمي.
هل يتجاوز Tailscale الحجب؟
هو في الأساس أداة لبناء الشبكات: لا تخرج الحركة من خارج البلد إلا إن كان في شبكتك جهاز موجود في الخارج وجعلته نقطة خروج. وحركته غير مموّهة، وقد لا تعمل جيدًا على الشبكات التي تقيّد UDP. وإن احتجت إلى خط دولي ثابت، فانظر الطرق الأخرى في أي طريقة اتصال تناسب أي حالة.