SSH لا يستمع بعد إعادة التشغيل: عنوان VPN متأخر
الخدمة المرتبطة بعنوان نفق تحتاج إلى ذلك العنوان وقت الربط. تحقق من مالك المستمع وترتيب الإقلاع وخطأ الربط قبل تعديل المفاتيح.
تربط SSH بعنوان النفق أثناء الإعداد، فيعمل، وبعد إعادة التشغيل التالية لا يستطيع أحد تسجيل الدخول حتى يعيد أحدهم تشغيل الخدمة يدويًا. بيانات الاعتماد ليست المشكلة. طلب البرنامج الخفي من النواة عنوانًا لم يكن موجودًا بعد، وفشل الربط، ومرّت الرسالة سريعًا في سجل الإقلاع. ما يبدو مشكلة مصادقة هو مشكلة في ترتيب بدء التشغيل.
ما يقوله خطأ الربط فعليًا
يجب إنشاء مقبس استماع على عنوان موجود في تلك اللحظة. عندما تظهر واجهة VPN لاحقًا، لا يجد البرنامج الخفي المهيأ للربط بعنوان النفق فقط ما يتصل به. يبقى الإعداد صحيحًا نحويًا؛ لكن البيئة لم تكن جاهزة ببساطة. الخدمة التي تعمل منذ تشغيل يدوي لا تجرّب مسار الإقلاع أبدًا، ولهذا يظهر العيب فقط عند إعادة التشغيل التالية. قارن الطابع الزمني لفشل الربط بالطابع الزمني لإسناد العنوان، وسيظهر الترتيب بوضوح.
صلاحية الإعداد وجاهزية وقت التشغيل خاصيتان منفصلتان. اختبر كلتيهما، لأن إحداهما تفشل دون أن تقول أي شيء.
أي عملية تملك المنفذ
البرنامج الخفي ليس دائمًا المكوّن الذي ينشئ المستمع. ينقل تنشيط المقبس تلك المسؤولية إلى وحدة، وعندها لا تغيّر إعادة تشغيل البرنامج الخفي شيئًا.
ss -ltnp 'sport = :22'
systemctl cat ssh.socketتُظهر قائمة المقابس أي عملية تحتفظ بالمنفذ وعلى أي عنوان، بينما يُظهر تفريغ الوحدة ما إذا كانت وحدة مقبس موجودة أصلًا. عندما يكون التنشيط فعالًا، ينتمي العنوان إلى وحدة المقبس ولا يكون ملف البرنامج الخفي هو المرجع. اقرأ سجل الإقلاع لمعرفة خطأ الربط الحقيقي بدلًا من استنتاجه من العَرَض. غياب وحدة المقبس يعني ببساطة الترتيب التقليدي، حيث يربط البرنامج الخفي مباشرة.
اجعل الجاهزية صريحة، لا فترة نوم
التأخير الثابت تخمين يعامل العتاد السريع والشبكات البطيئة بالمثل. عبّر عن التبعية بدلًا من ذلك: انتظر العنوان ثم ابدأ.
ip -4 addr show dev tun0
systemctl edit ssh.serviceأضف أمر ExecStartPre يتكرر حتى يظهر العنوان، أو رتّب الوحدة بعد هدف الشبكة المحدد الذي يملك الواجهة. يسجّل كلا الأسلوبين التبعية في مكان يستطيع المدير التالي قراءته. تحتاج الحلقة إلى مهلة، وإلا فإن VPN فاشل يترك وحدة تتعطل بدلًا من الإبلاغ عن عيب. ثم تأكد من أن البرنامج الخفي يربط عنوان النفق بينما تظل الواجهة العادية خاضعة لقواعد التصفية لديك.
اختبر إقلاعًا نظيفًا وإعادة اتصال
إعادة التشغيل اليدوية بعد أن يصبح كل شيء متصلًا لا تثبت شيئًا عن ترتيب الإقلاع. أعد تشغيل الجهاز مع تهيئة النفق للظهور تلقائيًا وراقب ظهور المستمع دون تدخل.
systemctl status ssh.service
ss -ltnp 'sport = :22'ثم أسقط النفق وأعد إنشاءه، لأن إعادة الاتصال يمكن أن تغيّر العنوان، لذا الربط المرمّز بشكل ثابت لن يتبعه. احتفظ بمسار استرداد خارج النطاق أثناء الاختبار، حتى لا يمنعك تغيير ترتيب سيئ من الوصول إلى المضيف.
معيار النجاح هو مستمع يظهر وفق تبعيته الموثقة، لا مستمع تذكّر أحدهم إعادة تشغيله.