Wêrom wg-quick wg0.conf oerskriuwt as jo de ynterface stopje
SaveConfig is in bewarjen by it ôfsluten, net in eftergrûnsynchronisaasje. Bewurkje it bestân wylst de tunnel oan is, en in werstart kin de âlde tastân deroer skriuwe.
Jo foegje in peer ta oan /etc/wireguard/wg0.conf, rinne systemctl restart wg-quick@wg0, en de peer is fuort út it bestân as jo wer sjogge. Neat hat neat skansearre. In werstart is in stop folge troch in start, en de stopstap kin de hjoeddeistige rin-tastân oer it bestân skriuwe dat jo krekt bewurke hawwe. De ynstelling dy’t ferantwurdlik is, wennet yn itselde bestân dat jo bewurken, en dat is wat de lus sa betiizjend makket de earste kear dat jo der tsjin oan rinne.
Twa tastannen, ien bestân en in bewarjen by it ôfsluten
De rin-tastân fan WireGuard en in wg-quick-konfiguraasjebestân binne besibbe mar ferskillend. It bestân is ynfier: wg-quick lêst it, makket de ynterface, set adressen en rûtes en konfigurearret peers. It kernel-apparaat is it libbene objekt, en leech-nivo feroarings dien mei wg skriuwe har nea werom.
Utsein yn ien rjochting. As SaveConfig = true yn ’e ynterface-seksje stiet, bewarret wg-quick de libbene konfiguraasje yn it bestân as ûnderdiel fan it delheljen fan ’e ynterface. It wg-quick-hânboek warskôget krekt hjirfoar: feroarings oan it bestân wylst de ynterface oan is, kinne oerskreaun wurde as it fuorthelle wurdt. It is in bewarjen by it ôfsluten, net in eftergrûnstiidmeter, dus it giet allinnich ôf as eat de ynterface stopet.
| 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 |
Lês de tabel as in warskôging oer folchoarder. Elk tafallich ferlies yn dit gebiet komt fan in bewurking dy’t barde foar in bewarjen ynstee fan dêrnei.
Stopje earst, bewurkje twadde, startje lêst
As it bestân jo boarne fan wierheid is, meitsje it bestân dan gesachhawwend troch konstruksje ynstee fan troch hoop. Helje de ynterface del, befêstigje dat er fuort is, bewurkje dan, en bring it dan wer omheech. De regel is ienfâldich: gjin bewurking bestiet wylst in bewarjen noch rinne kin.
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
De reservekopyrigel is gjin seremoanje. As de tunnel jo manier is om dit masjine te berikken, kin de delhelstap jo sesje einigje, en in kopy op skiif plus in konsôle of in bûtenbânse paad is de iennige weromsettting dy’t wurket. Kontrolearje dy twadde rigel foardat jo him fertrouwe: in ferâldere ynterfacenamme yn in skript dat stil mislearret is hoe’t minsken in bestân bewurkje dat noch libbet.
SaveConfig = false ynstelle foar in normale delhel is de oare akseptearre rûte, en it moat dien wurde yn it bestân dat wg-quick eins lêst. It foarkomt dat iene automatyske bewarjen. It soarget der net foar dat in apart NetworkManager-profyl, in router-eksport of in container-yngeappunt jo bewurkings wer lade, want dy behearders lêze dit bestân hielendal net.
Pas peer-feroarings ta sûnder de ynterface te skuorren
Net elke bewurking hat in ûnderbrekking nedich. Peer-nivo feroarings kinne tapast wurde op in rinnende ynterface troch it bestân yn in konfiguraasje te feroarjen en dy te syngronisearjen, wat de delhelstap folslein mijd en dêrmei it bewarjen mijd:
sudo wg syncconf wg0 <(sudo wg-quick strip wg0)
sudo wg show wg0 peers
sudo wg show wg0 latest-handshakes
De strip-stap is wichtich. Hy prints it bestân mei de kaaien dy’t allinnich by wg-quick hearre fuorthelle, sadat adressen, DNS en rûte-ynstruksjes net by in helpmiddel komme dat se net begrypt. De syngronisaasje past dan peers en kaaien ta op it libbene apparaat sûnder de ynterface opnij te meitsjen, sadat besteande sesjes en rûtes oerlibje.
Wês presys oer de grinzen. It syngronisearjen fan peers feroaret it ynterface-adres, de rûtes dy’t wg-quick tafoege of de resolver-konfiguraasje net, want gjin fan dy dingen heart by it WireGuard-apparaat. In subnet tafoegje oan AllowedIPs en ferwachtsje dat de kernel it rûtet is de klassike ferkearde lêzing; de rûte moat troch wg-quick by it omheechheljen of troch jo tafoege wurde.
Kontrolearje wa’t de ynterface hat foardat jo eat bewurkje
Op in buroblêd of in tsjinner beheard troch in konfiguraasjesysteem, kin it bestân in útfier wêze ynstee fan in ynfier. In NetworkManager-ferbining, in troch in router generearre profyl of in container-startskript kinne allegear deselde ynterfacenamme hawwe, en yn dat gefal bewurket in flaterfrij wg-quick-folchoarder noch altyd it ferkearde artefakt.
systemctl status wg-quick@wg0 --no-pager
nmcli connection show | grep -i wireguard
sudo wg showconf wg0 | head -n 5
It tredde kommando prints de libbene konfiguraasje yn itselde formaat as it bestân, mei de priveekaai, wat nuttich is foar fergeliking en gefaarlik yn in ticket. Meitsje it ûnlêsber foardat jo it plakke; in priveekaai yn in stipe-ried is in permaninte kompromis, gjin typflater.
As de tsjinst-ienheid ynaktyf is mar de ynterface bestiet, hat eat oars it makke en it bestân is net gesachhawwend. Dy iene observaasje sparret in oere bewurkjen fan in bestân dat neat lêst.
Ferifiearje de folgjende werstart en hâld dan in weromsettting
De test dy’t de repaasje echt bewissiget, is in twadde werstart, want dat is de folchoarder dy’t de earste kear mislearre. Befêstigje dat de peer it oerlibbet en dat de libbene konfiguraasje noch oerienkomt mei wat op ’e skiif stiet:
sudo systemctl restart wg-quick@wg0
sudo wg show wg0 latest-handshakes
sudo grep -c '^\[Peer\]' /etc/wireguard/wg0.conf
Rin de werstart twa kear. Ien skjinne passaazje kin gelok wêze: de earste werstart kin in rin-feroaring ferbrûke dy’t noch net bewarre wie, dus de twadde is dejinge dy’t jo fertelt dat it bestân en de rin it oan ’e ein fan ’e earste iens wiene.
Hâld de reservekopy fan it begjin fan it proses oant jo de dûbele werstart dien hawwe, en smyt him dan fuort of ferpleatse him út ’e konfiguraasjemap. In ferdwaalde wg0.conf.bak njonken it echte bestân is ûnskiedlik foar wg-quick en betiizjend foar de folgjende persoan, dy’t úteinlik de ferkearde bewurkje sil.