Peer WireGuard zmizne po reštarte: nájdite skutočnú konfiguráciu
Peer pridaný cez wg set funguje do ďalšieho reštartu, pretože rozhranie sa znova zostavuje zo súboru alebo profilu, ktorý ste nikdy neupravovali. Najprv nájdite vlastníka.
Peer, ktorý ste pridali cez wg set, odpovedá na ping celé popoludnie a po reštarte je preč. Nič sa nepoškodilo: jadro tento peer nikdy neuložilo nikam inam ako do živého rozhrania a všetko, čo rozhranie pri štarte znova vytvára, ho postavilo zo súboru, ktorého ste sa nedotkli. Oprava nie je ďalší wg set. Treba zistiť, ktorý komponent rozhranie vlastní, upraviť stav tohto komponentu a potom dokázať, že peer prežije presne tú udalosť životného cyklu, ktorá ho odstránila.
Zopakujte to raz, naschvál
Neopravujte problém s reštartom, kým ho neuvidíte na vlastné oči. Ak je dostupný prístup cez konzolu alebo mimo pásma, poznačte si zoznam peerov, reštartujte cez službu, ktorá rozhranie vlastní, a porovnajte. Ak tam peer stále je, vaša zmena už dosiahla trvalý stav a ladeníte nesprávnu udalosť.
Zapíšte si pri tom tri fakty: názov rozhrania, unit alebo profil, ktorý ho spustil, a to, či sa počítadlo handshake na preživšom peerovi vynulovalo. Vynulované počítadlo znamená, že rozhranie bolo zničené a znova vytvorené; nezmenené počítadlo s chýbajúcim peerom znamená, že niekto upravil konfiguráciu pod vašimi nohami.
Kto rozhranie vlastní?
Samotný WireGuard nemá žiadneho démona ani konfiguračný súbor. Niečo nad ním pri štarte volá wg a to niečo je zdrojom pravdy. Obvyklí kandidáti sú [email protected], profil pripojenia NetworkManageru, sieťový unit špecifický pre distribúciu alebo správcovský panel, ktorý si píše vlastnú databázu.
Pýtajte sa systému, nie dokumentácie svojej distribúcie. systemctl status wg-quick@wg0 a nmcli connection show to zvyčajne vyriešia jedným príkazom každý. Ak si na rozhranie robia nárok obaja, našli ste chybu pred akoukoľvek úpravou: dvaja vlastníci prepisujú to isté zariadenie pri každom štarte a vyhráva ten, kto sa spustí posledný.
systemctl status wg-quick@wg0 --no-pager
grep -R "Address\|SaveConfig\|PostUp" /etc/wireguard/wg0.conf
nmcli -g NAME,TYPE connection show
wg show wg0 peersStav za behu a stav pri štarte nie sú ten istý súbor
wg set ovláda živé zariadenie cez netlink. Nezapisuje /etc/wireguard/wg0.conf, profil NetworkManageru ani databázu panela. Úspešný wg show potom dokazuje, že jadro peer prijalo, nie že ho niečo obnoví.
Existuje aj druhá pasca v opačnom smere. Voľba SaveConfig v wg-quick zapisuje aktuálny stav rozhrania späť do konfiguračného súboru, keď sa rozhranie zhadzuje. Keď je zapnutá, úpravu súboru vykonanú počas behu rozhrania môže prepísať nasledujúce vypnutie a budete prisahať, že ten riadok tam bol. Ak sa peer stále vracia, čítajte súbor po zastavení, nie pred ním.
NetworkManager sa správa zase inak: vlastní profil a uplatňuje ho pri aktivácii, takže ručne upravený .conf vedľa aktívneho pripojenia NetworkManageru je len dekorácia. Vyberte pre rozhranie jedného vlastníka a nechajte druhého správcu, aby ho nechal na pokoji.
Zariadte, aby úprava dopadla na obe miesta
Najprv upravte trvalý stav, potom nechajte vlastníka, aby ho použil, a napokon overte živý stav. Také poradie znamená, že zlyhanie v ktoromkoľvek kroku ukazuje na jednu vec namiesto troch.
# 1. persistent state (wg-quick owner)
sudo vi /etc/wireguard/wg0.conf
# 2. apply through the owner, not by hand
sudo systemctl restart wg-quick@wg0
# 3. verify runtime matches the file
sudo wg show wg0
sudo wg showconf wg0wg showconf vypisuje živú konfiguráciu v rovnakej syntaxi, akú používa súbor, takže obe sú priamo porovnateľné. Považujte tento výstup za tajný: obsahuje súkromné kľúče, preto ho nevkladajte do tiketu ani do chatovacieho kanála. Porovnajte verejné kľúče peerov a povolené IP adresy a skontrolujte, či sa peer, ktorého ste naschvál odstránili, nevrátil.
Dokážte, že prežije udalosť životného cyklu
Reštartujte cez vlastníka druhýkrát a potom potvrďte tri oddelené veci: peer sa objaví v wg show, počítadlo handshake rastie po prevádzke a aplikácia, ktorá závisí od tunela, skutočne odpovedá. Peer uvedený so zastaraným handshake je problém smerovania alebo kľúča, nie problém trvalosti, a toto rozlíšenie ušetrí zbytočnú úpravu konfigurácie.
Nakoniec skontrolujte, čo reštart obnovil. Reštart, ktorý oživí naschvál odstráneného peera, je tá istá chyba s opačným znamienkom a zvyčajne znamená, že sa odniekiaľ stále načítava stará kópia konfigurácie. Zapíšte vlastníka, cestu k súboru, verejný kľúč peera a overovacie príkazy vedľa konfigurácie, aby to ďalší človek znova neobjavoval reštartom produkčného hostiteľa.