STACKDUST
EN
واجهة طرفية لأداة Tailcat وشعار WireGuard وقط Tailcat

أداة Tailcat: تشغيل مسار بيانات WireGuard بدون خوادم تحكم أو حسابات من Tailscale


أداة Tailcat: تشغيل مسار بيانات WireGuard بدون خوادم تحكم أو حسابات من Tailscale

أعلن براد فيتزباتريك، الشريك المؤسس لشركة Tailscale ومبتكر نظامي Memcached وLiveJournal، عن إطلاق أداة ومكتبة Tailcat مفتوحة المصدر بلغة Go. تهدف الأداة إلى استخلاص مسار البيانات الأساسي لشبكات Tailscale، والمكون من بروتوكول التشفير WireGuard وتقنيات عبور ترجمة عناوين الشبكة (NAT Traversal) ومرحلات التوجيه الاحتياطية (DERP)، وتجريده بالكامل من خوادم التحكم المركزية، والحسابات، وصلاحيات الجذر (Root).

واجه المطورون لعقود معضلة تقنية عند الرغبة في ربط جهازين عن بعد عبر الجدران النارية. تتطلب أنفاق WireGuard التقليدية وجود عنوان IP عام موجه وإعدادات تحويل منافذ يدوية. بينما تتطلب شبكات Tailscale الكاملة حسابات دخول، وخادم تحكم مركزي، وتثبيت بطاقة شبكة افتراضية (TUN) تتطلب صلاحيات مدير النظام. تقدم Tailcat حلا عمليا يختصر هذه التعقيدات في أداة طرفية خفيفة تعمل مباشرة عبر أنابيب الإدخال والإخراج القياسية.

مخطط الاتصال الشبكي في Tailcat
الخادم الطرفي بدون صلاحيات جذر
  1. توليد زوج مفاتيح WireGuard في الذاكرة العشوائية
  2. تحديد مرحل DERP لنقطة الالتقاء الأولية
  3. استخراج عنوان الاتصال الذاتي: tc + Base64(CBOR(المفتاح + المرحل))
مشاركة العنوان خارج القناة (Signal أو DNS TXT أو الطرفية)
العميل الطرفي بدون صلاحيات جذر
  1. تفكيك العنوان إلى المفتاح العام وعناوين مرحل DERP
  2. فتح اتصال TLS صادر عبر المنفذ 443 نحو خادم DERP
  3. إرسال حزمة المصافحة الأولى (رسالة MEOW) للمفتاح العام
  4. استجابة الخادم وتأكيد صلاحية المفتاح العام للعميل
  5. طبقة Magicsock تبدأ اختراق منافذ UDP المباشرة عبر STUN
نجاح المسار المباشر P2P مباشر
  • حزم WireGuard مشفرة مباشرة بين النظيرين
  • اتصال سريع بدون أي وسيط خارجي إطلاقاً
حظر المسار المباشر (Symmetric NAT) مرحل DERP
  • حزم WireGuard مشفرة بالكامل تمر عبر مرحل DERP الموثوق
  • تشفير طرفي كامل: المرحل لا يستطيع فك التشفير
مكدس TCP في مساحة المستخدم (netstack) معالجة داخلية

عناوين IPv6 اصطناعية داخلية محصورة في العملية مع نقل البايتات مباشرة من وإلى الإدخال/الإخراج القياسي (stdin / stdout).

المعمارية البرمجية وآلية العمل

تعتمد Tailcat على نفس الفلسفة البرمجية لأداة netcat التقليدية، حيث تعمل كقناة لنقل البايتات بين نقطتين، لكنها تدمج طبقات أمنية وشبكية متقدمة تجعلها قادرة على تجاوز الجدران النارية والعمل دون تعديل جداول التوجيه في نظام التشغيل.

1. تشفير العناوين عبر بنية CBOR

في الوضع الافتراضي لشبكة Tailscale، يتصل كل جهاز بخادم تحكم مركزي عبر بروتوكول HTTPS لتلقي خريطة العناوين وإحداثيات النظراء. استبدلت Tailcat هذا الخادم بعنوان ذاتي التكوين يبدأ بالبادئة tc.

يتكون باقي العنوان من شفرة Base64 لبنية ثنائية وفق معيار CBOR، وتحتوي البيانات على عنصرين فقط:

  • المفتاح العام لخادم WireGuard بطول 32 بايت.
  • قائمة بعناوين خوادم DERP المسؤولة عن تأمين نقطة الالتقاء الأولية.

بهذا التصميم، يحمل العنوان كل المعلومات اللازمة لربط الاتصال دون الحاجة إلى قاعدة بيانات مركزية أو سجلات أسماء نطاقات ديناميكية. كما يمكن حفظ هذا العنوان في سجل نصي (DNS TXT) في النطاقات المخصصة.

2. بروتوكول الالتقاء ومرحلات DERP

لربط جهازين يقع كل منهما خلف موجه منزلي أو جدار حماية تجاري، يحتاج الطرفان إلى نقطة التقاء مشتركة في البداية. تفتح كلتا العقدتين اتصالا صادرا عبر بروتوكول TLS والمنفذ 443 إلى خادم DERP محدد. نظرا لأن هذا الاتصال يبدو كحركة مرور ويب اعتيادية، فإن معظم الجدران النارية تسمح بمروره تلقائيا.

يرسل العميل رسالة مصافحة أولية تسمى في البروتوكول MEOW موجهة إلى المفتاح العام للخادم. بمجرد استلام الخادم للرسالة والتحقق من هوية المفتاح العام، يرد برسالة تأكيد مماثلة عبر نفس القناة المفتوحة.

3. طبقة Magicsock واختراق جدران الحماية

بعد اكتمال المصافحة عبر المرحل، تبدأ طبقة magicsock المطورة في مشروع Tailscale بمحاولة ترقية الاتصال إلى مسار مباشر:

  • يرسل الطرفان استعلامات STUN لاكتشاف عناوين IP الخارجية والمنافذ المعينة لهما من قبل موجهات NAT.
  • يتبادل الطرفان حزم استكشافية عبر بروتوكول UDP مباشرة نحو تلك المنافذ المكتشفة.
  • إذا كان أحد الطرفين أو كلاهما خلف موجهات NAT متوافقة، ينجح الطرفان في إنشاء مسار WireGuard مباشر عبر بروتوكول UDP، مما يقلل زمن الوصول إلى أدنى حد ممكن ويوفر النطاق الترددي للمرحل.

4. مكدس الشبكات في مساحة المستخدم

تتطلب برامج الشبكات الافتراضية التقليدية إنشاء بطاقة شبكة وهمية من نوع TUN أو TAP، وهو ما يلزم صلاحيات الجذر في أنظمة لينكس وماك وويندوز.

تتجاوز Tailcat هذه القيود من خلال دمج مكتبة netstack المطورة من جوجل ضمن مشروع gVisor داخل البرنامج ذاته. عند استلام حزم WireGuard وفك تشفيرها، يتولى مكدس TCP الداخلي معالجة البيانات وتمريرها مباشرة إلى تدفق الإدخال والإخراج القياسي (stdin وstdout). لا يعلم نظام التشغيل المضيف بوجود عناوين IP اصطناعية، ولا يتم تعديل جداول التوجيه الخاصة به.

سيناريوهات الاستخدام العملي

نظرا لعدم حاجة الأداة إلى حسابات مستخدمين أو صلاحيات جذر، فإنها تلائم بيئات التشغيل الصارمة وحاويات البرمجيات غير المميزة.

نقل الملفات المباشر بين خوادم معزولة

يمكن نقل أرشيف ملفات ضخم بين خادمين دون الحاجة إلى رفعهما على وسائط تخزين سحابية مؤقتة ودون فتح منافذ SSH خارجية:

# على الخادم المستلم
tailcat --listen | tar -xzvf -

# يطبع الأمر عنوان الربط المباشر
# Server listening at: tc1q2w3e4r...

# على الخادم المرسل
tar -czvf - ./data-backup | tailcat tc1q2w3e4r...

مشاركة خدمة ويب محلية لأغراض التجربة والتصحيح

يمكن لمهندس يطور تطبيقا محليا على المنفذ 8080 إتاحته لزميل عمل دون الحاجة إلى أدوات تجارية مثل ngrok أو إعداد نطاقات وسيطة:

# على جهاز المطور الأول
tailcat --listen --forward-tcp 127.0.0.1:8080

# على جهاز الزميل البعيد
tailcat --local-port 8080 tc1q2w3e4r...

يستطيع المطور الثاني فتح المتصفح على العنوان http://localhost:8080 وتصفح الخدمة مباشرة عبر نفق WireGuard المشفر الذي ينتهي داخل مكدس Tailcat المحلي.

ربط العناوين الدائمة عبر سجلات DNS

بدلا من نسخ العنوان الثنائي يدويا، يمكن تثبيته في سجل DNS من نوع TXT:

_tailcat.backup.internal.example. 300 IN TXT "tc1q2w3e4r5t6y7u..."

ويمكن للعملاء الاتصال بالاسم مباشرة:

tailcat backup.internal.example < dump.sql

الاستضافة الذاتية والاستقلالية التشغيلية

تعتمد Tailcat افتراضيا على مرحلات DERP العامة التابعة لشركة Tailscale والتي تخضع لقيود في النطاق الترددي. لكن الأداة تتيح الاستقلالية الكاملة لمن يرغب في استضافة خادم الترحيل الخاص به عبر حزمة derper مفتوحة المصدر:

# تثبيت وتشغيل خادم مرحل خاص على خادم سحابي مستقل
go install tailscale.com/cmd/derper@latest
derper --hostname=relay.example.com --certmode=letsencrypt

وعند تزويد Tailcat بالمعامل --derp-server=relay.example.com، تمر كل حزم المصافحة والترحيل حصريا عبر البنية التحتية الخاصة بالمستخدم، مما يقطع أي اتصال أو نقل بيانات مع خوادم شركة Tailscale. وتتكامل هذه الاستقلالية مع أدوات إدارة الخوادم الذاتية المعاصرة، على غرار بوابة Pangolin المفتوحة للذكاء الاصطناعي وأنظمة رصد الأجهزة الشبكية مثل NetAlertX لتأمين بيئات العمل المحلية.

مقارنة مع الحلول التقنية المقابلة

الخاصيةأداة Netcat التقليديةشبكة Tailscale الكاملةأداة Tailcat
تشفير مسار النقللا يوجد (نصوص صريحة)بروتوكول WireGuardبروتوكول WireGuard
تجاوز جدران الحماية (NAT)غير متاحتلقائي بالكامل (Magicsock)تلقائي بالكامل (Magicsock)
مرحلات بديلة عند الحظرغير متاحخوادم DERPخوادم DERP
صلاحيات نظام التشغيلصلاحيات مستخدم عاديصلاحيات الجذر (بطاقة TUN)صلاحيات مستخدم عادي
الحاجة لحسابات دخوللا توجدتسجيل دخول SSO وإدارة هويةلا توجد حسابات نهائيا
خادم التحكم والسياساتلا يوجدمنصة سحابية أو Headscaleمدمج داخل عنوان الاتصال
طبيعة الاتصالتدفق شبكي للعمليةشبكة افتراضية على النظامتدفق شبكي للعملية

القيود التشغيلية

لا تعد Tailcat بديلا لشبكات المؤسسات الكبرى، بل تعالج حالات الاتصال السريع بين نقطتين:

  • غياب لوحات التحكم المركزية: لا تتوفر واجهة لإلغاء الصلاحيات جماعيا، ويتطلب قطع الوصول تغيير المفتاح العام وتوزيع العنوان من جديد.
  • اتصال أحادي النظير: تؤمن الأداة نفقا بين عميل وخادم واحد لكل جلسة عمل، ولا تبني شبكة متداخلة (Mesh) تصل مئات الخوادم معا.
  • مسؤولية تأمين العنوان: ترتكز الحماية على سرية العنوان المولد؛ لذا يفضل تفعيل خاصية التحقق من المفاتيح العامة المصرح لها بالاتصال في بيئات الإنتاج الحساسة.

المصادر


→المقال التاليمنصة SourceHut تحدث شروط الخدمة لحظر الأكواد المولدة بالذكاء الاصطناعي وزواحف الويبالمقال السابق←منظومة OpenClaw: المعمارية التقنية للمساعد الذكي مفتوح المصدر وتأمينه بحاويات MXC وتشغيل النماذج محلياً