WireGuard-peer forsvinner etter omstart: finn den ekte konfigurasjonen
En peer du legger til med wg set virker til neste omstart, fordi grensesnittet bygges opp på nytt fra en fil eller profil du aldri har redigert. Finn eieren først.
Peeren du la til med wg set svarer på ping hele ettermiddagen og er borte etter omstarten. Ingenting ble skadet: kjernen lagret aldri den peeren noe annet sted enn i det levende grensesnittet, og alt som gjenoppretter grensesnittet ved oppstart bygde det fra en fil du ikke har rørt. Reparasjonen er ikke nok en wg set. Det handler om å finne ut hvilken komponent som eier grensesnittet, redigere tilstanden til den komponenten og deretter bevise at peeren overlever nøyaktig den livssyklushendelsen som fjernet den.
Gjenskap det én gang, med vilje
Ikke fiks et omstartsproblem før du kan se det skje. Med konsoll- eller out-of-band-tilgang tilgjengelig, noter peerlisten, start på nytt gjennom tjenesten som eier grensesnittet, og sammenlign. Hvis peeren fortsatt er der, har endringen din allerede nådd den vedvarende tilstanden, og du feilsøker feil hendelse.
Skriv ned tre fakta mens du gjør dette: navnet på grensesnittet, enheten eller profilen som startet det, og om håndtrykk-telleren på peeren som overlevde ble nullstilt. En nullstilt teller betyr at grensesnittet ble ødelagt og gjenopprettet; en uendret teller med en manglende peer betyr at noe redigerte konfigurasjonen under føttene dine.
Hvem eier grensesnittet?
WireGuard selv har ingen daemon og ingen konfigurasjonsfil. Noe over det kaller wg ved oppstart, og det noe er sannhetens kilde. De vanlige kandidatene er [email protected], en NetworkManager-tilkoblingsprofil, en distribusjonsspesifikk nettverksenhet eller et administrasjonspanel som skriver sin egen database.
Spør systemet, ikke dokumentasjonen til distribusjonen din. systemctl status wg-quick@wg0 og nmcli connection show avgjør det vanligvis med én kommando hver. Hvis begge gjør krav på grensesnittet, har du funnet feilen før du redigerte noe: to eiere skriver om den samme enheten ved hver oppstart, og den siste som kjører vinner.
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 peersKjøretidstilstand og oppstartstilstand er ikke samme fil
wg set manipulerer den levende enheten via netlink. Det skriver ikke /etc/wireguard/wg0.conf, en NetworkManager-profil eller en panels database. En vellykket wg show etterpå beviser at kjernen godtok peeren, ikke at noe vil gjenopprette den.
Det finnes en andre felle i motsatt retning. wg-quicks innstilling SaveConfig skriver den gjeldende tilstanden til grensesnittet tilbake til konfigurasjonsfilen når grensesnittet tas ned. Med den aktivert kan en endring i filen mens grensesnittet er oppe bli overskrevet av nedstengingen som følger, og du vil sverge på at linjen var der. Hvis peeren stadig kommer tilbake, les filen etter en stopp, ikke før.
NetworkManager oppfører seg annerledes igjen: den eier profilen og bruker den ved aktivering, så en håndredigert .conf ved siden av en aktiv NetworkManager-tilkobling er bare dekorasjon. Velg én eier for grensesnittet og la den andre administratoren la det være i fred.
Sørg for at endringen lander begge steder
Rediger den vedvarende tilstanden først, la deretter eieren bruke den, og verifiser til slutt den levende tilstanden. Den rekkefølgen betyr at en feil på et hvilket som helst trinn peker på én ting i stedet for tre.
# 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 skriver ut den levende konfigurasjonen i samme syntaks som filen bruker, noe som gjør de to direkte sammenlignbare. Behandle den utskriften som en hemmelighet: den inneholder private nøkler, så ikke lim den inn i en sak eller en chatkanal. Sammenlign peerenes offentlige nøkler og de tillatte IP-adressene, og kontroller at peeren du fjernet med vilje ikke er tilbake.
Bevis at den overlever livssyklushendelsen
Start på nytt gjennom eieren en gang til, og bekreft deretter tre separate ting: peeren vises i wg show, håndtrykk-telleren øker etter trafikk, og applikasjonen som er avhengig av tunnelen svarer faktisk. En peer som er listet med et gammelt håndtrykk er et ruting- eller nøkkelproblem, ikke et vedvarende problem, og den forskjellen sparer en meningsløs konfigurasjonsendring.
Til slutt, kontroller hva omstarten gjenopprettet. En omstart som gjenoppliver en peer du fjernet med vilje, er den samme feilen med motsatt fortegn, og det betyr vanligvis at en gammel kopi av konfigurasjonen fortsatt lastes fra et sted. Noter eieren, filstien, peerens offentlige nøkkel og verifiseringskommandoene ved siden av konfigurasjonen, slik at neste person ikke gjenoppdager dette ved å starte en produksjonsvert på nytt.