اعتقد أحد مستخدمي ZimaOS أن Tailscale تعطل بعد تشغيله للمرة الأولى، لأن صفحة التطبيق عرضت «الخدمة غير متاحة» ولأن الهاتف لم يتمكن من الوصول إلى خدمات الخادم المنزلي. لكن تشخيص الحاوية أظهر نتيجة مختلفة: كان Tailscale يعمل، وكان الجهاز مُصرَّحًا به، وكانت عمليات تحميل الحالة والنفق موجودة.
كانت المشكلة المؤكدة هي العنوان المستخدم من الهاتف. فقد كان المستخدم يحاول الوصول إلى عنوان LAN منزلي عادي من دون إعداد توجيه الشبكة الفرعية. وكان الاتصال بالخدمة من خلال عنوان Tailscale الخاص بجهاز ZimaOS 100.x.x.x كان العنوان يعمل.
حاوية Tailscale لم تتعطل
أشارت الأعراض الأولية إلى أن الحاوية توقفت بعد إعادة التشغيل، لكن الحالة التي جُمعت أظهرت ما يلي:
- كانت حالة الحاوية قيد التشغيل مع رمز خروج 0.
- انتقل Tailscale من حالة البدء إلى حالة التشغيل.
- تمت المصادقة على الجهاز في شبكة tailnet الخاصة بالمستخدم.
- وتم تعيين مجلد الحالة الدائمة داخل الحاوية.
- كما تم تعيين جهاز TUN المطلوب بواسطة Tailscale.
- حصل الجهاز على عنوان IPv4 من Tailscale وتمكن من رؤية الأجهزة النظيرة.
فصل هذا الدليل بين رسالة في صفحة تطبيق ZimaOS أو واجهة الويب وبين حالة عفريت Tailscale نفسه.
لماذا أظهرت محاولات التشخيص الأولى رسالة «تم رفض الإذن»
استخدمت جلسة الطرفية مستخدمًا عاديًا في ZimaOS. وقد نُفذت أول عملية لسرد Docker بامتيازات مرتفعة، لكن الأوامر اللاحقة حاولت الوصول إلى مقبس Docker من دونها، ولذلك أعادت أخطاء أذونات. كما أن علامات الاقتباس المنحنية المنسوخة من المنتدى حالت دون تفسير بعض استبدالات الأوامر بشكل صحيح.
وصفت رسائل الأذونات تلك جلسة التشخيص، وليس فشلًا في تشغيل Tailscale. وقد أظهر الإخراج اللاحق، الذي تم الحصول عليه بالامتيازات المناسبة، أن الحاوية كانت سليمة.
عنوان شبكة LAN المنزلية ليس تلقائيًا عنوان Tailscale
عنوان مثل 10.0.0.93 ينتمي إلى شبكة LAN المنزلية. ولا يحصل الهاتف المتصل عن بُعد بشبكة tailnet نفسها تلقائيًا على مسار إلى كل عنوان LAN خاص.
يُسنِد Tailscale لكل عقدة عنوانًا خاصًا بها، ويكون عادةً ضمن النطاق 100.x.x.x. وتوضح وثائق عناوين IP الرسمية لـ Tailscale أن هذه العناوين تحدد الأجهزة داخل شبكة tailnet وتظل منفصلة عن عناوين LAN العادية.
طريقة الاتصال التي نجحت
طلب المُجيب من المستخدم الاتصال بالتطبيق باستخدام عنوان Tailscale IP لعقدة ZimaOS ومنفذ التطبيق نفسه:
http://TAILSCALE-IP:APP-PORT
على سبيل المثال، خدمة تعمل على المنفذ 8096 فسيستخدم عنوان URL بالصيغة التالية:
http://100.x.x.x:8096
يحتاج الهاتف أيضًا إلى تسجيل الدخول إلى شبكة tailnet نفسها والاتصال بـ Tailscale بنشاط. وقد أكد المستخدم أن هذا العنوان يعمل، مما أثبت أن Tailscale نفسه كان يعمل.
عند الحاجة إلى توجيه الشبكة الفرعية
إذا كان الهدف هو الوصول إلى الأجهزة من خلال عناوين LAN الحالية الخاصة بها، مثل 10.0.0.x—يجب أن يعلن جهاز على تلك الشبكة عن الشبكة الفرعية لـ LAN كمسار، ويجب اعتماد المسار وفقًا لإعدادات tailnet.
هذا إعداد مختلف عن الوصول إلى مضيف ZimaOS مباشرةً عبر عنوان Tailscale الخاص به. اتبع وثائق Tailscale الرسمية حول موجّهات الشبكات الفرعية قبل توقّع عمل عناوين LAN العادية عن بُعد.
لماذا قد تستمر صفحة التطبيق في عرض «الخدمة غير متاحة»؟
قد يفشل فحص إتاحة واجهة الويب حتى عندما يكون البرنامج الخفي للشبكة قيد التشغيل. في الحالة الأصلية، كان الدليل الحاسم هو حالة التشغيل، والتفويض الناجح في tailnet، وعنوان Tailscale IP المعيَّن، والأقران الظاهرون، واتصال الخدمة البعيدة العامل.
لن تعالج محاولات تغيير منافذ التطبيقات عشوائيًا أو حذف حالة Tailscale أو إعادة تثبيت الحاوية مرارًا عنوان وجهة غير صحيح. تحقّق من سلامة البرنامج الخفي وطريقة الاتصال قبل إعادة ضبط هوية عاملة.
لماذا قد يبدو الاتصال العامل بطيئًا؟
اقترح الرد النهائي أن الاتصال قد يستخدم مرحّل DERP بدلًا من مسار مباشر بين الطرفين. يمكن لحركة مرور Tailscale المُرحَّلة أن تعمل بشكل صحيح مع توفير معدل نقل أقل أو زمن استجابة أعلى، بحسب الشبكات وأجهزة التوجيه ومنطقة الترحيل المتاحة.
لا يثبت البطء وحده فشل الحاوية. تحقّق أولًا مما إذا كان الاتصال يعمل، وما إذا كان Tailscale يبلّغ عن مسار مباشر أو مُرحَّل، ثم افحص سلوك NAT والجدار الناري إذا كان الأداء مهمًا.
ترتيب تشخيص أكثر أمانًا
- تحقق مما إذا كانت حاوية Tailscale قيد التشغيل بدلًا من الاعتماد على حالة صفحة التطبيق وحدها.
- تأكد من ظهور عقدة ZimaOS على أنها مصرَّح لها ومتَّصلة بالإنترنت في tailnet نفسها التي يوجد فيها الهاتف.
- حدّد عنوان Tailscale الخاص بعقدة ZimaOS
100.x.x.xالعنوان عبر واجهة Tailscale أو وحدة تحكم الإدارة. - اتصل بالخدمة المستهدفة باستخدام عنوان Tailscale ذلك ومنفذ الخدمة.
- اضبط توجيه الشبكة الفرعية فقط إذا كان الوصول عبر عناوين LAN المنزلية العادية مطلوبًا.
- افحص استخدام ترحيل DERP بشكل منفصل إذا كان الاتصال يعمل لكنه بطيء.
الأسئلة الشائعة حول اتصال Tailscale في ZimaOS
هل تثبت رسالة «الخدمة غير متاحة» أن Tailscale قد توقّف؟
لا. في هذه الحالة، كانت الحاوية قيد التشغيل ومصرَّحًا لها ومتَّصلة، رغم أن صفحة التطبيق عرضت تلك الرسالة.
لماذا لم يُفد تغيير منفذ تطبيق Tailscale؟
كانت المشكلة في عنوان الوجهة، وليست تعارضًا عاديًا في منفذ تطبيق الويب. كان المستخدم بحاجة إلى عنوان IP الخاص بعقدة ZimaOS على Tailscale.
ما العنوان الذي ينبغي للهاتف البعيد استخدامه؟
استخدم Tailscale الخاص بعقدة ZimaOS 100.x.x.x العنوان بالإضافة إلى منفذ التطبيق، ما لم يتم إعداد موجّه للشبكة الفرعية لعناوين LAN.
لماذا يفشل عنوان 10.0.0.x عبر Tailscale؟
إنه عنوان خاص لشبكة LAN منزلية. يتطلب الوصول إلى تلك الشبكة الفرعية عن بُعد وجود مسار معلَن للشبكة الفرعية ومُعتمَد.
لماذا قد يكون اتصال Tailscale العامل بطيئًا؟
قد يتم تمرير الاتصال عبر DERP بدلًا من استخدام مسار مباشر بين الطرفين.
