ה-VPN לא עונה דבר בפורט שלו, ושתי הסיבות האפשריות דורשות תיקונים הפוכים: או שאף תהליך לא פתח את השקע, או שהשקע קיים ומשהו בין המכונות עוצר את החבילות. פקודה אחת מכריעה את המחצית הראשונה של השאלה הזאת, ולכן היא באה לפני שנוגעים בכל כלל חומת אש. הסדר שלהלן מסיר הסבר אחד בכל שלב במקום להוסיף עוד השערה. דווקא הניחוש בין השתיים הוא מה שהופך אבחון של עשר דקות לערב שלם.

נחנו שאתם יכולים להתחבר לשרת ושהלקוח הוא פרופיל אמיתי ולא סורק. שתי ההנחות חשובות, כי בדיקה גנרית אינה יכולה לענות על שאלה ייחודית לפרוטוקול.

האם השקע קיים בכלל

התחילו במה שהשירות אומר על עצמו: אם עלה, ושימושי יותר, מה הייתה שגיאת האתחול הראשונה שלו. כשל פיענוח, מפתח חסר או שגיאת כריכה מונעים מהמאזין להתקיים בכלל, והתהליך יכול לצאת בשקט כזה ששורת המצב נקראת בעמימות. יחידה שמדווחת שהיא פעילה אינה הוכחה בפני עצמה, כי התהליך הראשי יכול להיות חי בעוד הרכיב שאמור לכרוך את הפורט כבר ויתר.

systemctl status openvpn-server@server --no-pager
journalctl -u openvpn-server@server -n 30 --no-pager
ss -lunp

רשימת השקעים היא העובדה ששאר האבחון נשען עליה. קראו את עמודת הכתובת המקומית ולא רק את הפורט, כי בעמודה הזאת מופיעות כריכות ללופ־בק וכריכות לממשק הלא נכון. מאזין שקיים על 127.0.0.1 פועל באופן מושלם ועדיין בלתי נראה למחשב הנייד שלכם.

באיזו כתובת ובאיזו משפחה השקע עונה

שתי טעויות נראות זהות מצד הלקוח ומסבירות את רוב הדיווחים על "לא נגיש". שרת שכרוך לכתובת הלופ־בק לא יקבל לעולם תעבורה ממכונה אחרת, ושרת שכרוך רק לכתובת IPv4 לא יענה לעולם ללקוח שמחייג לכתובת IPv6 של אותו מארח. השוו את הכתובת שבטבלת השקעים לכתובת שהלקוח מחייג אליה בפועל, תו אחר תו, לפני שאתם מניחים משהו על מדיניות.

הגבלת הרשימה לפורט אחד שומרת על קריאות כשרוב המארח מריץ כמה שירותים. מסנן ה-sport לוקח את הפורט יחד עם התעבורה שאתם בודקים:

ss -lun 'sport = :51820'
ss -ltnp 'sport = :1194'

עמודת הפרוטוקול משנה את כל התשובה

טבלת השקעים ממוינת לפי פרוטוקול וגם לפי פורט, ואלה שני רשומות בלתי תלויות. שירות שעונה ב-TCP בפורט 1194 לא אומר דבר על אם משהו מאזין ב-UDP 1194, והלקוח ישתמש תמיד רק באחד מהם. ודאו איזו תעבורה בוחרת תצורת השרת ואיזו שולח פרופיל הלקוח, ואז חפשו בדיוק את השורה ההיא.

ל-UDP יש קמט שני: בדיקה לא מאומתת אינה שגיאה שהשירות חייב לענות עליה. סריקה שמדווחת שהפורט שקט מדדה את האיפוק של השירות, לא את זמינותו, לכן בדקו עם הלקוח והפרופיל האמיתיים.

ניסיון אחד, שלושה מקומות להסתכל

מלקוח מאושר בצעו ניסיון אחד בדיוק ורשמו את השעה עד השנייה. אחר כך קראו שלושה מקורות לאותו חלון: כלל הרשת או הקונסולה של הספק, מוני חומת האש או היומן של המארח, והיומן של השירות עצמו. עשייה חד־פעמית היא מה שהופך את שלושת התיאורים להשווים, והיא עולה פחות מלחזור על ניסיון שאיש לא רשם את חתימת הזמן שלו.

שתי התוצאות מצביעות לכיוונים הפוכים. אם אף חבילה לא הגיעה למארח, הנתיב מפיל אותה והמאזין לא רלוונטי. אם החבילה הגיעה לשקע והשירות דחה אותה, הנתיב תקין והתשובה נמצאת בפרוטוקול, בהצפנה או בהרשאות. פתיחת פורט לשירות שכבר קיבל חיבור הופכת את האבחון הבא לקשה יותר, לא לקל יותר.

תנו שם לשלב לפני שאתם משנים כלל

משא ומתן שמתחיל ואימות שנכשל הם כשל אחד, ומנהרה שנכונה בזמן שההעברה נתקעת היא כשל אחר לגמרי. מתן שם לשלב קודם שומר על תיקון צר: בעיית הרשאות אינה מתוקנת בכלל של חומת אש, ובעיית נתיב נתונים אינה מתוקנת בהפעלה מחדש.

השתמשו באבחון הצר ביותר שעונה על השאלה. תצפית חבילות זמנית בפורט אחד, בשליטת מנהל, היא כלי סביר; השבתת כל חומת האש אינה כזו, כי התוצאה נעשית בלתי ניתנת לייחוס. התיעוד של ss מכסה את המסננים ששימשו למעלה, וזהו צעד ראשון זול יותר מכל לכידה. רשמו איזה משני הענפים הוכחתם, וההופעה הבאה מתחילה מתשובה ידועה.

מאמרים קשורים