Nega wg-quick interfeysni to'xtatganda wg0.conf ni qayta yozadi
SaveConfig o'chirish paytida saqlash, fon sinxronizatsiyasi emas. Tunnel faol bo'lganda faylni tahrirlang, qayta ishga tushirish eski holatni uning ustiga yozishi mumkin.
/etc/wireguard/wg0.conf ga peer qo'shasiz, systemctl restart wg-quick@wg0 ni ishga tushirasiz, va yana qaraganingizda peer fayldan yo'qolgan. Hech narsa hech narsani buzgani yo'q. Qayta ishga tushirish to'xtatishdan keyin boshlanishdir, va to'xtatish bosqichi hozirgi ishlash holatini siz hozir tahrir qilgan fayl ustiga yozishi mumkin. Mas'ul sozlama siz tahrir qilgan o'sha faylda yashaydi, va birinchi marta duch kelganda bu tsiklni shu qadar chalkashtirib yuboradigan narsa shu.
Ikki holat, bitta fayl va o'chirish paytida saqlash
WireGuard ning ishlash holati va wg-quick konfiguratsiya fayli bog'liq, ammo farq qiladi. Fayl kirish: wg-quick uni o'qiydi, interfeysni yaratadi, manzillar va marshrutlarni o'rnatadi va peer-larni sozlaydi. Yadro qurilmasi tirik obyekt, va wg bilan qilingan past darajadagi o'zgarishlar hech qachon o'zini qayta yozmaydi.
Bitta yo'nalish bundan mustasno. Interfeys bo'limida SaveConfig = true paydo bo'lganda, wg-quick interfeysni tushirishning bir qismi sifatida tirik konfiguratsiyani faylga saqlaydi. wg-quick qo'llanmasi aynan shu haqda ogohlantiradi: interfeys faol bo'lganda faylga kiritilgan o'zgarishlar u olib tashlanganda ustiga yozilishi mumkin. Bu o'chirish paytida saqlash, fon taymeri emas, shuning uchun faqat biror narsa interfeysni to'xtatganda ishlaydi.
| Action | What it writes | When it surprises you |
|---|---|---|
wg set on a live interface | Kernel state only | After reboot, when the file was never updated |
wg-quick down with SaveConfig | Live state into the file | Right after you edited the file |
wg syncconf | Kernel state only | Never; it does not touch the file |
wg-quick up | Kernel state from the file | If the file is stale, you get the old tunnel |
Jadvalni tartib haqidagi ogohlantirish sifatida o'qing. Bu sohadagi har bir tasodifiy yo'qotish saqlashdan keyin emas, balki undan oldin sodir bo'lgan tahrirdan kelib chiqadi.
Avval to'xtating, ikkinchi tahrirlang, oxirida ishga tushiring
Agar fayl sizning haqiqat manbangiz bo'lsa, faylni umid bilan emas, tuzilma bilan vakolatli qiling. Interfeysni tushiring, u ketganiga ishonch hosil qiling, keyin tahrirlang, keyin uni yana ko'taring. Qoida oddiy: saqlash hali ishlashi mumkin ekan, hech qanday tahrir mavjud emas.
sudo cp -a /etc/wireguard/wg0.conf /root/wg0.conf.$(date +%F-%H%M)
sudo wg-quick down wg0
ls /sys/class/net/wg0 2>/dev/null || echo "interface is gone"
sudoedit /etc/wireguard/wg0.conf
sudo wg-quick up wg0
Zaxira qatori shunchaki marosim emas. Agar tunnel bu mashinaga yetib borish yo'lingiz bo'lsa, tushirish bosqichi sessiyangizni tugatishi mumkin, va diskdagi nusxa hamda konsol yoki tashqi yo'l ishlaydigan yagona qaytarishdir. Ikkinchi qatorni unga ishonishdan oldin tekshiring: jimgina muvaffaqiyatsiz bo'ladigan skriptdagi eskirgan interfeys nomi odamlarning hali tirik faylni tahrirlash usulidir.
Oddiy tushirishdan oldin SaveConfig = false ni o'rnatish boshqa qabul qilingan yo'l, va u wg-quick haqiqatan o'qiydigan faylda bajarilishi kerak. Bu o'sha bitta avtomatik saqlashni oldini oladi. Bu alohida NetworkManager profili, router eksporti yoki konteyner kirish nuqtasini tahrirlaringizni qayta yuklashga majbur qilmaydi, chunki bu menejerlar bu faylni umuman o'qimaydi.
Interfeysni yirtmasdan peer o'zgarishlarini qo'llang
Har bir tahrir uzilishni talab qilmaydi. Faylni konfiguratsiyaga aylantirib sinxronlash orqali ishlab turgan interfeysga peer darajasidagi o'zgarishlarni qo'llash mumkin, bu tushirish bosqichini butunlay chetlab o'tadi va shuning uchun saqlashni ham chetlab o'tadi:
sudo wg syncconf wg0 <(sudo wg-quick strip wg0)
sudo wg show wg0 peers
sudo wg show wg0 latest-handshakes
strip bosqichi muhim. U faylni faqat wg-quick ga tegishli kalitlarni olib tashlab chop etadi, shuning uchun manzillar, DNS va marshrutlash ko'rsatmalari ularni tushunmaydigan asbobga tushmaydi. Keyin sinxronlash interfeysni qayta yaratmasdan peer-lar va kalitlarni tirik qurilmaga qo'llaydi, shuning uchun mavjud sessiyalar va marshrutlar omon qoladi.
Chegaralar haqida aniq bo'ling. Peer-larni sinxronlash interfeys manzilini, wg-quick qo'shgan marshrutlarni yoki rezolver konfiguratsiyasini o'zgartirmaydi, chunki ularning hech biri WireGuard qurilmasiga tegishli emas. AllowedIPs ga subnetwork qo'shib, yadro uni marshrutlaydi deb kutish klassik noto'g'ri o'qishdir; marshrutni ko'tarish paytida wg-quick yoki o'zingiz qo'shishingiz kerak.
Biror narsani tahrirlashdan oldin interfeys kimga tegishli ekanini tekshiring
Konfiguratsiya tizimi boshqaradigan ish stoli yoki serverda fayl kirish emas, chiqish bo'lishi mumkin. NetworkManager ulanishi, router yaratgan profil yoki konteyner ishga tushirish skripti bir xil interfeys nomiga ega bo'lishi mumkin, va bu holatda benuqson wg-quick ketma-ketligi ham noto'g'ri artefaktni tahrirlaydi.
systemctl status wg-quick@wg0 --no-pager
nmcli connection show | grep -i wireguard
sudo wg showconf wg0 | head -n 5
Uchinchi buyruq tirik konfiguratsiyani fayl bilan bir xil formatda, shaxsiy kalitni ham qo'shib chop etadi, bu taqqoslash uchun foydali va chiptada xavfli. Yopishtirishdan oldin uni yashiring; qo'llab-quvvatlash mavzusidagi shaxsiy kalit doimiy buzilish, matn terish xatosi emas.
Agar xizmat birligi faol bo'lmasa, lekin interfeys mavjud bo'lsa, uni boshqa narsa yaratgan va fayl vakolatli emas. Shu bitta kuzatuv hech narsa o'qimaydigan faylni tahrirlashdan bir soat tejaydi.
Keyingi qayta ishga tushirishni tekshiring, keyin qaytarishni saqlang
Tuzatishni haqiqatan isbotlaydigan test ikkinchi qayta ishga tushirishdir, chunki birinchi marta aynan shu ketma-ketlik muvaffaqiyatsiz bo'lgan. Peer undan omon qolganini va tirik konfiguratsiya hali ham diskdagiga mos kelishini tasdiqlang:
sudo systemctl restart wg-quick@wg0
sudo wg show wg0 latest-handshakes
sudo grep -c '^\[Peer\]' /etc/wireguard/wg0.conf
Qayta ishga tushirishni ikki marta bajaring. Bir marta toza o'tish omad bo'lishi mumkin: birinchi qayta ishga tushirish hali saqlanmagan ishlash o'zgarishini sarflashi mumkin, shuning uchun ikkinchisi fayl va ishlash birinchisining oxirida kelishganini aytadi.
Zaxirani jarayon boshidan ikki marta qayta ishga tushirishni tugatguningizcha saqlang, keyin uni o'chiring yoki konfiguratsiya katalogidan tashqariga ko'chiring. Haqiqiy fayl yonida qolgan wg0.conf.bak wg-quick uchun zararsiz va keyingi odamni chalkashtiradi, u oxir-oqibat noto'g'risini tahrirlaydi.