Peer, mille lisasite käsuga wg set, vastab pingidele kogu pärastlõuna ja on pärast taaskäivitust kadunud. Midagi ei rikutud: kernel ei salvestanud seda peer'i kunagi mujale kui elavasse liidesesse, ja kõik, mis liidese käivitamisel uuesti loob, ehitas selle failist, mida te ei puutunud. Parandus ei ole veel üks wg set. Tuleb välja selgitada, milline komponent liidest omab, muuta selle komponendi olekut ja seejärel tõestada, et peer elab üle täpselt selle elutsükli sündmuse, mis selle eemaldas.

Korrake seda üks kord, meelega

Ärge parandage taaskäivituse probleemi enne, kui näete seda juhtumas. Kui konsooli- või ribaväline juurdepääs on olemas, kirjutage peer'ide nimekiri üles, taaskäivitage liidest omava teenuse kaudu ja võrrelge. Kui peer on endiselt kohal, on teie muudatus juba püsiolekusse jõudnud ja te silute vale sündmust.

Kirjutage selle käigus üles kolm fakti: liidese nimi, selle käivitanud unit või profiil, ja kas ellujäänud peer'i kätlemisloendur nulliti. Nullitud loendur tähendab, et liides hävitati ja loodi uuesti; muutumatu loendur koos puuduva peer'iga tähendab, et miski muutis konfiguratsiooni teie jalge all.

Kes liidest omab?

WireGuardil endal ei ole deemonit ega konfiguratsioonifaili. Miski selle kohal kutsub käivitamisel välja wg, ja see miski on tõe allikas. Tavalised kandidaadid on [email protected], NetworkManageri ühendusprofiil, distributsioonipõhine võrguüksus või halduspaneel, mis kirjutab oma andmebaasi.

Küsige süsteemilt, mitte oma distributsiooni dokumentatsioonilt. systemctl status wg-quick@wg0 ja nmcli connection show lahendavad selle tavaliselt ühe käsuga kumbki. Kui mõlemad liidest endale nõuavad, olete vea leidnud enne millegi muutmist: kaks omanikku kirjutavad igal käivitamisel sama seadet üle ja võidab see, mis jookseb viimasena.

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 peers

Tööaegne olek ja käivitusolek ei ole sama fail

wg set haldab elavat seadet netlinki kaudu. See ei kirjuta /etc/wireguard/wg0.conf, NetworkManageri profiili ega paneeli andmebaasi. Edukas wg show pärast seda tõestab, et kernel võttis peer'i vastu, mitte et miski selle taastab.

Vastassuunas on teine lõks. wg-quick'i valik SaveConfig kirjutab liidese praeguse oleku konfiguratsioonifaili tagasi, kui liides maha võetakse. Kui see on lubatud, võib liidese töötamise ajal faili tehtud muudatuse järgnev seiskamine üle kirjutada, ja te vannute, et rida oli seal. Kui peer ikka tagasi tuleb, lugege faili pärast seiskamist, mitte enne.

NetworkManager käitub jälle teisiti: see omab profiili ja rakendab seda aktiveerimisel, seega käsitsi muudetud .conf aktiivse NetworkManageri ühenduse kõrval on vaid dekoratsioon. Valige liidesele üks omanik ja laske teisel halduril see rahule jätta.

Tehke nii, et muudatus jõuaks mõlemasse kohta

Muutke esmalt püsiolekut, siis laske omanikul see rakendada, seejärel kontrollige elavat olekut. Selline järjekord tähendab, et tõrge ükskõik millisel sammul osutab ühele asjale kolme asemel.

# 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 wg0

wg showconf prindib elava konfiguratsiooni samas süntaksis, mida fail kasutab, mis teeb need kaks otseselt võrreldavaks. Käsitlege seda väljundit saladusena: see sisaldab privaatvõtmeid, seega ärge kleepige seda piletisse ega vestluskanalisse. Võrrelge peer'ide avalikke võtmeid ja lubatud IP-sid ning kontrollige, et teie meelega eemaldatud peer ei ole tagasi tulnud.

Tõestage, et see elab elutsükli sündmuse üle

Taaskäivitage omaniku kaudu teist korda ja kinnitage siis kolm eraldi asja: peer ilmub väljundisse wg show, kätlemisloendur kasvab pärast liiklust ja tunnelist sõltuv rakendus vastab tegelikult. Vanunud kätlemisega loetletud peer on marsruutimise või võtme probleem, mitte püsivuse probleem, ja see eristus säästab mõttetu konfiguratsioonimuudatuse.

Lõpuks kontrollige, mida taaskäivitus taastas. Taaskäivitus, mis äratab ellu teie meelega eemaldatud peer'i, on sama viga vastupidise märgiga ja tavaliselt tähendab, et kusagilt laaditakse endiselt vana konfiguratsioonikoopiat. Kirjutage omanik, failitee, peer'i avalik võti ja kontrollikäsud konfiguratsiooni kõrvale, et järgmine inimene ei avastaks seda uuesti, taaskäivitades tootmisserverit.

Seotud artiklid