Pasenusio VPN įrašo pašalinimas iš resolvconf duomenų bazės
Kompiuteryje, kuriame Debian resolvconf valdo būseną, įrašą ištrinti paprasta. Pirmiausia įrodykite, kad įrašas pasenęs ir neturi savininko, tada patikrinkite perrašymą.
Vidinis vardas vis dar sprendžiamas į VPN serverį praėjus dienai po tunelio uždarymo, o sprendėjo failas vis grįžta su tuo įrašu. Ten, kur Debian resolvconf valdo būseną, tas failas surenkamas iš tiekėjų įrašų, ir vienas jų yra likutis. Įrašo ištrynimas užima minutę; įrodymas, kad jį saugu ištrinti, yra tikrasis darbas. Šie vartai veikia iš eilės, o nepavykę vartai užbaigia procedūrą, o ne nusiunčia jus į kitą žingsnį.
Patvirtinkite, kad resolvconf valdo būseną
Pirmiausia nustatykite savininką, nes tas pats simptomas systemd-resolved aplinkoje reikalauja kitų komandų ir kito remonto. resolvconf paketas laiko duomenų bazę /run/resolvconf kataloge ir nukreipia /etc/resolv.conf į failą, kurį sukuria iš tos bazės. Du skaitymai išsprendžia klausimą: simbolinės nuorodos tikslas ir tai, ar paketas įdiegtas bei aktyvus. Tikslas /run/systemd/resolve kataloge reiškia kitą konstrukciją, kurioje niekas toliau nebegalioja.
dpkg -l resolvconf | tail -1
ls -l /etc/resolv.conf
systemctl is-active resolvconf.service
Jei nuoroda rodo kitur arba paketo nėra, sustokite čia. Suderinamumo apvalkalas, pasiskolinęs vardą ir tiekiamas kito sprendėjo valdytojo, nėra šios duomenų bazės savininkas.
Duomenų bazėje yra įvestys, o ne atsakymas
Duomenų bazėje yra įvestys, o failas yra išvestis, todėl įvesčių sąrašas yra vienintelis būdas pamatyti, kuri programa įdiegė įrašą, kurio norite atsikratyti. Įrašai trumpi, o jų raktai yra rankenos, kurių prireiks vėliau. Perskaitykite juos prieš spręsdami, kuris pasenęs, nes vardas, atrodantis kaip VPN sąsaja, gali priklausyti kitam klientui. Privačius adresus ir vidinius paieškos domenus laikykite atokiau nuo bendros diagnostikos; vien raktas paprastai identifikuoja įrašą.
sudo resolvconf --list
sudo resolvconf -i
Pirmoji komanda išspausdina pateiktus įrašus jų neapdorodama, o antroji išvardija sąsajas, kurios šiuo metu teikia DNS konfigūraciją. Raktai paprastai sudaromi iš sąsajos vardo ir tiekėjo programos. resolvconf vadove aprašyta duomenų bazė, į kurią tie raktai nukreipia.
Nukopijuokite raktą iš išvesties, o ne kurkite jį iš naujo. Įrašas nevadinamas tun0 vien todėl, kad senas scenarijus naudojo tą vardą.
Įrodykite, kad įrašas neturi savininko
Įrašą saugu ištrinti, kai jo neįdiegė jokia gyva jungtis. Susiekite raktą su jungtimi, kuri jį sukūrė, tada patvirtinkite, kad tos jungties nebėra. Ta koreliacija yra visi vartai, ir būtent šio žingsnio dažniausiai praleidžiama kelyje prie trynimo komandos. Jei įrodymai dviprasmiški, laikykite įrašą gyvu ir sustokite.
Procesų vardai yra silpni įrodymai. OpenConnect iškviečia vpnc-script, todėl vpnc proceso patikra nieko nesako apie tai, kuris įrašas yra dabartinis. Nauja jungtis taip pat gali pakartotinai naudoti sąsajos vardą, kurį paliko sena, dėl to raktas atrodo senesnis, nei yra. Palyginkite serverio adresą įrašo viduje su dar veikiančių tunelių adresais ir sustokite, jei jie sutampa.
Įprastas atjungimas per savininką valdytoją yra pirmoji priemonė. Jis atšaukia tai, ką įdiegė ta jungtis, ir palieka kitus tiekėjus nepaliestus.
Patikrinkite pašalinimą ir perrašymą
Kai įrašas patvirtintas pasenusiu, ištrinkite jį tiksliu raktu ir tada perskaitykite rezultatą, o ne darykite prielaidą. Komanda keičia sprendėjo būseną visoms kompiuterio programoms, todėl vykdykite ją jūsų valdomame lange. Raktą dėkite į kabutes, nes jame yra simbolių, kuriuos apvalkalas kitaip išplėstų. Vietos žymeklis bloke reiškia raktą, kurį nukopijavote iš sąrašo, o ne pažodinę eilutę.
sudo resolvconf -d "RECORD_KEY_FROM_THE_LIST"
sudo resolvconf --list
resolvectl query host.corp.example || getent hosts host.corp.example
Trynimas paleidžia atnaujinimo scenarijus, kai atnaujinimas įjungtas; kai atnaujinimai išjungti, jis atnaujinimą atideda, todėl pašalintas įrašas ir perrašytas failas yra du atskiri įvykiai. Prieš žiūrėdami į failą dar kartą perskaitykite sąrašą ir patvirtinkite, kad rakto nebėra. Tada užklauskite vieną vardą, kuris dar turėtų būti sprendžiamas per likusius tiekėjus, ir vieną viešą vardą, ir abu palyginkite su tuo, ką matėte prieš pakeitimą. Jei privatus vardas visiškai nustoja spręstis, tas įrašas jį dar nešė.
resolvconf -u paleidžia tik tuos atnaujinimo scenarijus. Jis niekada neatpažįsta ir neištrina pasenusio įrašo, o atkuriant iš pasenusių įvesčių atsiranda tas pats nepageidaujamas failas.
Nutrauktas atjungimo kablys palieka įrašą
Vienkartinis valymas atkuria šiandieninę būseną, o kitas pertrauktas išjungimas grąžina įrašą. Pereikite išmontavimo kelią: kliento atjungimo kablį, pagalbinį įrankį, kurį tas kablys iškviečia, ir tai, kas nutinka, kai vienas iš jų nužudomas. Pertrauktas išjungimas yra įprasta priežastis, nes kablys apskritai nebuvo paleistas. Vieną kartą užregistruokite kablio išėjimo būseną ir žinosite, ar jis tyliai nepavyksta.
Laikykite sąranką ir valymą pas vieną savininką. Antras scenarijus, spėjantis sąsajų vardus, galiausiai ištrins kitos jungties įrašą, o tai blogiau nei pasenęs įrašas, su kuriuo pradėjote. Savininkas taip pat turėtų nuspręsti, kada įrašas pasenęs, nes žino, kuri jungtis jį įdiegė.
Tada išbandykite gyvavimo ciklą: prisijunkite, atsijunkite, dar kartą išvardykite įrašus. Savaiminis įrašo išnykimas yra vienintelis įrodymas, kad remontas laikosi.