Naršymas distribucijos viduje veikia, o pirmasis vidinis pagrindinio kompiuterio vardas nepavyksta tą akimirką, kai pakyla tunelis. Refleksas yra pridėti viešą resolverį, kuris grąžina internetą ir padaro įmonės vardą nepasiekiamą likusiai dienos daliai. WSL 2 atveju /etc/resolv.conf yra generuojama išvestis, o ne konfigūracija, ir būtent šį mechanizmą verta suprasti. Sprendimas yra ne geresnis resolveris, o failo nuosavybė.

Failas generuojamas, o ne konfigūruojamas

WSL 2 įrašo failą paleidimo metu iš tų Windows adapterių, kuriuos tuo metu mato, ir viršuje atspausdina komentarą, kuris tai sako. Kai VPN klientas vėliau prideda arba perrašo adapterį, distribucija nebūtinai ką nors regeneruoja, ir failas toliau aprašo tinklą, kurio jau nebėra.

Antrasis gedimo būdas tylesnis: WSL gali kopijuoti serverius tik iš kai kurių adapterių. Jei fizinis adapteris jau turi IPv6 resolverį, VPN adapterio teikiami IPv4 serveriai gali būti numesti užuot pridėti, ir failas atrodo pilnas, nors praleidžia būtent tą, kuris atsako į vidinius vardus.

Palyginkite Windows vaizdą su Linux vaizdu

Prieš redaguodami perskaitykite abi puses. Distribucijos viduje pažiūrėkite, ką failas turi ir ar tai įprastas failas, ar nuoroda. Windows aplinkoje išvardykite resolverį kiekvienam adapteriui, įskaitant tą, kurį sukūrė VPN:

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

Kai VPN adapteris rodo įmonės serverius, o Linux rodo ką nors kita, neatitikimas yra generavime, o ne pasiekiamume. Palyginkite adapterių sąrašą ir adresus, nes trūkstamas adapteris paaiškina trūkstamą serverį. Šis skirtumas nusprendžia, ar taisote WSL, ar užkardą, ir abu neturi nieko bendra.

Išjunkite generavimą ir parašykite savo failą

Vienas dokumentuotas nustatymas neleidžia WSL perrašyti failo, ir jis yra /etc/wsl.conf. Pridėkite tinklo sekciją į tą failą:

[network]
generateResolvConf = false

Tada sustabdykite distribuciją iš Windows su wsl --shutdown ir paleiskite ją iš naujo. Jei kelias yra simbolinė nuoroda, o ne įprastas failas, prieš rašydami savo turinį pašalinkite nuorodą, nes rašymas per nuorodą gali kitą kartą paleidus iš naujo sukurti generuojamą taikinį. Nuo tos akimirkos failas yra jūsų ir niekas jo neperrašo.

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

Be paieškos domeno, nekvalifikuotas pagrindinio kompiuterio vardas papildomas viešąja šaknimi ir grįžta kaip tokio domeno nėra. timeout neleidžia mirusiam pirmajam serveriui stabdyti kiekvienos paieškos, attempts apriboja, kiek bandymų paieška išleidžia, o rotate paskirsto pakartotinius bandymus užuot visada pradėjus nuo viršaus. Mainais failas nebeseka VPN, kurio resolverio adresas keičiasi tarp sesijų.

Susitvarkykite su judančiu resolveriu, tada patikrinkite

Kai kurie klientai išduoda sesijai būdingą resolverį, todėl statinis failas sulūžta kitame prisijungime. Du požiūriai yra pagrįsti. Rašykite failą iš mažo scenarijaus, kai adresas pasikeičia, arba palikite generavimą įjungtą ir įsitikinkite, kad adapteris, iš kurio WSL kopijuoja, turi įmonės serverį. Antrasis nereikalauja kabliuko ir žlunga, kai generavimas praleidžia VPN adapterį; abu vis tiek reikalauja pirmiau išspręsti IPv6 konfliktą.

Windows taip pat taiko savo vardų politiką, pavyzdžiui, priesagų paieškos sąrašą arba sprendimo politiką konkretiems domenams, ir adapterių adresų kopijavimas šių taisyklių neatkuria. Jei vardas išsprendžiamas Windows aplinkoje, o distribucijoje ne su tuo pačiu serveriu, palyginkite priesagų apdorojimą prieš kaltindami tunelį.

Bandykite vardu, o ne paketu: getent hosts sensor-access0.corp.example eina per resolverio steką, o ping gali pavykti prieš podėlyje esantį arba pažodinį adresą. Tada pakartokite po atjungimo ir vėl prisijungimo, nes nustatymas, kuris veikia vieną kartą ir atnaujinant sugeneruojamas iš naujo, niekada nebuvo sutaisytas. Išsaugokite ankstesnį turinį ir pažymėkite, kuris komponentas tame kompiuteryje valdo kelią, kad kitas pakeitimas prasidėtų nuo įrodymų.

Susiję straipsniai