WireGuard أم Tailscale أم Headscale: ماذا تختار؟
Tailscale هو WireGuard مع خادم تنسيق يوزّع المفاتيح والعناوين ويعبر NAT. تعرّف إلى كلفة ذلك، ومتى يناسبك WireGuard أو Headscale على VPS.
WireGuard مقابل Tailscale: الإجابة المختصرة
المقارنة بين WireGuard وTailscale ليست اختيارًا بين بروتوكولين، لأن Tailscale هو WireGuard نفسه. يستخدم Tailscale التشفير نفسه والنفق نفسه، ثم يضيف مستوى تحكم: خادم تنسيق يتبادل المفاتيح العامة، ويوزّع العناوين، وينشئ ثقوبًا عبر NAT (ترجمة عناوين الشبكة)، ويطبّق سياسة وصول. أنت تختار مقدار هذا التنسيق الذي تريد تشغيله بنفسك.
هناك ثلاث إجابات واضحة. استخدم WireGuard العادي عندما يكون لديك خادم واحد وعدد قليل من العملاء الذين يتصلون به جميعًا. استخدم Tailscale عندما تريد أن يتمكن كل جهاز من الوصول إلى جميع الأجهزة الأخرى من دون صيانة ملف إعداد. استخدم Headscale عندما تريد هذه الشبكة المتداخلة، لكنك لا تريد أن يحتفظ طرف ثالث بقائمة العقد.
ما الذي يوفّره مستوى التحكم فعليًا
لا يوفر WireGuard العادي آلية لاكتشاف الأجهزة. كل نظير عبارة عن كتلة نصية تكتبها يدويًا: مفتاح عام، وسطر AllowedIPs، وEndpoint إذا كان الوصول إلى ذلك النظير ممكنًا. إضافة جهاز واحد إلى شبكة تضم عشرة أجهزة تعني تعديل 10 ملفات إعداد، لأن كل جانب يحتاج إلى مفتاح الجانب الآخر. لذلك تعتمد معظم إعدادات WireGuard المستضافة ذاتيًا على بنية المحور والأطراف: خادم واحد بعنوان IP عام، وعملاء لا يتصلون إلا به.
يلغي مستوى التحكم الحاجة إلى التعديل اليدوي. يسجّل كل جهاز نفسه مرة واحدة، ويتلقى عنوانًا من نطاق 100.64.0.0/10 CGNAT (ترجمة عناوين الشبكة على مستوى الناقل)، ويحصل على المفاتيح العامة للأجهزة المسموح له بالوصول إليها. يظل النفق اتصال WireGuard مباشرًا بين نظيرين، ولا تمر حركة الشبكة عبر خادم التنسيق. أما ما يحتفظ به الخادم فهو البيانات الوصفية: الأجهزة الموجودة، والمفتاح الخاص بكل جهاز، والأجهزة التي يُسمح لها بالاتصال ببعضها.
ينتج عن ذلك ثلاثة أمور عملية.
اجتياز NAT. لا يملك حاسوبا محمولان خلف موجهي شبكة منزليين عنوان IP عامًا مشتركًا يمكنهما استخدامه للاتصال المباشر. يستخدم Tailscale STUN (أدوات اجتياز الجلسات لـ NAT) لاكتشاف العنوان والمنفذ الخارجيين لكل طرف، ثم يرسل الطرفان الحزم في الوقت نفسه، بحيث يرى كل موجّه تدفقًا صادرًا أولًا ويقبل الرد. عند فشل ذلك، تعود حركة الشبكة إلى مرحّل DERP، وهو مرحّل مشفّر يديره Tailscale. تظل بياناتك مشفّرة من طرف إلى طرف عبر المرحّل، لأن المرحّل لا يحتفظ بالمفاتيح. شغّل tailscale status، ويعرض كل سطر لنظير direct أو relay. شغّل tailscale netcheck لمعرفة المرحّل الأقرب وما إذا كانت شبكتك تسمح بـ UDP أصلًا.
تدوير المفاتيح مع انتهاء الصلاحية. لا تنتهي صلاحية مفاتيح WireGuard. يعمل المفتاح الذي أصدرته قبل 3 سنوات إلى الأبد، ما لم تحذف كتلة النظير يدويًا. أما Tailscale فينهي صلاحية مفاتيح الأجهزة بدلًا من ذلك. واعتبارًا من July 2026، تبلغ مدة انتهاء الصلاحية الافتراضية في tailnet جديد 180 يومًا. يتوقف الجهاز الذي لم يُعد المصادقة عن الاتصال. يمكنك تعطيل انتهاء الصلاحية لكل جهاز على حدة لخادم أو لموجّه شبكة فرعية لن يكون أحد موجودًا لتسجيل الدخول إليه.
السياسة بدلًا من التوجيه. في WireGuard العادي، يكون AllowedIPs جدول التوجيه وقائمة التحكم في الوصول في الوقت نفسه، لذلك يجب التعبير عن عبارة «يُسمح لـ alice بالوصول إلى قاعدة البيانات» باستخدام نطاق IP. يحتفظ Tailscale بملف سياسة منفصل، حيث تسمّي القواعد المستخدمين والمجموعات والوسوم. يمكن لقاعدة أن تنص على أن tag:laptop يُسمح له بالوصول إلى tag:db على المنفذ 5432 فقط، وأن تمنعه من أي شيء آخر. وتظل هذه القاعدة سارية حتى إذا حصل الجهاز على عنوان جديد.
ما الذي تكلّفك به طبقة التحكم
يعرف خادم التنسيق شبكتك. ويحتفظ بالمفتاح العام لكل عقدة، واسم كل عقدة، والعناوين التي وُزّعت، والسياسة. عند استخدام Tailscale المُستضاف، تكون هذه المعلومات لدى شركة لا تملك السيطرة عليها. لا تستطيع الشركة قراءة حزمك، لأن المفاتيح الخاصة بـ WireGuard تبقى على أجهزتك. لكنها تستطيع رؤية بنية شبكتك، وتعتمد قدرتك على الاتصال على استمرار خدمتها وعلى بقاء حسابك بحالة جيدة.
هناك تكلفة ثانية يسهل إغفالها. يعمل Tailscale كخدمة daemon على كل جهاز، لذلك عليك إبقاؤه محدّثًا بالتصحيحات على كل جهاز. أما WireGuard العادي على Ubuntu 24.04 فهو وحدة kernel تأتي مع التوزيعة وتتلقى تحديثاتها مع kernel.
التكلفة الثالثة هي الفوترة. اعتبارًا من July 2026، تكون خطة Personal مجانية مع أجهزة غير محدودة لما يصل إلى 6 مستخدمين، وتبلغ تكلفة Standard $8 لكل مستخدم شهريًا، وتبلغ تكلفة Premium $18 لكل مستخدم شهريًا. تبقى الأسرة المكوّنة من عدة أفراد ضمن الخطة المجانية. أما الفريق المؤلف من 10 أشخاص فلا يبقى مجانيًا.
متى يكون WireGuard العادي هو الخيار الصحيح
اختر WireGuard العادي عندما تكون البنية الطوبولوجية فعليًا على شكل محور وأطراف. لديك VPS واحد بعنوان IP عام، وثلاثة أو أربعة أجهزة تتصل به، ولا تحتاج هذه الأجهزة إلى الوصول إلى بعضها. يتسع الإعداد في شاشة واحدة، ولا توجد خدمة daemon تحتاج إلى تحديث، ولا حساب يمكن فقدانه، ولا توجد خدمة خارجية بينك وبين خادمك.
ويكون هذا الخيار مناسبًا أيضًا عندما تريد فهم الطبقة التي تُبنى عليها كل المكونات الأخرى. يشرح استضافة شبكة WireGuard VPN ذاتيًا على VPS إنشاء المفاتيح، وwg0.conf، وإعادة توجيه IP، وNAT، وفشل المصافحة. وتظل كل هذه الآليات قيد التشغيل تحت tailnet. وإذا كنت لا تزال تقيّم الخيار الأقدم، فتوضح WireGuard مقابل OpenVPN الحالات الأربع التي يحتفظ فيها OpenVPN بميزة.
التثبيت قصير:
sudo apt update && sudo apt install -y wireguard
sudo modprobe wireguard && echo okيتوقف WireGuard العادي عن كونه عمليًا عندما يجب أن يصل كل جهاز إلى جميع الأجهزة الأخرى. تتطلب الشبكة الكاملة بين N عقد عددًا قدره N مضروبًا في N ناقص واحد من كتل النظراء. وعند وجود ستة أجهزة، يعني ذلك ثلاثين كتلة يجب مزامنتها يدويًا. كما أن إدخال AllowedIPs مكررًا يستولي بصمت على حركة الشبكة من النظير الذي كان يستخدمه أولًا، من دون طباعة أي خطأ في أي مكان.
متى يكون Tailscale هو الخيار المناسب
اختر Tailscale عندما تتحرك الأجهزة. مثل أجهزة الكمبيوتر المحمولة على شبكات الفنادق، والهاتف الذي يستخدم بيانات الهاتف المحمول، والخادم المنزلي الموجود خلف جهاز توجيه لا تتحكم فيه. هذه هي الحالات التي يتعامل معها WireGuard العادي بشكل سيئ، لأن أيا من الطرفين لا يملك نقطة نهاية عامة ثابتة لوضعها في Endpoint.
يتم تثبيت العميل باستخدام أمر واحد من المثبّت الرسمي:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
tailscale statusيطبع tailscale up عنوان URL. افتحه، وسجّل الدخول، وسينضم الجهاز إلى الشبكة. لا تحتاج إلى نسخ مفتاح أو فتح منفذ وارد، لأن الخدمة تنشئ اتصالا صادرا إلى خادم التنسيق وتحافظ عليه مفتوحا. ولهذا السبب أيضا تعمل عقدة Tailscale على شبكة لا تتحكم فيها بأي جدار حماية على الإطلاق.
بعد ذلك، ينجز إعدادان معظم الوظائف المفيدة. يعلن موجّه الشبكة الفرعية عن شبكة LAN كاملة داخل الشبكة، لذلك لا تحتاج إلى تثبيت العميل على كل جهاز:
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
sudo tailscale set --advertise-routes=192.0.2.0/24يبقى المسار غير نشط حتى توافق عليه في وحدة تحكم الإدارة. هذا مقصود، إذ لا يمكن لعقدة أن تضخ مسارا في شبكتك من تلقاء نفسها. تحتاج عملاء Linux أيضا إلى sudo tailscale set --accept-routes، لأن Linux لا يقبل المسارات المعلنة افتراضيا. لذلك يظل المسار، حتى إذا ظهر معتمدا من جهة الخادم، بلا تأثير على كمبيوتر محمول يعمل بنظام Linux إلى أن تضبط ذلك.
ترسل عقدة الخروج كل حركة مرور العميل عبر جهاز واحد. وهذا هو سلوك النفق الكامل الذي يقصده الناس عادة بعبارة "VPN":
sudo tailscale set --advertise-exit-nodeمتى يكون Headscale هو الخيار المناسب
Headscale هو تطبيق مفتوح المصدر لخادم التنسيق، ويعمل على VPS تملكه. تشير عملاء Tailscale الرسميون إليه بدلًا من الخدمة المستضافة:
sudo tailscale up --login-server https://headscale.example.comلا يتغير شيء في مسار البيانات. يظل الاتصال باستخدام WireGuard، ويظل مباشرًا بين الأقران عندما تسمح الشبكة بذلك. التغيير هو أن قائمة العقد والمفاتيح والسياسة تُخزَّن في ملف SQLite على قرص تملكه. لا يستطيع أي طرف من الخارج رؤية بنية شبكتك أو تعطيل حسابك أو فرض رسوم عليك لكل مستخدم.
يتطلب ذلك جهدًا فعليًا. أنت الآن تدير خدمة HTTPS عامة، وهذا يعني اسم DNS وشهادة ووكيلًا عكسيًا يمرر ترقيات WebSocket بشكل صحيح. أنت مسؤول عن استمرارية تشغيلها. إذا تعطل خادم التنسيق، فلن تتمكن العقد الجديدة من التسجيل، ولن تتمكن العقد الحالية من معرفة التغييرات. كما أن Headscale لم يصل بعد إلى الإصدار 1.0، وقد تضمنت إصداراته الثانوية تغييرات تؤدي إلى عدم التوافق. لذلك اقرأ سجل التغييرات قبل كل ترقية. يشرح تشغيل Headscale كخادم تحكم Tailscale الخاص بك التثبيت وconfig.yaml ومفاتيح المصادقة المسبقة والمنافذ التي يجب فتحها.
هناك نقطة مهمة يكتشفها بعض المستخدمين متأخرًا. لا يأتي Headscale مع شبكة الترحيل العالمية الخاصة بـ Tailscale. عندما يتعذر على أقران الاتصال مباشرة، يمكنك إما تفعيل الترحيل المضمّن على خادمك أو توجيه الإعدادات إلى خادم آخر. في هذه الحالة يكون الترحيل خادمًا واحدًا في منطقة واحدة، وليس مجموعة خوادم منتشرة حول العالم. ويشعر الأقران الموجودون في الجانب الآخر من الكوكب بهذا الفرق.
كيفية اتخاذ القرار في خطوة واحدة
اسأل عن عدد الأجهزة التي يجب أن تتصل ببعضها. إذا كانت الإجابة أن جميعها تتصل بالخادم فقط، فإن WireGuard العادي يتطلب برامج أقل لتحقيق النتيجة نفسها.
اسأل عما إذا كانت للأجهزة عناوين عامة ثابتة. إذا كان معظمها خلف NAT لا تتحكم فيه، فأنت بحاجة إلى مستوى تحكم، لأن اجتياز NAT هو الجزء الصعب، ولا يستحق الأمر إعادة بنائه.
اسأل عمن يُسمح له بمعرفة بنية شبكتك. إذا كانت الإجابة تستبعد الشركات الخارجية، أو كان عدد المستخدمين يجعل الفوترة لكل مستخدم مرهقة، فشغّل Headscale وتقبّل أنك ستدير خادم التحكم الآن.
يمكنك تغيير قرارك بتكلفة منخفضة. بما أن مستوى البيانات يستخدم البروتوكول نفسه في الخيارات الثلاثة، فإن الانتقال من WireGuard العادي إلى شبكة متداخلة منسقة يتطلب تثبيت العميل فقط، وليس إعادة تصميم. والانتقال من Tailscale إلى Headscale يتطلب إعادة تسجيل كل عقدة في خادم تسجيل دخول مختلف.
ما الذي لا توفره أيٌّ من الخيارات الثلاثة
لا يُعد أيٌّ منها جدارًا ناريًا. يحدد النفق الحزم التي ينقلها، ولا يحدد الخدمات التي تستمع. يظل الخادم الذي يمكن الوصول إليه عبر النفق متاحًا من الإنترنت على أي منفذ تركته مفتوحًا، لذلك احرص على استمرار قواعد جدار UFW الناري على VPS في أداء وظيفتها. يضيّق ملف سياسات Tailscale نطاق وصول العقد الأخرى، لكنه لا يؤثر في الواجهة العامة.
لا يوفر أيٌّ منها مصادقة لكل خدمة، ولا يسجل ما فعله المستخدم بعد الاتصال. تعامل مع الخيارات الثلاثة كلها باعتبارها وسائل نقل، وضع عمليات التحقق من تسجيل الدخول في التطبيق.
FAQ
هل Tailscale هو WireGuard فقط مع خطوات إضافية؟
يستخدم Tailscale بروتوكول WireGuard لمسار البيانات، لذلك تكون التشفيرات والنفق متماثلين. لكنه يضيف التنسيق، ويشمل ذلك تبادل المفاتيح، وتعيين العناوين، واجتياز NAT باستخدام مرحلات STUN وDERP، وانتهاء صلاحية المفاتيح، وملف سياسات يحدد المستخدمين بدلًا من نطاقات IP. يترك WireGuard العادي هذه المهام لك. وتصبح هذه المهام معقدة عندما تنتقل الأجهزة بين الشبكات.
هل تمر بياناتي عبر خوادم Tailscale؟
عادةً لا. يتصل النظراء مباشرةً بعضهم ببعض بعد أن يعرّفهم خادم التنسيق، ويعرض tailscale status قيمة direct في أسطر هؤلاء النظراء. عندما يتعذر إنشاء مسار مباشر، تعود حركة المرور إلى مرحل DERP، ويظهر السطر relay. حتى في هذه الحالة، ينقل المرحل حزمًا مشفرة ولا يحتفظ بمفاتيح WireGuard الخاصة بك، لذلك لا يمكنه قراءة محتواها. شغّل tailscale netcheck لمعرفة ما إذا كانت شبكتك تحظر UDP الذي تحتاج إليه الاتصالات المباشرة.
هل يمكنني استخدام Headscale مع تطبيقات Tailscale الرسمية؟
نعم. يستخدم Headscale بروتوكول التحكم نفسه، لذلك تنضم العملاء الرسمية باستخدام sudo tailscale up --login-server https://headscale.example.com. ويمكن توجيه تطبيقات سطح المكتب والأجهزة المحمولة إلى خادم تسجيل دخول مخصص أيضًا، مع اختلاف موضع هذا الإعداد على كل منصة. وتحتاج تطبيقات الأجهزة المحمولة غالبًا إلى إصدار محدد. اختبر هاتفًا واحدًا قبل نقل شبكة كاملة.
هل ما زلت بحاجة إلى فتح منافذ لـ Tailscale أو Headscale؟
لا يحتاج عميل Tailscale إلى منفذ وارد، لأنه يتصل بخادم التنسيق اتصالًا صادرًا ويحافظ على هذا الاتصال مفتوحًا. أما خادم Headscale المستضاف ذاتيًا فيحتاج إلى منافذ واردة: 443 لبروتوكول التحكم، و80 إذا كنت تستخدم تحدي شهادة HTTP-01، و3478/udp فقط عند تمكين المرحل المضمّن. يحتاج WireGuard العادي إلى فتح منفذ الاستماع الخاص به عبر UDP، وعادةً يكون 51820، على الخادم وعلى أي جدار حماية شبكي منفصل يديره مزود الخدمة لديك.
أيّ الخيارات الثلاثة أسرع؟
تكون سرعة النقل متماثلة، لأن الخيارات الثلاثة تنقل الحزم باستخدام WireGuard. يظهر الفرق في إعداد الاتصال وفي جودة المسار. يتصل WireGuard العادي مباشرةً في كل مرة عند ضبط Endpoint ضبطًا صحيحًا. يتصل Tailscale وHeadscale مباشرةً في معظم الأوقات، ويستخدمان مرحلًا عند حظر الشبكة لمحاولة اختراق NAT، ويضيف المسار المرحّل زمن تأخير. قِس مسارك باستخدام tailscale ping <node>، الذي يوضح ما إذا كان المسار مباشرًا أو مرحّلًا، أو باستخدام iperf3 عبر النفق.