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

לקוחות קדמה ולקוחות דמוניים

לקוח שהופעל ביד במסוף שייך לאותו מסוף. Ctrl+C מעביר פסיקה, הלקוח מפרק את הממשק שלו, והמנהרה מסתיימת. אין צורך ליידע דבר אחר.

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

SIGUSR1 אינו ניתוק; הוא מבקש מהלקוח להפעיל מחדש את המנהרה.

מופעי systemd

כאשר יחידה מחזיקה בחיבור, היחידה היא האובייקט שיש לעצור. מופעי תבנית כמו openvpn-client@office נושאים את שם הפרופיל, ועצירת יעד התבנית במקום המופע עלולה להשפיע על כל לקוח במארח.

systemctl list-units 'openvpn-client@*'
systemctl stop [email protected]

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

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

פרופילי NetworkManager

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

nmcli connection show --active
nmcli connection down uuid actual-uuid

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

מראה הפקודות של המנהל מתעד כיצד נבחר יעד down.

הפעלות OpenVPN 3

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

openvpn3 sessions-list
openvpn3 session-manage --path /net/openvpn/v3/sessions/... --disconnect

ניתוק כל הפעלה הוא פעולה אחרת, והיא צריכה להיות מכוונת.

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

מה לאמת לאחר מכן

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

ip -brief address
ip route get 10.8.0.1

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

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

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