Að breyta resolv.conf lagar ekki DNS eftir að VPN aftengist
Dauður gönguleysir efst á listanum kostar eina tímamörk á hverja uppflettingu. Athugaðu hver á skrána, endurstilltu stöðu tengingarinnar og hættu að breyta mynduðum úttaki.
Þú aftengir VPN, ping 1.1.1.1 svarar enn, og hver nafnuppfletting hangir þar til síðan gefst loks upp. Þá sýnir cat /etc/resolv.conf nafnaþjón sem hefur aðeins nokkru sinni verið til inni í göngunni, venjulega fyrstur á listanum. Að eyða þeirri línu virðist laga málið í um tíu mínútur, þar til svæfing, Wi-Fi-reik eða endurræsing setur hana aftur. Skráin sem þú breyttir er ekki stillingin; hún er mynd af stöðu tengingarinnar sem önnur eining á.
Hvers vegna ein úrelt færsla kostar sekúndur á hverja uppflettingu
glibc-uppflettirinn gengur í gegnum nafnaþjónalistann í röð og bíður þess að tímamörk renni út áður en hann prófar þann næsta, og resolv.conf(5) takmarkar þann lista við þrjár færslur. Settu uppfletti á gönguhliðina eins og 10.8.0.1 efst eftir að göngin eru farin og hver uppfletting borgar tímamörkin áður en hún fellur til þjóns sem svarar. Þess vegna lítur einkennið út eins og dauð tenging frekar en DNS-villa: vafrar læsast, lenda í tímaþrotu og stundum þjóna þeir skyndiminni vistfangi sem verður úrelt síðar.
Það útskýrir líka hvers vegna kvörtunin kemur sem „internetið er bilað“. Ping á IP-tölu sannar að tengingin er í lagi, sem lætur bilunina líta út eins og í forritinu. Listi uppflettanna er það fyrsta sem lesa skal og það síðasta sem breyta skal.
Goðsögnin: resolv.conf er stillingaskrá
Spyrðu hvað slóðin er í raun áður en þú breytir henni:
ls -l /etc/resolv.conf
readlink -f /etc/resolv.conf
Á systemd-resolved vél er hún táknleg hlekkur á stub-skrá sem bendir á 127.0.0.53, og raunverulegu þjónarnir lifa í stöðu fyrir hverja tengingu sem resolvectl prentar. Á NetworkManager vél getur hún verið skrá sem NetworkManager skrifar úr virku tengingunni. Hjá sumum biðlarum framleiðenda er hún einföld skrá sem er endurskrifuð á staðnum við tengingu og, ef þú ert óheppinn, aldrei endurheimt við aftengingu. Þetta eru þrír mismunandi eigendur, og að breyta fyrstu tveimur með höndunum gerir annaðhvort ekkert eða endist þar til næsti netviðburður.
resolvectl status er sú sýn sem segir sannleikann: DNS-þjónar fyrir hverja tengingu, leiðardrægni og hvort göngutengingin er enn til. resolvectl query example.com gengur lengra og sýnir hvaða viðmót svaraði. Notaðu bæði áður en þú snertir skrá, og hafðu í huga að vafri með eigið öruggt DNS hunsar allt þetta.
Finndu eigandann áður en þú breytir einhverju
Þrjár einingar keppa yfirleitt um sömu stillingu: systemd-resolved, NetworkManager og það sem VPN-biðlarinn setti upp. Greindu fyrst þá lifandi:
systemctl is-active systemd-resolved
nmcli connection show --active
ps aux | grep -E "openvpn|wg-quick|vpn"
Ef resolved er virkt og táknlegi hlekkurinn bendir á stub þess, er almenna skráin myndað úttak og breytingin þín skrautleg. Ef NetworkManager á tenginguna, tilheyra þjónarnir tengisniðinu, svo lagfæringin er nmcli-eiginleikabreyting en ekki skráarbreyting. Ef framleiðandadæmon er í gangi, lifir aðeins hans eigin endurheimtarslóð næstu tengingu af.
Hreinsaðu stöðu tengingarinnar sem biðlarinn skildi eftir
Drepinn biðlari getur ekki keyrt hreinsikrókinn sinn. Ekki er hægt að grípa SIGKILL yfirleitt, en hægt er að grípa SIGINT og SIGTERM, svo göng sem „bara stoppuðu“ eftir þvingað dráp skilja oft eftir bæði skráningu viðmótsins og færslu uppflettisins. Finndu nákvæma PID og sendu merkið aðeins á hann:
ps aux | grep -E "openvpn|wg-quick"
sudo kill <pid>
resolvectl revert tun0
Teigðu ekki til pkill -f vpn eða killall vpn áður en þú hefur lesið allan samsvörunarlistann. -f passar við alla skipanalínuna, svo það getur endað umbúðaskript, ritstjórarlotu eða ótengt ferli sem hefur strenginn í slóð sinni. Að enda rangt ferli mitt í vinnu er leiðin sem uppflettivandamál verður að týndri skrá.
resolvectl revert endurstillir DNS-stillingu keyrslutímans fyrir þá tengingu, sem er þrengra en að endurræsa uppflettinn og margfalt þrengra en að breyta almennu skránni. Ef göngutengingin er horfin að öllu leyti, endurbyggir systemctl restart NetworkManager stöðu tengingarinnar og það er skrefið sem heimildarþræðirnir snúa aftur að. Fylgstu með þjónustustjóra með Restart=always, því hann getur sett drepinn biðlara og DNS-stillingar hans beint aftur.
Hin áttin: ýtt DNS sem kom aldrei
Spegilmynd úreltu færslunnar er göng án nokkurs nothæfs uppflettis. DNS-val í sniðinu er beiðni; einingin sem stýrir tengingunni verður að afhenda honum hana. Ef annállinn sýnir að þjónninn hafi borist en göngutengingin ber engar DNS-stillingar, þá vantar samþættinguna, ekki þjóninn.
Prófaðu afhendinguna með því að gera hana handvirkt, sem aðgreinir „þjónninn er rangur“ frá „enginn beitti henni“:
resolvectl dns tun0 10.10.10.10
resolvectl domain tun0 ~.
Leiðardrægnin sem grípur allt sendir hvert nafn á þá tengingu, sem er það sem fullgöngubiðlari vill og það sem skipt DNS má ekki nota. Þessar stillingar hverfa við næstu tengingu. Til að gera þær varanlegar í NetworkManager skaltu slökkva á sjálfvirkum DNS, setja þjóninn á tenginguna og bæta við drægninni:
nmcli connection modify office ipv4.ignore-auto-dns yes
nmcli connection modify office ipv4.dns 10.10.10.10
nmcli connection modify office ipv4.dns-search "~."
Fyrir fyrirtækjagöng sem eiga aðeins að svara innri nöfnum, skráðu þau svæði með fremsta tildi í stað allt-grípur, svo opinber nöfn haldi áfram að nota staðbundna uppflettinn.
Vinnulausnir sem verða næsta bilun
Að afrita resolv.conf fyrir tengingu og endurheimta hana eftir er lögmæt lína í runbook, og það er vinnulausn en ekki viðgerð. Hún bregst einmitt þegar málið skiptir máli, því hrun eða þvinguð endurræsing sleppir endurheimtinni. Skráðu hana sem vinnulausn svo næsti maður byggi ekki á henni.
Að slökkva á systemd-resolved og harðkóða opinbera þjóna er hinn vinsæli leikur. Hann gerir tengingu og aftengingu fyrirsjáanlega og fjarlægir DNS fyrir hverja tengingu fyrir öll önnur net, sem brýtur skipt DNS fyrir innri nöfn og gerir markmið ganga að engu sem er ætlað að halda fyrirspurnum inni í sér. Að setja upp resolvconf og festa opinbera þjóna kostar það sama með auka lagi. Meðhöndlaðu hvort sem er sem greiningu: ef það endurheimtir vafur hefur þú lært að samþætting uppflettisins er sek um, ekki að opinberu þjónarnir séu réttir.
Varanlega lagfæringin er einn eigandi á hvert lag: ákveddu hvaða eining á DNS göngutengingarinnar og hver á almenna sjálfgefna gildið, skráðu það og fjarlægðu hina af slóðinni. Staðfestu svo eftir aftengingu með nafni sem aðeins VPN leysir. Ef einkanaft svarar enn var skráningunni ekki eytt; ef ekkert leysist bendir skráin á þjón sem er ekki lengur til. Bæði sjást í resolvectl áður en þú opnar vafra.