SSH לא מאזין לאחר אתחול: כתובת ה-VPN מגיעה באיחור
שירות הכרוך לכתובת מנהרה זקוק לכתובת הזו בזמן הכריכה. בדקו את הבעלים של המאזין, את סדר האתחול ואת שגיאת הכריכה לפני עריכת מפתחות.
אתם כורכים את SSH לכתובת המנהרה במהלך ההתקנה, זה עובד, ואחרי האתחול הבא אף אחד לא יכול להתחבר עד שמישהו מפעיל מחדש את השירות ביד. פרטי ההתחברות אינם הבעיה. הדמון ביקש מהקרנל כתובת שעדיין לא הייתה קיימת, הכריכה נכשלה, וההודעה חלפה ביומן האתחול. מה שנראה כמו בעיית אימות הוא בעיית סדר הפעלה.
מה באמת אומרת שגיאת הכריכה
יש ליצור socket מאזין בכתובת שקיימת באותו רגע. כשממשק ה-VPN עולה מאוחר יותר, לדמון שהוגדר להיכרך רק לכתובת המנהרה אין למה להיצמד. התצורה נשארת תקינה תחבירית; הסביבה פשוט לא הייתה מוכנה. שירות שרץ מאז הפעלה ידנית לא עובר אף פעם במסלול האתחול, ולכן התקלה מופיעה רק באתחול הבא. השוו את חתימת הזמן של הכריכה שנכשלה לחתימת הזמן של הקצאת הכתובת, והסדר הופך לברור.
תוקף התצורה ומוכנות בזמן ריצה הם תכונות נפרדות. בדקו את שניהם, כי אחד מהם נכשל בלי לומר דבר.
איזה תהליך מחזיק בפורט
הדמון אינו תמיד הרכיב שיוצר את המאזין. הפעלת socket מעבירה את האחריות הזו ליחידה, ואז הפעלה מחדש של הדמון לא משנה דבר.
ss -ltnp 'sport = :22'
systemctl cat ssh.socketרישום ה-socket מראה איזה תהליך מחזיק בפורט ובאיזו כתובת, בעוד שהפלט של היחידה מראה אם קיימת בכלל יחידת socket. כשההפעלה נמצאת במשחק, הכתובת שייכת ליחידת ה-socket וקובץ הדמון אינו סמכותי. קראו את יומן האתחול כדי למצוא את שגיאת הכריכה האמיתית במקום להסיק אותה מהתסמין. יחידת socket חסרה פשוט אומרת את הסידור הקלאסי, שבו הדמון כורך ישירות.
הפכו את המוכנות למפורשת, לא לשינה
השהיה קבועה היא ניחוש שמתייחס לחומרה מהירה ולרשתות איטיות באותה צורה. הביעו את התלות במקום: המתינו לכתובת, ואז התחילו.
ip -4 addr show dev tun0
systemctl edit ssh.serviceהוסיפו פקודת ExecStartPre שחוזרת עד שהכתובת מופיעה, או סדרו את היחידה אחרי יעד הרשת הספציפי שאליו שייך הממשק. שתי הגישות רושמות את התלות במקום שהמנהל הבא יוכל לקרוא. הלולאה זקוקה לפסק זמן, אחרת VPN שנכשל משאיר יחידה שתלויה במקום לדווח על תקלה. לאחר מכן ודאו שהדמון כורך את כתובת המנהרה בעוד הממשק הרגיל נשאר תחת כללי הסינון שלכם.
בדקו אתחול נקי וחיבור מחדש
הפעלה מחדש ידנית לאחר שהכול מקוון לא מוכיחה דבר על סדר האתחול. הפעילו מחדש את המכונה כשהמנהרה מוגדרת לעלות אוטומטית וצפו אם המאזין מופיע ללא התערבות.
systemctl status ssh.service
ss -ltnp 'sport = :22'אחר כך הפילו והקימו מחדש את המנהרה, כי חיבור מחדש יכול לשנות את הכתובת, ולכן כריכה מקודדת קשיח לא תעקוב אחריה. שמרו על מסלול שחזור מחוץ לפס בזמן הבדיקה, כדי ששינוי סדר גרוע לא ינעל אתכם מחוץ למארח.
קריטריון ההצלחה הוא מאזין שמופיע תחת התלות המתועדת שלו, לא כזה שמישהו זכר להפעיל מחדש.