Inti żżid peer ma’ /etc/wireguard/wg0.conf, tmexxi systemctl restart wg-quick@wg0, u l-peer jisparixxi mill-fajl meta terġa’ tħares. Xejn ma ħassar xejn. Restart huwa waqfa segwita minn bidu, u l-pass tal-waqfa jista’ jikteb l-istat attwali tal-eżekuzzjoni fuq il-fajl li għadek kemm editjajt. Is-setting responsabbli jgħix fl-istess fajl li kont qed teditja, u dan huwa dak li jagħmel il-loop daqshekk konfuż l-ewwel darba li tiltaqa’ miegħu.

Żewġ stati, fajl wieħed u salvataġġ waqt l-itfi

L-istat tal-eżekuzzjoni ta’ WireGuard u fajl tal-konfigurazzjoni ta’ wg-quick huma relatati iżda differenti. Il-fajl huwa input: wg-quick jaqrah, joħloq l-interface, jistabbilixxi indirizzi u rotot u jikkonfigura l-peers. L-apparat tal-kernel huwa l-oġġett ħaj, u bidliet ta’ livell baxx magħmula b’wg qatt ma jiktbu lilhom infushom lura.

Ħlief f’direzzjoni waħda. Meta SaveConfig = true jidher fis-sezzjoni tal-interface, wg-quick isalva l-konfigurazzjoni ħajja fil-fajl bħala parti mit-tniżżil tal-interface. Il-manwal ta’ wg-quick jwissi dwar dan eżattament: bidliet magħmula fil-fajl waqt li l-interface hija attiva jistgħu jiġu sostitwiti meta titneħħa. Dan huwa salvataġġ waqt l-itfi, mhux timer fl-isfond, għalhekk jaħdem biss meta xi ħaġa twaqqaf l-interface.

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

Aqra t-tabella bħala twissija dwar l-ordni. Kull telf aċċidentali f’dan il-qasam jiġi minn editjar li seħħ qabel salvataġġ minflok warajh.

L-ewwel waqqaf, it-tieni editja, fl-aħħar ibda

Jekk il-fajl huwa s-sors tal-verità tiegħek, agħmel il-fajl awtorevoli bil-bini minflok bit-tama. Niżżel l-interface, ikkonferma li marret, imbagħad editja, imbagħad erġa’ tellagħha. Ir-regola hija sempliċi: m’hemm l-ebda editjar waqt li salvataġġ għadu jista’ jaħdem.

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

Il-linja tal-backup mhijiex ċerimonja. Jekk it-tunnel huwa l-mod kif tasal għal din il-magna, il-pass tat-tniżżil jista’ jtemm is-sessjoni tiegħek, u kopja fuq id-diska flimkien ma’ console jew mogħdija barra l-faxxa hija l-uniku rollback li jaħdem. Iċċekkja dik it-tieni linja qabel ma tafdaha: isem tal-interface skadut fi skript li jonqos bil-kwiet huwa l-mod kif in-nies jeditjaw fajl li għadu ħaj.

Li tistabbilixxi SaveConfig = false qabel tniżżil normali hija t-triq l-oħra aċċettata, u trid issir fil-fajl li wg-quick jaqra verament. Dan jipprevjeni dak is-salvataġġ awtomatiku wieħed. Dan ma jagħmilx profil separat ta’ NetworkManager, esportazzjoni ta’ router jew entrypoint ta’ container jerġgħu jgħabbu l-editjar tiegħek, għax dawk il-maniġers qatt ma jaqraw dan il-fajl.

Applika bidliet tal-peers mingħajr ma tħarrek l-interface

Mhux kull editjar jeħtieġ waqfa. Bidliet fil-livell tal-peer jistgħu jiġu applikati għal interface li qed taħdem billi l-fajl jinbidel f’konfigurazzjoni u jiġi sinkronizzat, li jevita kompletament il-pass tat-tniżżil u għalhekk jevita s-salvataġġ:

sudo wg syncconf wg0 <(sudo wg-quick strip wg0)
sudo wg show wg0 peers
sudo wg show wg0 latest-handshakes

Il-pass strip huwa importanti. Jistampa l-fajl bil-kjavi li jappartjenu biss lil wg-quick imneħħija, sabiex l-indirizzi, id-DNS u d-direttivi tar-routing ma jmorrux f’għodda li ma tifhimx. Is-sinkronizzazzjoni mbagħad tapplika l-peers u l-kjavi fuq l-apparat ħaj mingħajr ma toħloq mill-ġdid l-interface, għalhekk is-sessjonijiet u r-rotot eżistenti jibqgħu ħajjin.

Kun preċiż dwar il-limiti. Is-sinkronizzazzjoni tal-peers ma tbiddilx l-indirizz tal-interface, ir-rotot li żied wg-quick jew il-konfigurazzjoni tar-resolver, għax xejn minn dan ma jappartjeni lill-apparat WireGuard. Li żżid subnet ma’ AllowedIPs u tistenna li l-kernel jirrotjah hija l-qari żbaljat klassiku; ir-rotta trid tiżdied minn wg-quick fil-ħin tat-tlugħ jew minnek.

Iċċekkja min għandu l-interface qabel ma teditja xejn

Fuq desktop jew server immexxi minn sistema tal-konfigurazzjoni, il-fajl jista’ jkun output minflok input. Konnessjoni ta’ NetworkManager, profil iġġenerat minn router jew skript tal-bidu ta’ container jistgħu kollha jkollhom l-istess isem tal-interface, u f’dak il-każ sekwenza wg-quick bla difett xorta teditja l-artefatt żbaljat.

systemctl status wg-quick@wg0 --no-pager
nmcli connection show | grep -i wireguard
sudo wg showconf wg0 | head -n 5

It-tielet kmand jistampa l-konfigurazzjoni ħajja fl-istess format bħall-fajl, inkluża l-kjavi privata, li hija utli għat-tqabbil u perikoluża fi ticket. Redaġiha qabel ma tippejstja; kjavi privata fi thread ta’ appoġġ hija kompromess permanenti, mhux typo.

Jekk l-unità tas-servizz hija inattiva iżda l-interface teżisti, xi ħaġa oħra ħolqot lilha u l-fajl mhuwiex awtorevoli. Dik l-osservazzjoni waħda tiffranka siegħa ta’ editjar ta’ fajl li xejn ma jaqrah.

Ivverifika r-restart li jmiss, imbagħad żomm rollback

It-test li verament jipprova l-korrezzjoni huwa t-tieni restart, għax dik hija s-sekwenza li falliet l-ewwel darba. Ikkonferma li l-peer jibqa’ ħaj u li l-konfigurazzjoni ħajja għadha taqbel ma’ dak li hemm fuq id-diska:

sudo systemctl restart wg-quick@wg0
sudo wg show wg0 latest-handshakes
sudo grep -c '^\[Peer\]' /etc/wireguard/wg0.conf

Mexxi r-restart darbtejn. Pass nadif wieħed jista’ jkun xorti: l-ewwel restart jista’ jikkonsma bidla fl-eżekuzzjoni li kienet għadha ma ġietx salvata, għalhekk it-tieni huwa dak li jgħidlek li l-fajl u l-eżekuzzjoni qablu fl-aħħar tal-ewwel.

Żomm il-backup mill-bidu tal-proċess sakemm tkun għamilt ir-restart doppju, imbagħad ħassarha jew ċċaqlaqha barra mid-direttorju tal-konfigurazzjoni. wg0.conf.bak mitluf ħdejn il-fajl veru huwa bla ħsara għal wg-quick u konfuż għall-persuna li jmiss, li fl-aħħar se teditja l-ħażin.

Artikli relatati