WireGuard-eweknie weg ná herbegin: vind die regte konfigurasie
'n Eweknie wat jy met wg set byvoeg, werk tot die volgende herbegin, want die koppelvlak word herbou uit 'n lêer of profiel wat jy nooit geredigeer het nie. Vind eers die eienaar.
'n Eweknie wat jy met wg set bygevoeg het, antwoord die hele middag op pings en is ná die herbegin weg. Niks is beskadig nie: die kernel het daardie eweknie nêrens anders as in die lewende koppelvlak gestoor nie, en enigiets wat die koppelvlak by die selflaai herbou, het dit uit 'n lêer gebou wat jy nie aangeraak het nie. Die oplossing is nie nog 'n wg set nie. Dit is om uit te vind watter komponent die koppelvlak besit, daardie komponent se toestand te wysig, en dan te bewys dat die eweknie die presiese lewensiklusgebeurtenis oorleef wat dit verwyder het.
Reproduseer dit een keer, met opset
Moenie 'n herbeginprobleem oplos voordat jy dit kan sien gebeur nie. Met konsole- of buiteband-toegang beskikbaar, teken die eweknielys aan, herbegin deur die diens wat die koppelvlak besit, en vergelyk. As die eweknie nog daar is, het jou wysiging reeds die blywende toestand bereik en ontfout jy die verkeerde gebeurtenis.
Skryf drie feite neer terwyl jy dit doen: die koppelvlaknaam, die eenheid of profiel wat dit begin het, en of die handdrukteller op die oorblywende eweknie teruggesit is. 'n Teruggesette teller beteken die koppelvlak is vernietig en herbou; 'n onveranderde teller met 'n ontbrekende eweknie beteken iets het die konfigurasie onder jou voete gewysig.
Wie besit die koppelvlak?
WireGuard self het geen daemon en geen konfigurasielêer nie. Iets bokant dit roep wg by die selflaai, en daardie iets is die bron van waarheid. Die gewone kandidate is [email protected], 'n NetworkManager-verbindingsprofiel, 'n verspreidingspesifieke netwerkeenheid, of 'n bestuurspaneel wat sy eie databasis skryf.
Vra die stelsel eerder as die dokumentasie vir jou verspreiding. systemctl status wg-quick@wg0 en nmcli connection show sal dit gewoonlik met een opdrag elk besleg. As albei die koppelvlak opeis, het jy die fout gevind voordat jy enigiets wysig: twee eienaars wat dieselfde toestel by elke begin herskryf, met die laaste een wat wen.
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 peersLooptydtoestand en begintoestand is nie dieselfde lêer nie
wg set manipuleer die lewende toestel deur netlink. Dit skryf nie /etc/wireguard/wg0.conf, 'n NetworkManager-profiel of 'n paneel se databasis nie. 'n Suksesvolle wg show daarna bewys die kernel het die eweknie aanvaar, nie dat iets dit sal herstel nie.
Daar is 'n tweede lokval in die ander rigting. wg-quick se SaveConfig-opsie skryf die huidige koppelvlaktoestand terug na die konfigurasielêer wanneer die koppelvlak afgeskakel word. Met dit geaktiveer, kan 'n wysiging aan die lêer terwyl die koppelvlak op is, deur die daaropvolgende afskakeling oorskryf word, en jy sal sweer die reël was daar. As die eweknie bly terugkeer, lees die lêer ná 'n stop, nie voor nie.
NetworkManager gedra hom weer anders: dit besit die profiel en pas dit toe by aktivering, so 'n handgewysigde .conf langs 'n aktiewe NetworkManager-verbinding is bloot versiering. Kies een eienaar vir die koppelvlak en laat die ander bestuurder dit uitlos.
Laat die wysiging op albei plekke beland
Wysig eers die blywende toestand, laat dan die eienaar dit toepas, en verifieer dan die lewende toestand. Daardie volgorde beteken 'n fout by enige stap wys na een ding eerder as drie.
# 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 druk die lewende konfigurasie in dieselfde sintaksis as die lêer, wat die twee direk vergelykbaar maak. Behandel daardie uitset as geheim: dit bevat private sleutels, so moenie dit in 'n kaartjie of 'n gesprekskanaal plak nie. Vergelyk eweknie-publieke sleutels en toegelate IP's, en kyk of die eweknie wat jy doelbewus verwyder het nie terug is nie.
Bewys dat dit die lewensiklusgebeurtenis oorleef
Herbegin 'n tweede keer deur die eienaar, en bevestig dan drie afsonderlike dinge: die eweknie verskyn in wg show, die handdrukteller styg ná verkeer, en die toepassing wat van die tonnel afhanklik is, antwoord werklik. 'n Eweknie wat met 'n verouderde handdruk gelys word, is 'n roetering- of sleutelprobleem, nie 'n blywendheidsprobleem nie, en die onderskeid spaar 'n nuttelose konfigurasiewysiging.
Kontroleer laastens wat die herbegin herstel het. 'n Herbegin wat 'n eweknie laat herleef wat jy doelbewus verwyder het, is dieselfde fout met die teenoorgestelde teken, en dit beteken gewoonlik 'n ou kopie van die konfigurasie word nog steeds van iewers gelaai. Teken die eienaar, die lêerpad, die eweknie se publieke sleutel en die verifikasieopdragte langs die konfigurasie aan, sodat die volgende persoon dit nie weer ontdek deur 'n produksiegasheer te herbegin nie.