NetworkManager מול wg-quick: מי הבעלים של נתיבי ה-WireGuard שלך?
שני מנהלים יכולים לתבוע את אותו קישור WireGuard, והתצורה שערכת אינה בהכרח זו שבתוקף. מצא את הבעלים לפי נתיבים, כללים ומצב הממשק.
אתה משנה את AllowedIPs בקובץ ה-WireGuard, מפעיל מחדש את המנהרה, וטבלת הניתוב נראית בדיוק כמו קודם. התגובה הרגילה היא למחוק את הנתיב המפריע ולהמשיך הלאה, מה שעובד עד שהחיבור הבא מחזיר אותו. הקובץ שערכת אינו בהכרח האובייקט שיצר את המצב שאתה רואה. שני מנהלים יכולים להריץ את אותו פרוטוקול על מכונה אחת, ורק אחד מהם מחזיק בממשק בכל רגע.
מיתוס: יש תצורת WireGuard אחת במכונה
wg-quick קורא קובץ תחת /etc/wireguard/ ובונה את הממשק כשאתה מעלה אותו. NetworkManager שומר פרופיל חיבור בפורמט keyfile משלו ומציג אותו בהפעלה, ו- ייבוא קובץ wg-quick מעתיק את הערכים אל אותו פרופיל במקום לקשר אליו. עריכת המקור לאחר מכן לא משנה דבר, כי הפרופיל כבר לא קורא אותו. אותה רשימת עמיתים ומפתחות יכולה אפוא להתקיים פעמיים, כשהעותק השני בתוקף.
סימן ששווה לזכור: שינויים ששורדים אתחול אך לא ייבוא מחדש מגיעים ממאגר אחד, ושינויים שנעלמים באתחול מגיעים מהאחר.
דוגמה מעשית אחת מבהירה את הפיצול. השווה nmcli connection show עם systemctl status wg-quick@wg0, ואז בדוק על איזה ממשק הנתיבים באמת תלויים. אם השירות מת והממשק למעלה, הפרופיל עושה את העבודה, יהא אשר יהא הקובץ.
מיתוס: כללי הניתוב הם חלק מ-WireGuard
התקן ה-WireGuard שבקרנל מכיר עמיתים ומפתחות, והוא לא יודע דבר על ניתוב לפי מדיניות. כל ip rule הרשומות והטבלאות הנוספות שאתה רואה הותקנו על ידי הכלי שהעלה את הממשק. wg-quick יכול להוסיף fwmark וטבלה ייעודית ועליהן כללים שמצביעים אליה, בעוד NetworkManager מתקין נתיבים דרך הגדרות ה-ipv4 שלו ומשאיר את ה-DNS ל-backend הפותר שהמערכת משתמשת בו. אותה מנהרה, תופעות לוואי שונות.
קרא את ip rule ואת ip route show table all לפני שתשנה משהו, ורשום באיזו טבלה חי כל נתיב. מספר טבלה שלא הגדרת הוא רמז חזק לגבי הכלי שיצר אותה.
מיתוס: מחיקת הנתיב היא תיקון
נתיב שנמחק בזמן ריצה הוא נתיב שהבעלים יתקין מחדש בהפעלה הבאה, וההפעלה יכולה לקרות בלעדיך: חידוש מחשב נייד, הבהוב קישור, אתחול שירות או חיבור אוטומטי של NetworkManager. לכן אותו נתיב חוזר ולכן הפתרון הזמני מרגיש לא אמין ולא שגוי. זהה תחילה את המנהל, ואז שנה את הקלט שאותו מנהל באמת קורא.
התחברות מחדש ואתחול השירות הרלוונטי הם המבחן שמפריד תיקון אמיתי מתיקון שנראה מסודר בלבד.
בחר בעלים אחד והסר את השני
בחר את המנהל שהפריסה שלך תומכת בו, ואז השבת את ההפעלה המתחרה דרך הבקרה המתועדת שלו במקום לקוות שהוא יישאר בטל. שירות wg-quick מוסווה או פרופיל NetworkManager מחוק הם מפורשים; להשאיר את שניהם מופעלים ולתת להם להתחרות אינו מפורש. שמור על גישה עובדת לפני שאתה משבית משהו, כי הממשק שנושא את הסשן המרוחק שלך עשוי להיות זה שאתה עומד להסיר.
לאחר השינוי, אמת את התעבורה הכלולה והמוחרגת, אחר כך DNS, ואז אתחל פעם אחת. אם המצב שורד אתחול עם מנהל יחיד, יש לך בעלים במקום מקריות.
הכלל הכללי שווה לשמור גם מחוץ ל-WireGuard: כשהגדרה ממשיכה לחזור, הפסק למחוק את התוצאה ומצא את התהליך שממשיך לייצר אותה.