Odstranitev zastarelega zapisa VPN iz podatkovne baze resolvconf
Na gostitelju, kjer stanje upravlja Debian resolvconf, je brisanje vnosa preprosto. Najprej dokažite, da je zapis zastarel in brez lastnika, nato preverite prepis.
Notranje ime se še vedno razrešuje na strežnik VPN dan po zaprtju tunela, datoteka razreševalnika pa se vedno znova vrača s tem vnosom. Kjer stanje upravlja Debian resolvconf, je ta datoteka sestavljena iz zapisov ponudnikov, in eden od njih je ostanek. Brisanje zapisa traja minuto; dokaz, da ga je varno izbrisati, je pravo delo. Ta vrata se izvajajo po vrsti, in neuspela vrata končajo postopek, namesto da bi vas poslala na naslednji korak.
Potrdite, da resolvconf upravlja stanje
Najprej določite lastnika, ker ista težava pod systemd-resolved zahteva druge ukaze in drugo popravilo. Paket resolvconf hrani podatkovno bazo v /run/resolvconf in usmerja /etc/resolv.conf na datoteko, ki jo sestavi iz te baze. Dve branji razrešita vprašanje: cilj simbolne povezave in ali je paket nameščen ter aktiven. Cilj v /run/systemd/resolve pomeni drugo zasnovo, kjer nič spodaj ne velja.
dpkg -l resolvconf | tail -1
ls -l /etc/resolv.conf
systemctl is-active resolvconf.service
Če povezava kaže drugam ali paket manjka, se ustavite tukaj. Združljivostni ovoj, ki si je izposodil ime in ga dobavlja drug upravitelj razreševalnika, ni lastnik te baze.
Baza vsebuje vhode, ne odgovora
Baza vsebuje vhode in datoteka je izhod, zato je izpis vhodov edini način, da vidite, kateri program je namestil vnos, ki se ga želite znebiti. Zapisi so kratki, njihovi ključi pa so ročaji, ki jih boste potrebovali pozneje. Preberite jih, preden se odločite, kateri je zastarel, ker ime, ki je videti kot vmesnik VPN, lahko pripada drugemu odjemalcu. Zasebne naslove in notranje iskalne domene držite stran od skupne diagnostike; sam ključ običajno identificira zapis.
sudo resolvconf --list
sudo resolvconf -i
Prvi ukaz izpiše dobavljene zapise brez obdelave, drugi pa našteje vmesnike, ki trenutno zagotavljajo konfiguracijo DNS. Ključi so običajno sestavljeni iz imena vmesnika in programa, ki ga dobavlja. Priročnik resolvconf opisuje bazo, na katero se ti ključi nanašajo.
Ključ kopirajte iz izhoda, namesto da bi ga znova sestavili. Vnos se ne imenuje tun0 samo zato, ker je stara skripta uporabila to ime.
Dokažite, da zapis nima lastnika
Zapis je varen za brisanje, kadar ga ni namestila nobena živa povezava. Povežite ključ s povezavo, ki ga je ustvarila, nato potrdite, da je ta povezava izginila. Ta korelacija so vsa vrata in to je korak, ki se na poti do ukaza za brisanje najpogosteje preskoči. Če so dokazi dvoumni, obravnavajte zapis kot živ in se ustavite.
Imena procesov so šibek dokaz. OpenConnect kliče vpnc-script, zato preverjanje procesa vpnc ne pove ničesar o tem, kateri zapis je trenutni. Nova povezava lahko tudi znova uporabi ime vmesnika, ki ga je pustila stara, zaradi česar je ključ videti starejši, kot je. Primerjajte naslov strežnika v zapisu z naslovi tunelov, ki so še vedno aktivni, in se ustavite, če se ujemajo.
Običajna prekinitev prek upravitelja, ki ima povezavo, je prvo zdravilo. Umakne tisto, kar je ta povezava namestila, in pusti druge ponudnike nedotaknjene.
Preverite odstranitev in prepis
Ko je zapis potrjeno zastarel, ga izbrišite s točnim ključem in nato preberite rezultat, namesto da bi ga predpostavili. Ukaz spremeni stanje razreševalnika za vsako aplikacijo na gostitelju, zato ga zaženite v oknu, ki ga nadzorujete. Ključ dajte v narekovaje, ker vsebuje znake, ki bi jih lupina sicer razširila. Nadomestni znak v bloku predstavlja ključ, ki ste ga kopirali s seznama, ne dobesedni niz.
sudo resolvconf -d "RECORD_KEY_FROM_THE_LIST"
sudo resolvconf --list
resolvectl query host.corp.example || getent hosts host.corp.example
Brisanje zažene skripte za posodabljanje, ko je posodabljanje omogočeno; ko je onemogočeno, posodobitev odloži, zato sta odstranjen zapis in prepisana datoteka dva ločena dogodka. Znova preberite seznam in potrdite, da je ključ izginil, preden pogledate datoteko. Nato vprašajte za eno ime, ki bi se še moralo razreševati prek preostalih ponudnikov, in eno javno ime, ter oba primerjajte s tem, kar ste videli pred spremembo. Če se zasebno ime povsem preneha razreševati, ga je ta zapis še vedno nosil.
resolvconf -u zažene samo te skripte za posodabljanje. Nikoli ne prepozna ali izbriše zastarelega zapisa, ponovna gradnja iz zastarelih vhodov pa ustvari isto neželeno datoteko.
Ubit kavelj za prekinitev zapis pusti za seboj
Enkratno čiščenje obnovi današnje stanje, naslednja prekinjena zaustavitev pa zapis vrne. Prehodite pot razgradnje: kavelj za prekinitev odjemalca, pomočnik, ki ga kavelj kliče, in kaj se zgodi, ko je kateri od njiju ubit. Prekinjena zaustavitev je običajen vzrok, ker kavelj sploh ni tekel. Enkrat zabeležite izhodni status kavlja in vedeli boste, ali tiho spodleti.
Nastavitev in čiščenje imejte pod enim lastnikom. Druga skripta, ki ugiba imena vmesnikov, bo prej ali slej izbrisala zapis druge povezave, kar je slabše od zastarelega vnosa, s katerim ste začeli. Lastnik naj odloči tudi, kdaj je zapis zastarel, ker ve, katera povezava ga je namestila.
Nato preizkusite življenjski cikel: povežite se, prekinite, znova naštejte zapise. Samo od sebe izginjanje vnosa je edini dokaz, da popravilo drži.