Interno ime se još uvijek razrješava na VPN server dan nakon što se tunel zatvorio, a datoteka rezolvera stalno se vraća s tim unosom. Gdje Debianov resolvconf posjeduje stanje, ta datoteka se sastavlja od zapisa dobavljača, a jedan od njih je ostatak. Brisanje zapisa traje minutu; dokazivanje da ga je sigurno obrisati pravi je posao. Ove kapije idu po redu, a neuspješna kapija završava postupak umjesto da vas pošalje na sljedeći korak.

Potvrdite da resolvconf posjeduje stanje

Prvo identificirajte vlasnika, jer isti simptom pod systemd-resolved zahtijeva drugačije naredbe i drugačiji popravak. Paket resolvconf drži bazu podataka pod /run/resolvconf i usmjerava /etc/resolv.conf na datoteku koju gradi iz te baze. Dva čitanja rješavaju pitanje: cilj simboličke veze i to je li paket instaliran i aktivan. Cilj pod /run/systemd/resolve znači drugi dizajn, gdje ništa ispod 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 rezolvera, ne posjeduje ovu bazu.

Baza drži ulaze, a ne odgovor

Baza drži ulaze, a datoteka je izlaz, pa je popisivanje ulaza jedini način da vidite koji je program instalirao unos koji želite ukloniti. 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; obično sam ključ identificira zapis.

sudo resolvconf --list
sudo resolvconf -i

Prva naredba ispisuje dostavljene zapise bez obrade, a druga popisuje sučelja koja trenutačno pružaju DNS konfiguraciju. Ključevi se obično grade od imena sučelja plus programa dobavljača. Priručnik za resolvconf opisuje bazu kojoj ti ključevi pristupaju.

Kopirajte ključ iz izlaza umjesto da ga ponovno gradite. Unos 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 živa veza. Povežite ključ s vezom koja ga je stvorila, zatim potvrdite da je ta veza nestala. To povezivanje je cijela kapija i to je korak koji se najčešće preskače na putu do naredbe za brisanje. Ako su dokazi nejasni, tretirajte zapis kao živ i zaustavite se.

Imena procesa slab su dokaz. OpenConnect poziva vpnc-script, pa provjera procesa vpnc ne govori ništa o tome koji je zapis aktualan. Nova veza može ponovno upotrijebiti ime sučelja koje je stara ostavila, što ključ čini starijim nego što jest. Usporedite adresu servera unutar zapisa s adresama tunela koji su još podignuti i zaustavite se ako se podudaraju.

Normalno prekidanje putem upravitelja vlasnika prvi je lijek. Ono povlači ono što je ta veza instalirala i ostavlja druge dobavljače netaknutima.

Provjerite uklanjanje i prepisivanje

Nakon potvrde da je zapis zastario, obrišite ga po točnom ključu i zatim pročitajte rezultat umjesto da ga pretpostavite. Naredba mijenja stanje rezolvera za svaku aplikaciju na hostu, pa je pokrenite u prozoru koji kontrolirate. Ključ stavite u navodnike jer sadrži znakove koje bi ljuska inače proširila. Zamjenski tekst u bloku označava ključ koji ste kopirali s 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 kada je ažuriranje omogućeno; s onemogućenim ažuriranjima odgađa ažuriranje, pa su uklonjeni zapis i prepisana 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 putem preostalih dobavljača i jedno javno ime, i usporedite oba s onim što ste vidjeli prije promjene. Ako privatno ime potpuno prestane se razrješavati, taj ga je zapis još nosio.

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

Ubijena kuka za prekid ostavlja zapis za sobom

Jednokratno čišćenje vraća današnje stanje, a sljedeće prekinuto isključivanje vraća zapis. Prođite putem rastavljanja: kukom za prekid klijenta, pomoćnikom koji ta kuka poziva i onim što se događa kada se bilo koja od njih ubije. Prekinuto isključivanje uobičajeno je porijeklo 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 unosa s kojim ste počeli. Vlasnik također treba odlučivati kada je zapis zastario, jer zna koja ga je veza instalirala.

Zatim isprobajte životni ciklus: povežite se, prekinite, ponovno popišite zapise. Nestajanje unosa samo od sebe jedini je dokaz da popravak drži.

Povezani članci