Brskanje znotraj distribucije deluje, prvo notranje ime gostitelja pa spodleti v trenutku, ko se tunel dvigne. Refleks je dodati javni razreševalnik, kar povrne internet in naredi ime podjetja nedosegljivo do konca dneva. V WSL 2 je /etc/resolv.conf ustvarjen izhod in ne konfiguracija, in prav ta mehanizem je vreden razumevanja. Popravek ni boljši razreševalnik, ampak lastništvo datoteke.

Datoteka se ustvari, ne nastavi

WSL 2 zapiše datoteko ob zagonu iz tistih adapterjev Windows, ki jih takrat vidi, in na vrh natisne komentar, ki to pove. Ko odjemalec VPN pozneje doda ali prepiše adapter, distribucija ne ustvari nujno ničesar znova, in datoteka še naprej opisuje omrežje, ki ga ni več.

Drugi način odpovedi je tišji: WSL morda kopira strežnike le iz nekaterih adapterjev. Če ima fizični adapter že razreševalnik IPv6, so strežniki IPv4, ki jih ponuja adapter VPN, lahko zavrženi namesto dodani, in datoteka je videti popolna, medtem ko izpusti prav tistega, ki odgovarja na notranja imena.

Primerjajte pogled iz Windows s pogledom iz Linuxa

Pred urejanjem preberite obe strani. Znotraj distribucije poglejte, kaj datoteka vsebuje in ali je običajna datoteka ali povezava. V Windows naštejte razreševalnik za vsak adapter, vključno s tistim, ki ga je ustvaril VPN:

ls -l /etc/resolv.conf
cat /etc/resolv.conf
Get-DnsClientServerAddress -AddressFamily IPv4
Get-NetAdapter | Where-Object Status -eq 'Up'

Ko adapter VPN kaže strežnike podjetja, Linux pa nekaj drugega, je neskladje v ustvarjanju in ne v dosegljivosti. Primerjajte seznam adapterjev in tudi naslove, ker manjkajoči adapter pojasnjuje manjkajoči strežnik. Ta razlika odloči, ali popravljate WSL ali požarni zid, in oba nimata nič skupnega.

Izklopite ustvarjanje in napišite svojo datoteko

Ena dokumentirana nastavitev preprečuje WSL, da bi prepisal datoteko, in se nahaja v /etc/wsl.conf. Tej datoteki dodajte omrežni razdelek:

[network]
generateResolvConf = false

Nato ustavite distribucijo iz Windows s wsl --shutdown in jo znova zaženite. Če je pot simbolna povezava in ne običajna datoteka, povezavo odstranite, preden napišete svojo vsebino, ker pisanje skozi povezavo lahko ob naslednjem zagonu znova ustvari ustvarjeni cilj. Od tega trenutka je datoteka vaša in nič je ne prepiše.

nameserver 172.28.4.10
nameserver 172.28.4.11
search site.corp.example
options timeout:1 attempts:2 rotate

Brez domene iskanja se nekvalificirano ime gostitelja dopolni z javnim korenom in vrne kot nobene take domene. timeout prepreči mrtvemu prvemu strežniku, da bi blokiral vsako iskanje, attempts omeji, koliko poskusov porabi iskanje, in rotate razporedi ponovne poskuse, namesto da bi vedno začel na vrhu. Cena je, da datoteka ne sledi več VPN, katerega naslov razreševalnika se med sejami spreminja.

Obvladajte razreševalnik, ki se premika, nato preverite

Nekateri odjemalci dajo razreševalnik, specifičen za sejo, zato se statična datoteka ob naslednji povezavi zlomi. Dva pristopa sta zagovorljiva. Datoteko pišite iz majhne skripte vsakič, ko se naslov spremeni, ali pustite ustvarjanje vklopljeno in poskrbite, da adapter, s katerega WSL kopira, nosi strežnik podjetja. Drugi ne potrebuje kljuke in spodleti vsakič, ko ustvarjanje preskoči adapter VPN; oba še vedno zahtevata, da se najprej razreši konflikt IPv6.

Windows uporablja tudi lastne politike imen, na primer seznam iskanja pripon ali politiko razreševanja za določene domene, in kopiranje naslovov adapterjev teh pravil ne obnovi. Če se ime razreši v Windows in ne v distribuciji z istim strežnikom, primerjajte obravnavo pripon, preden obtožite tunel.

Preizkusite z imenom in ne s paketom: getent hosts sensor-access0.corp.example gre skozi sklad razreševalnika, medtem ko ping lahko uspe proti predpomnjenemu ali dobesednemu naslovu. Nato ponovite po prekinitvi in ponovni povezavi, ker nastavitev, ki deluje enkrat in se ob nadaljevanju znova ustvari, ni bila nikoli popravljena. Shranite prejšnjo vsebino in zabeležite, katera komponenta ima pot na tem stroju, da se naslednja sprememba začne z dokazi.

Sorodni članki