resolv.conf WSL 2-s: DNS sureb, kui VPN ühendub
WSL genereerib resolv.conf uuesti nendest Windowsi adapteritest, mida ta näeb, seega VPN-i resolver ei pruugi kunagi kohale jõuda. Peatage genereerimine ja seejärel testige ettevõtte nime.
Sirvimine distributsiooni sees töötab, ja esimene sisemine hostinimi ebaõnnestub hetkel, mil tunnel üles tuleb. Refleks on lisada avalik resolver, mis taastab interneti ja teeb ettevõtte nime ülejäänud päevaks kättesaamatuks. WSL 2-s on /etc/resolv.conf genereeritud väljund, mitte konfiguratsioon, ja just see mehhanism on mõistmist väärt. Parandus ei ole parem resolver, vaid faili omand.
Fail genereeritakse, mitte ei konfigureerita
WSL 2 kirjutab faili käivitumisel nendest Windowsi adapteritest, mida ta sel hetkel näeb, ja trükib üles kommentaari, mis seda ütleb. Kui VPN-klient hiljem adapteri lisab või ümber kirjutab, ei pruugi distributsioon midagi uuesti genereerida, ja fail kirjeldab edasi võrku, mida enam ei ole.
Teine tõrkerežiim on vaiksem: WSL võib kopeerida servereid ainult mõnest adapterist. Kui füüsilisel adapteril on juba IPv6 resolver, võidakse VPN-adapteri pakutavad IPv4 serverid lisamise asemel kõrvale jätta, ja fail näib täielik, jättes samal ajal välja just selle, mis vastab sisemistele nimedele.
Võrrelge Windowsi vaadet Linuxi vaatega
Lugege mõlemad pooled enne redigeerimist läbi. Vaadake distributsiooni sees, mida fail sisaldab ja kas see on tavaline fail või link. Windowsis loetlege iga adapteri resolver, sealhulgas VPN-i loodud adapter:
ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'
Kui VPN-adapter näitab ettevõtte servereid ja Linux midagi muud, on lahknevus genereerimises, mitte kättesaadavuses. Võrrelge adapterite loendit ja ka aadresse, sest puuduv adapter seletab puuduvat serverit. See eristus otsustab, kas parandate WSL-i või tulemüüri, ja neil kahel pole midagi ühist.
Lülitage genereerimine välja ja kirjutage oma fail
Üks dokumenteeritud säte takistab WSL-il faili ümber kirjutada ja see asub failis /etc/wsl.conf. Lisage sellesse faili võrguosa:
[network]
generateResolvConf = false
Seejärel lõpetage distributsioon Windowsist käsuga wsl --shutdown ja käivitage see uuesti. Kui tee on sümboolne link, mitte tavaline fail, eemaldage link enne oma sisu kirjutamist, sest lingi kaudu kirjutamine võib genereeritud sihtmärgi järgmisel käivitusel uuesti luua. Sellest hetkest on fail teie oma ja miski ei kirjuta seda ümber.
nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate
Ilma otsingudomeenita täiendatakse kvalifitseerimata hostinimi avaliku juurega ja tuleb tagasi vastusega, et sellist domeeni pole. timeout takistab surnud esimesel serveril iga päringut blokeerida, attempts piirab, kui palju katseid päring kulutab, ja rotate jaotab kordusi, selle asemel et alati algusest alata. Kompromiss on see, et fail ei järgi enam VPN-i, mille resolveri aadress muutub seansside vahel.
Käsitlege liikuvat resolverit ja seejärel kontrollige
Mõned kliendid annavad seansipõhise resolveri, nii et staatiline fail katkeb järgmisel ühendusel. Kaks lähenemist on õigustatud. Kirjutage fail väikese skriptiga alati, kui aadress muutub, või jätke genereerimine sisse ja veenduge, et adapter, millelt WSL kopeerib, kannab ettevõtte serverit. Teine ei vaja konksu ja ebaõnnestub alati, kui genereerimine jätab VPN-adapteri vahele; mõlemad nõuavad siiski esmalt IPv6 konflikti lahendamist.
Windows rakendab ka oma nimepõhimõtteid, näiteks sufiksi otsinguloendit või konkreetsete domeenide lahenduspõhimõtet, ja adapterite aadresside kopeerimine ei taasta neid reegleid. Kui nimi laheneb Windowsis, aga mitte distributsioonis sama serveriga, võrrelge sufiksi käsitlemist enne, kui tunneli süüdistate.
Testige nimega, mitte paketiga: getent hosts sensor-access0.corp.example läbib resolveri virna, samas kui ping võib õnnestuda vahemällu salvestatud või otsese aadressi vastu. Seejärel korrake pärast katkestamist ja uuesti ühendamist, sest säte, mis töötab korra ja genereeritakse jätkamisel uuesti, ei olnud kunagi parandatud. Salvestage eelmine sisu ja märkige, milline komponent selle masina tee omanik on, et järgmine muudatus algaks tõenditega.