איך להפעיל מנהרת WireGuard כשירות systemd
התבנית wg-quick@ מעלה פרופיל בשם ומתקינה מסלולים, DNS וקרסים. אמתו את היחידה, השאירו מנהל אחד אחראי ובדקו את הפירוק.
יש לכם פרופיל WireGuard ב-/etc/wireguard/wg0.conf ואתם רוצים שהוא יעלה בלי להקליד wg-quick up ביד אחרי כל אתחול. תבנית ה-systemd שבחבילה עושה בדיוק את זה: [email protected] מריץ את wg-quick עבור הפרופיל בשם wg0. היא גם מתקינה כתובות, מסלולים, DNS וכל קרס שהפרופיל מצהיר עליו, וזה יותר מאשר לטעון מפתח לתוך הקרנל. בדקו שהתבנית קיימת במערכת שלכם לפני שאתם מניחים שהיא קיימת.
שאר המדריך עוקב אחרי הסדר שבו באמת הייתם עושים זאת.
מצאו את היחידה ואת הפרופיל שהיא קוראת
הציגו את קובצי היחידה עם systemctl list-unit-files 'wg-quick*'. בהפצות שמארזות אותו תראו [email protected], כאשר שם המופע נלקח מהפרופיל. המופע נפתר אל /etc/wireguard/<name>.conf, ולכן wg-quick@wg0 קורא רק את wg0.conf ולא דבר אחר. אם הרשימה ריקה, חבילת הכלים אינה מותקנת ושום כמות של הפעלה לא תעזור.
השאירו את הפרופיל בהרשאה 600 ובבעלות root. הוא מכיל מפתח פרטי, והיחידה תרוץ בשמחה בהרשאות גרועות יותר אם תתנו לה.
העלו אותו וקראו את היומן
התחילו את המופע עם systemctl start wg-quick@wg0, ואז בדקו את systemctl status wg-quick@wg0 ואת journalctl -u wg-quick@wg0 -b. ליחידה שעולה ויוצאת מיד יש בדרך כלל שגיאת פרופיל, והיומן נוקב בשם השורה. אשרו עם wg show שהממשק קיים ושהלחיצה האחרונה עדכנית. המדריך של wg-quick מפרט מה הסקריפט עושה מעבר לממשק עצמו.
ממשק מוגדר בלי לחיצה הוא בעיית נתיב או מפתח, לא בעיית שירות.
השאירו מנהל אחד אחראי
אם NetworkManager או לקוח אחר כבר מחזיק במנהרה, הפעלת יחידת ה-systemd יוצרת בעלים שני לאותו ממשק, מסלולים ו-DNS. הסימפטומים מבלבלים: המנהרה עולה, ואז המסלולים נעלמים, או שה-DNS חוזר אחורה אחרי כמה שניות. בחרו מנהל אחד והשביתו את השני עבור אותו פרופיל. היומן מראה בדרך כלל את ההשתלטות כשינויי מסלול או פותר מיד לאחר שהיחידה מדווחת על הצלחה.
שני מנהלים לא חולקים בעלות. הם דורסים זה את זה.
בדקו עצירה, אתחול ועלייה
הריצו systemctl stop wg-quick@wg0 ואשרו שהממשק נעלם והמסלולים הוסרו. אחר כך התחילו אותו שוב ובדקו שהמסלולים חוזרים, כי באגים בפירוק מופיעים כמסלולים שנותרו ולא כהתחלות כושלות. לבסוף הפעילו אותו בעלייה עם systemctl enable --now wg-quick@wg0 ואתחלו פעם אחת.
בעלייה שם נקודת הקצה חייב להיפתר לפני שהיחידה רצה. אם ה-DNS עוד לא עלה, היחידה נכשלת ונשארת כושלת עד שתתחילו אותה ביד.
תעדו את הבעלים
רשמו איזה פרופיל היחידה קוראת, איזה מנהל מחזיק בממשק ומאיפה הגיע הקובץ. כשמישהו ייבא מאוחר יותר את אותה מנהרה ללקוח שולחני, ההערה הזו היא ההבדל בין הגירה לשתי פריסות שנלחמות על כתובת אחת. רשמו גם את שם הממשק, כי שני פרופילים עם שמות דומים הם המקור הרגיל לבלבול.
מנהרה עם שני בעלים עובדת עד האתחול הראשון, ואז היא תעלומה. לכן ההערה שייכת למאגר ולא לשרשור צ׳אט.