Afegiu un peer a /etc/wireguard/wg0.conf, executeu systemctl restart wg-quick@wg0, i el peer desapareix del fitxer quan torneu a mirar. Res no ha corromput res. Un reinici és una aturada seguida d’una arrencada, i el pas d’aturada pot escriure l’estat d’execució actual a sobre del fitxer que acabeu d’editar. La configuració responsable viu al mateix fitxer que editàveu, i això és el que fa que el bucle sigui tan confús el primer cop que hi topeteu.

Dos estats, un fitxer i un desament en apagar

L’estat d’execució de WireGuard i un fitxer de configuració wg-quick estan relacionats però són diferents. El fitxer és entrada: wg-quick el llegeix, crea la interfície, estableix adreces i rutes i configura els peers. El dispositiu del nucli és l’objecte viu, i els canvis de baix nivell fets amb wg mai no s’escriuen de tornada.

Excepte en una direcció. Quan SaveConfig = true apareix a la secció d’interfície, wg-quick desa la configuració viva al fitxer com a part de baixar la interfície. El manual de wg-quick adverteix exactament d’això: els canvis fets al fitxer mentre la interfície és activa es poden sobreescriure quan es treu. És un desament en apagar, no un temporitzador de fons, així que només s’activa quan alguna cosa atura la interfície.

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

Llegiu la taula com una advertència sobre l’ordre. Cada pèrdua accidental en aquest àmbit ve d’una edició que va passar abans d’un desament en lloc de després.

Primer atureu, després editeu, al final arrenqueu

Si el fitxer és la vostra font de veritat, feu el fitxer autoritatiu per construcció en lloc de per esperança. Baixeu la interfície, confirmeu que ha desaparegut, després editeu, després torneu-la a aixecar. La regla és simplement que no existeixi cap edició mentre un desament encara pugui executar-se.

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

La línia de còpia de seguretat no és cerimònia. Si el túnel és com arribeu a aquesta màquina, el pas de baixada pot acabar la vostra sessió, i una còpia al disc més una consola o una via fora de banda és l’únic retrocés que funciona. Comproveu aquesta segona línia abans de confiar-hi: un nom d’interfície obsolet en un script que falla en silenci és com la gent edita un fitxer que encara és viu.

Posar SaveConfig = false abans d’una baixada normal és l’altra ruta acceptada, i s’ha de fer al fitxer que wg-quick llegeix realment. Evita aquell desament automàtic. No fa que un perfil de NetworkManager a part, una exportació de router o un punt d’entrada de contenidor recarreguin les vostres edicions, perquè aquests gestors no llegeixen mai aquest fitxer.

Apliqueu canvis de peers sense esquinçar la interfície

No tota edició necessita una caiguda. Els canvis a nivell de peer es poden aplicar a una interfície en marxa convertint el fitxer en una configuració i sincronitzant-la, cosa que evita del tot el pas de baixada i, per tant, evita el desament:

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

El pas strip importa. Imprimeix el fitxer amb les claus només de wg-quick eliminades, de manera que les adreces, el DNS i les directrius d’encaminament no arriben a una eina que no les entén. La sincronització aplica després els peers i les claus al dispositiu viu sense recrear la interfície, així que les sessions i rutes existents sobreviuen.

Sigueu precisos sobre els límits. Sincronitzar peers no canvia l’adreça de la interfície, les rutes que wg-quick va afegir ni la configuració del resolutor, perquè cap d’aquestes coses no pertany al dispositiu WireGuard. Afegir una subxarxa a AllowedIPs i esperar que el nucli l’encamini és la mala lectura clàssica; la ruta l’ha d’afegir wg-quick en aixecar-se o vosaltres.

Comproveu qui posseeix la interfície abans d’editar res

En un escriptori o un servidor gestionat per un sistema de configuració, el fitxer pot ser una sortida en lloc d’una entrada. Una connexió de NetworkManager, un perfil generat per un router o un script d’arrencada de contenidor poden posseir tots el mateix nom d’interfície, i en aquest cas una seqüència de wg-quick impecable encara edita l’artefacte equivocat.

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

La tercera ordre imprimeix la configuració viva en el mateix format que el fitxer, clau privada inclosa, cosa que és útil per comparar i perillosa en un tiquet. Redacteu-la abans d’enganxar-la; una clau privada en un fil de suport és un compromís permanent, no una errata.

Si la unitat de servei està inactiva però la interfície existeix, una altra cosa l’ha creada i el fitxer no és autoritatiu. Aquesta única observació estalvia una hora editant un fitxer que ningú llegeix.

Verifiqueu el proper reinici i després manteniu un retrocés

La prova que realment demostra l’arranjament és un segon reinici, perquè aquesta és la seqüència que va fallar el primer cop. Confirmeu que el peer hi sobreviu i que la configuració viva encara coincideix amb la del disc:

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

Executeu el reinici dues vegades. Una sola passada neta pot ser sort: el primer reinici pot consumir un canvi d’execució que encara no s’havia desat, així que el segon és el que us diu que el fitxer i l’execució van estar d’acord al final del primer.

Manteniu la còpia de seguretat des de l’inici del procés fins que hàgiu fet el doble reinici, després esborreu-la o moveu-la fora del directori de configuració. Un wg0.conf.bak extraviat al costat del fitxer real és inofensiu per a wg-quick i confús per a la persona següent, que finalment editarà el que no toca.

Articles relacionats