WireGuard partneris dingsta po perkrovimo: raskite tikrąją konfigūraciją
Partneris, pridėtas naudojant wg set, veikia iki kito perkrovimo, nes sąsaja atkuriama iš failo ar profilio, kurio niekada neredagavote. Pirmiausia raskite savininką.
Partneris, kurį pridėjote naudodami wg set, atsako į ping visą popietę ir dingsta po perkrovimo. Niekas nebuvo sugadinta: branduolys niekada nesaugojo šio partnerio niekur, išskyrus gyvą sąsają, o viskas, kas paleidžiant iš naujo sukuria sąsają, ją pastatė iš failo, kurio nelietėte. Taisymas nėra dar vienas wg set. Reikia išsiaiškinti, kuris komponentas valdo sąsają, pakeisti to komponento būseną ir tada įrodyti, kad partneris išgyvena būtent tą gyvavimo ciklo įvykį, kuris jį pašalino.
Kartokite tai vieną kartą, tyčia
Netaisykite perkrovimo problemos, kol nepamatysite, kaip ji vyksta. Kai yra prieiga prie konsolės arba už juostos, užsirašykite partnerių sąrašą, perkraukite per sąsają valdančią tarnybą ir palyginkite. Jei partneris dar yra, jūsų pakeitimas jau pasiekė nuolatinę būseną, o jūs derinate ne tą įvykį.
Tai darydami užsirašykite tris faktus: sąsajos pavadinimą, ją paleidusį unit arba profilį ir ar išlikusio partnerio rankos paspaudimo skaitiklis buvo atstatytas. Atstatytas skaitiklis reiškia, kad sąsaja buvo sunaikinta ir sukurta iš naujo; nepakitęs skaitiklis su dingusiu partneriu reiškia, kad kažkas redagavo konfigūraciją jums po kojomis.
Kas valdo sąsają?
Pats WireGuard neturi nei dermono, nei konfigūracijos failo. Kažkas virš jo paleidžiant kviečia wg, ir tas kažkas yra tiesos šaltinis. Įprasti kandidatai yra [email protected], NetworkManager ryšio profilis, distribucijai būdingas tinklo unit arba valdymo skydelis, kuris rašo savo duomenų bazę.
Klauskite sistemos, o ne savo distribucijos dokumentacijos. systemctl status wg-quick@wg0 ir nmcli connection show paprastai tai išsprendžia po vieną komandą. Jei abu pretenduoja į sąsają, klaidą radote prieš ką nors redaguodami: du savininkai kiekvieno paleidimo metu perrašo tą patį įrenginį, ir laimi tas, kuris įvykdomas paskutinis.
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 peersVeikimo būsena ir paleidimo būsena nėra tas pats failas
wg set valdo gyvą įrenginį per netlink. Jis nerašo /etc/wireguard/wg0.conf, NetworkManager profilio ar skydelio duomenų bazės. Sėkmingas wg show po to įrodo, kad branduolys priėmė partnerį, o ne kad kažkas jį atkurs.
Yra ir antras spąstas priešinga kryptimi. wg-quick parinktis SaveConfig numetus sąsają įrašo dabartinę sąsajos būseną atgal į konfigūracijos failą. Kai ji įjungta, failo pakeitimą, padarytą sąsajai veikiant, gali perrašyti po jo einantis išjungimas, ir jūs prisieksite, kad ta eilutė ten buvo. Jei partneris vis grįžta, skaitykite failą po sustabdymo, o ne prieš.
NetworkManager elgiasi dar kitaip: jis valdo profilį ir taiko jį aktyvavimo metu, todėl ranka redaguotas .conf prie aktyvaus NetworkManager ryšio yra tik dekoracija. Pasirinkite vieną sąsajos savininką ir leiskite kitam valdytojui jos neliesti.
Užtikrinkite, kad pakeitimas atsidurtų abiejose vietose
Pirmiausia redaguokite nuolatinę būseną, tada leiskite savininkui ją pritaikyti, o galiausiai patikrinkite gyvą būseną. Tokia tvarka reiškia, kad bet kuriame žingsnyje įvykęs gedimas nurodo į vieną dalyką, o ne į tris.
# 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 išspausdina gyvą konfigūraciją ta pačia sintakse, kurią naudoja failas, todėl abi galima tiesiogiai palyginti. Traktuokite šią išvestį kaip paslaptį: joje yra privačių raktų, todėl neįklijuokite jos į bilietą ar pokalbių kanalą. Palyginkite partnerių viešuosius raktus ir leidžiamus IP, ir patikrinkite, ar tyčia pašalintas partneris negrįžo.
Įrodykite, kad jis išgyvena gyvavimo ciklo įvykį
Perkraukite per savininką antrą kartą, tada patvirtinkite tris atskirus dalykus: partneris pasirodo wg show išvestyje, rankos paspaudimo skaitiklis padidėja po srauto, o nuo tunelio priklausanti programa tikrai atsako. Partneris su pasenusiu rankos paspaudimu yra maršrutizavimo arba rakto problema, o ne patvarumo problema, ir šis skirtumas sutaupo beprasmį konfigūracijos pakeitimą.
Galiausiai patikrinkite, ką perkrovimas atkūrė. Perkrovimas, kuris prikelia tyčia pašalintą partnerį, yra ta pati klaida su priešingu ženklu, ir paprastai reiškia, kad sena konfigūracijos kopija vis dar įkeliama iš kažkur. Užrašykite savininką, failo kelią, partnerio viešąjį raktą ir tikrinimo komandas šalia konfigūracijos, kad kitas žmogus neatskleistų to iš naujo perkraudamas produkcinį serverį.