/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.

ActionWhat it writesWhen it surprises you
wg set on a live interfaceKernel state onlyAfter reboot, when the file was never updated
wg-quick down with SaveConfigLive state into the fileRight after you edited the file
wg syncconfKernel state onlyNever; it does not touch the file
wg-quick upKernel state from the fileIf 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.

O'xshash maqolalar