resolv.conf i WSL 2: DNS døyr når VPN-en koplar til
WSL genererer resolv.conf på nytt frå Windows-adapterane han ser, så resolvaren til VPN-en kjem kanskje aldri fram. Stopp genereringa, og test deretter eit bedriftsnamn.
Nettlesing inne i distribusjonen verkar, og det første interne vertsnamnet feilar i det augneblinken tunnelen kjem opp. Refleksen er å leggje til ein offentleg resolvar, som gjenopprettar internettet og gjer bedriftsnamnet utilgjengeleg resten av dagen. På WSL 2 er /etc/resolv.conf generert utdata og ikkje konfigurasjon, og det er denne mekanismen som er verdt å forstå. Løysinga er ikkje ein betre resolvar, det er eigarskapet til fila.
Fila vert generert, ho vert ikkje konfigurert
WSL 2 skriv fila ved oppstart frå Windows-adapterane han ser i det augneblinken, og skriv ut ein kommentar øvst som seier det. Når ein VPN-klient seinare legg til eller skriv om ein adapter, genererer ikkje distribusjonen nødvendigvis noko på nytt, og fila held fram med å skildre eit nettverk som ikkje finst lenger.
Ein andre feilmodus er stillare: WSL kopierer kanskje berre tenarar frå nokre adapterar. Viss den fysiske adapteren alt har ein IPv6-resolvar, kan IPv4-tenarane som VPN-adapteren leverer, bli droppa i staden for lagde til, og fila ser komplett ut medan ho nettopp utelèt den som svarar på interne namn.
Samanlikn Windows-visninga med Linux-visninga
Les begge sider før du redigerer. Inne i distribusjonen ser du kva fila inneheld og om ho er ei vanleg fil eller ei lenkje. På Windows listar du opp resolvaren for kvar adapter, inkludert den VPN-en oppretta:
ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'
Når VPN-adapteren viser tenarane til bedrifta og Linux viser noko anna, ligg usemja i genereringa og ikkje i tilgjenge. Samanlikn adapterlista så vel som adressene, fordi ein manglande adapter forklarer ein manglande tenar. Den skilnaden avgjer om du reparerer WSL eller ein brannmur, og dei to har ingenting til felles.
Slå av genereringa og skriv di eiga fil
Éi dokumentert innstilling hindrar WSL i å skrive fila på nytt, og ho ligg i /etc/wsl.conf. Legg til ein nettverksdel i den fila:
[network]
generateResolvConf = false
Avslutt deretter distribusjonen frå Windows med wsl --shutdown og start han igjen. Viss stien er ei symbolsk lenkje og ikkje ei vanleg fil, fjern lenkja før du skriv ditt eige innhald, fordi skriving gjennom lenkja kan gjenskape det genererte målet ved neste oppstart. Frå det punktet er fila di, og ingenting skriv ho på nytt.
nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate
Utan eit søkjedomene blir eit ukvalifisert vertsnamn supplert med den offentlege rota og kjem tilbake som at det finst ikkje noko slikt domene. timeout hindrar ein daud første tenar i å blokkere kvart oppslag, attempts avgrensar kor mange forsøk eit oppslag brukar, og rotate fordeler nye forsøk i staden for alltid å starte øvst. Bytet er at fila ikkje lenger følgjer ein VPN der resolvaradressa endrar seg mellom økter.
Handter ein resolvar som flyttar på seg, og verifiser deretter
Nokre klientar deler ut ein økts-spesifikk resolvar, så ei statisk fil bryt ved neste tilkopling. To tilnærmingar er forsvarlege. Skriv fila frå eit lite skript kvar gong adressa endrar seg, eller lat genereringa stå på og sørg for at adapteren WSL kopierer frå, ber tenaren til bedrifta. Den andre treng ingen krok og feilar kvar gong genereringa hoppar over VPN-adapteren; begge krev framleis at IPv6-konflikten blir løyst først.
Windows brukar òg eigne namnpolicýar, som ei suffikssøkjefil eller ein oppløysingspolicy for bestemte domene, og kopiering av adapteradresser gjenskapar ikkje desse reglane. Viss eit namn blir løyst på Windows og ikkje i distribusjonen med same tenar, samanlikn suffiksbehandlinga før du gir tunnelen skulda.
Test med eit namn og ikkje med ein pakke: getent hosts sensor-access0.corp.example går gjennom resolvarstakken, medan ein ping kan lukkast mot ei bufre eller bokstaveleg adresse. Gjenta deretter etter fråkopling og tilkopling, fordi ei innstilling som verkar éin gong og blir generert på nytt ved gjenopptaking aldri vart retta. Lagra det førre innhaldet og noter kva komponent som eig stien på den maskina, slik at neste endring byrjar med bevis.