Interno ime i dalje se razrješava na VPN poslužitelj dan nakon što se tunel zatvorio, a datoteka razrješivača stalno se vraća s tim zapisom. Gdje Debianov resolvconf upravlja stanjem, ta se datoteka sastavlja od zapisa dobavljača, a jedan od njih je ostatak. Brisanje zapisa traje minutu; dokazivanje da ga je sigurno obrisati pravi je posao. Ova se vrata izvršavaju redom, a neuspjela vrata završavaju postupak umjesto da vas pošalju na sljedeći korak.

Potvrdite da resolvconf upravlja stanjem

Najprije identificirajte vlasnika, jer isti simptom pod systemd-resolved zahtijeva druge naredbe i drugi popravak. Paket resolvconf drži bazu podataka u /run/resolvconf i usmjerava /etc/resolv.conf na datoteku koju gradi iz te baze. Dvije provjere rješavaju pitanje: odredište simboličke veze i je li paket instaliran i aktivan. Odredište u /run/systemd/resolve znači drugi dizajn, u kojem ništa od navedenog ne vrijedi.

dpkg -l resolvconf | tail -1
ls -l /etc/resolv.conf
systemctl is-active resolvconf.service

Ako veza pokazuje negdje drugdje ili paket nedostaje, zaustavite se ovdje. Kompatibilni omotač koji je posudio ime, a isporučuje ga drugi upravitelj razrješivača, nije vlasnik ove baze.

Baza sadrži ulaze, ne odgovor

Baza sadrži ulaze, a datoteka je izlaz, pa je popisivanje ulaza jedini način da vidite koji je program instalirao zapis kojeg se želite riješiti. Zapisi su kratki, a njihovi ključevi su ručke koje će vam trebati kasnije. Pročitajte ih prije nego odlučite koji je zastario, jer ime koje izgleda kao VPN sučelje može pripadati drugom klijentu. Držite privatne adrese i interne domene pretraživanja izvan zajedničke dijagnostike; sam ključ obično identificira zapis.

sudo resolvconf --list
sudo resolvconf -i

Prva naredba ispisuje dostavljene zapise bez obrade, a druga navodi sučelja koja trenutačno pružaju DNS konfiguraciju. Ključevi se uobičajeno grade od imena sučelja i programa koji ga dostavlja. Priručnik za resolvconf opisuje bazu kojoj ti ključevi pripadaju.

Kopirajte ključ iz izlaza umjesto da ga ponovno gradite. Zapis se ne zove tun0 samo zato što je stara skripta koristila to ime.

Dokažite da zapis nema vlasnika

Zapis je siguran za brisanje kada ga nije instalirala nijedna aktivna veza. Povežite ključ s vezom koja ga je stvorila, a zatim potvrdite da je ta veza nestala. Ta je korelacija cijela vrata i korak koji se najčešće preskoči na putu do naredbe za brisanje. Ako su dokazi dvosmisleni, tretirajte zapis kao aktivan i zaustavite se.

Nazivi procesa slabi su dokaz. OpenConnect poziva vpnc-script, pa provjera procesa vpnc ne govori ništa o tome koji je zapis aktualan. Nova veza može i ponovno upotrijebiti ime sučelja koje je stara ostavila za sobom, zbog čega ključ izgleda stariji nego što jest. Usporedite adresu poslužitelja u zapisu s adresama tunela koji su još aktivni i zaustavite se ako se poklapaju.

Uobičajeno isključivanje kroz upravitelja koji posjeduje vezu prvi je lijek. Ono povlači ono što je ta veza instalirala i ostavlja druge dobavljače netaknutima.

Provjerite uklanjanje i ponovno zapisivanje

Kad je zapis potvrđeno zastario, obrišite ga točnim ključem i zatim pročitajte rezultat umjesto da ga pretpostavite. Naredba mijenja stanje razrješivača za svaku aplikaciju na hostu, pa je pokrenite u prozoru koji kontrolirate. Stavite ključ pod navodnike jer sadrži znakove koje bi ljuska inače proširila. Zamjenski tekst u bloku predstavlja ključ koji ste kopirali iz popisa, a ne doslovni niz.

sudo resolvconf -d "RECORD_KEY_FROM_THE_LIST"
sudo resolvconf --list
resolvectl query host.corp.example || getent hosts host.corp.example

Brisanje pokreće skripte za ažuriranje kad je ažuriranje omogućeno; kad je ažuriranje onemogućeno, ono ga odgađa, pa su uklonjeni zapis i ponovno zapisana datoteka odvojeni događaji. Ponovno pročitajte popis i potvrdite da je ključ nestao prije nego pogledate datoteku. Zatim upitajte jedno ime koje bi se još trebalo razrješavati kroz preostale dobavljače i jedno javno ime, pa oba usporedite s onim što ste vidjeli prije promjene. Ako neko privatno ime posve prestane se razrješavati, taj ga je zapis još nosio.

resolvconf -u pokreće samo te skripte za ažuriranje. Nikada ne prepoznaje ni ne briše zastarjeli zapis, a ponovna izgradnja iz zastarjelih ulaza reproducira istu neželjenu datoteku.

Ubijena kuka za isključivanje ostavlja zapis za sobom

Jednokratno čišćenje vraća današnje stanje, a sljedeće prekinuto isključivanje vraća zapis natrag. Prođite putem rastavljanja: kukom za isključivanje klijenta, pomoćnikom koji ta kuka poziva i onim što se dogodi kad se bilo koji od njih ubije. Prekinuto isključivanje uobičajeno je podrijetlo, jer kuka uopće nije pokrenuta. Zabilježite izlazni status kuke jednom i znat ćete ne uspijeva li tiho.

Držite postavljanje i čišćenje pod jednim vlasnikom. Druga skripta koja nagađa imena sučelja na kraju će obrisati zapis druge veze, što je gore od zastarjelog zapisa s kojim ste počeli. Vlasnik bi također trebao odlučiti kada je zapis zastario, jer zna koja ga je veza instalirala.

Zatim vježbajte životni ciklus: spojite se, isključite se, ponovno popišite zapise. Nestanak zapisa sam od sebe jedini je dokaz da popravak drži.

Povezani članci