Il-wiki interna tgħabbi f'Edge, filwaqt li git clone ġewwa d-distribuzzjoni jispiċċa f'timeout. Dan l-osservazzjoni waħedha normalment tinqara bħala «il-VPN qed jimblokka WSL2», u s-siegħa li jmiss tmur f'li teditja /etc/resolv.conf. Il-qari aktar utli huwa li WSL2 qatt ma kellu l-passa tan-netwerk tal-host: jaħdem f'VM awżiljarja bl-adapter tiegħu, ir-rotot tiegħu u fajl resolver li Windows jiġġenera għalih. Kull ma jiġi wara jiddependi minn liema minn dawn it-tlieta fil-fatt hija nieqsa għalik.

Il-VM għandha l-munġament, il-metriċi u r-resolver tagħha

Fil-modalità NAT awtomatika, id-distribuzzjoni tinsab wara switch virtwali u tilħaq l-internet permezz tal-host, iżda ma tarax l-adapters tal-host. ip addr juri interface waħda b'indirizz privat, ip route juri rotta awtomatika permezz ta' dak is-switch, u /etc/resolv.conf huwa fajl iġġenerat li jindika lejn stub resolver li għażel Windows. Xejn minn dan ma jinbidel għax klijent VPN inbeda fuq in-naħa ta' Windows.

Huwa għalhekk li «il-browser jaħdem» jipprova daqshekk ftit. Il-browser juża l-munġamenti tal-host, it-tunnel u l-politika tar-resolver tal-host. Il-qoxra tiegħek tuża munġament ieħor li b'kumbinazzjoni jaqsam karta tan-netwerk fiżika. Jaqblu fil-każ tajjeb u jiddevjazzjoni eżattament meta l-VPN jinstalla filtru, jikteb mill-ġdid il-lista DNS jew iżid rotta għas-subnet tas-switch virtwali.

Żewġ testijiet jiddeċiedu f'liema dinja int, u jridu jiġu esegwiti ġewwa d-distribuzzjoni:

getent hosts example.com
curl -sS -m 8 -o /dev/null -w "%{http_code}\n" 1.1.1.1
ip route
cat /etc/resolv.conf

Li l-ismijiet ifallu waqt li indirizz letterali jweġib huwa problema ta' resolver. Li l-ismijiet u l-indirizzi ifallu flimkien hija problema ta' passa, u l-ebda editjar tar-resolver mhu se jmissha. Imbagħad jiġu l-provi min-naħa ta' Windows: Get-NetAdapter | Get-DnsClientServerAddress u route print -4 juru jekk it-tunnel ħax is-subnet fejn tgħix il-VM tiegħek.

L-ewwel mit: is-servers DNS korporattivi jżommuha

L-editjar tal-fajl tar-resolver huwa l-parir klassiku, u huwa tajjeb madwar nofs il-ħin. Meta jkun tajjeb, ikun tajjeb għal raġuni speċifika: il-fajl iġġenerat jindika lejn resolver li jaf biss ismijiet pubbliċi, għalhekk mistoqsija għal intranet.example.internal tiġi lura bħala li ma teżistix anki jekk il-passa hija sew.

Li tippinna s-servers tal-VPN ifisser li twaqqaf lil Windows milli jiġġenera mill-ġdid il-fajl, għax kull fajl li tikteb bl-idejn jiġi sostitwit fil-bidu li jmiss:

[network]
generateResolvConf = false

Issejvja dan bħala /etc/wsl.conf, esegwi wsl --shutdown minn Windows, imbagħad ibda d-distribuzzjoni u ikteb /etc/resolv.conf bis-servers tat-tunnel l-ewwel u resolver pubbliku biss bħala riżerva. Dan huwa tibdil dejjiemi bi spiża ta' manutenzjoni: il-fajl m'għadux isegwi l-host, għalhekk meta l-indirizzi DNS korporattivi jinbidlu d-distribuzzjoni tkompli tistaqsi dawk qodma. Xi ħadd irid ikun is-sid ta' dak il-fajl.

Ma jagħmel xejn lanqas meta l-falliment ikun usa'. Jekk curl lejn 1.1.1.1 jispiċċa f'timeout, il-klijent tat-tunnel qed jiffiltra s-switch virtwali jew qed jgħaddi s-subnet tal-VM fit-tunnel, u resolver korrett jagħtik biss ismijiet li għadhom ma jistgħux jintlaħqu.

It-tieni mit: il-bidla tal-metrika tibqa'

Meta l-ismijiet jiġu solvuti iżda t-traffiku joħroġ mill-adapter fiżiku, il-lieva hija l-metriċi tal-interface. Agħti spiża għolja lill-adapter VPN u waħda baxxa lis-switch WSL:

Get-NetAdapter | Where-Object InterfaceDescription -Match "AnyConnect" | Set-NetIPInterface -InterfaceMetric 4000
Get-NetIPInterface -InterfaceAlias "vEthernet (WSL)" | Set-NetIPInterface -InterfaceMetric 1

Imbagħad ftakar li f'ħafna builds tal-klijent l-adapter tat-tunnel jerġa' jinħoloq f'kull konnessjoni u l-metrika terġa' lura għall-default tagħha. Komanda ta' darba hija tiswija li tiskadi bil-kwiet, normalment matul tmiem il-ġimgħa, u t-ticket jerġa' lura b'«il-ġimgħa li għaddiet kienet taħdem». Task skedat li jiġi attivat mill-avveniment tal-VPN, jew skript li l-utent iħaddem wara li jikkonnettja, hija l-verżjoni onesta ta' din it-tiswija.

L-istess skadenza tapplika għar-rotot tal-host miżjuda għal prefiss wieħed iebes. Huma ta' valur bħala dijanjostika, għax jgħidu jekk il-problema hijiex destinazzjoni waħda jew il-passa kollha, iżda mhumiex arkitettura.

It-tielet mit: tiswija waħda tkopri kull build ta' Windows

ApproachWhat it actually does
Resolver pinFixes private names only; no effect on path failures
Sidecar distributionForwards traffic over a socket to a helper VM, so the switch's filter no longer matters
Mirrored networkingGives the distribution the host's interface set; also enables DNS tunnelling

wsl-vpnkit huwa l-mudell sidecar: distribuzzjoni żgħira għandha l-passa fuq in-naħa tal-host u tibgħat għal distribuzzjonijiet oħra permezz ta' socket virtwali, għalhekk it-traffiku tal-applikazzjonijiet jieqaf jiddependi mis-switch iffiltra. Jeħtieġ li l-passa standard taħdem, jiġifieri tneħħi l-override networkingMode u dnsTunneling minn %UserProfile%\.wslconfig, tirrestawra generateResolvConf = true f'kull distribuzzjoni li taħdem u tibda s-servizz fil-login.

Il-modalità mirror hija l-alternattiva integrata fi Windows 11 22H2 u aktar ġodda, u hija setting wieħed flimkien ma' għeluq:

[wsl2]
networkingMode=mirrored

Ġewwa d-distribuzzjoni ip addr imbagħad jelenka l-adapters tal-host, it-tunnel jista' jidher fosthom, u t-tunnel DNS jgħaddi t-tfittxijiet permezz tar-resolver ta' Windows anki meta l-klijent jikteb mill-ġdid il-lista DNS. Mhuwiex universali: xi drivers tal-filtru għadhom iwarrbu l-passa mirror, u r-regoli tal-firewall ta' Hyper-V jistgħu jeħtieġu permess espliċitu. Il-gwida tan-netwerk WSL ta' Microsoft hija l-paġna li għandha tiġi mqabbla mal-build tiegħek qabel ma tapplika riċetta miktuba għal waħda aktar ġdida.

Ittestja tliet affarijiet wara kull bidla

Agħżel mekkaniżmu wieħed għal kull magna u ikteb, għax it-tnejn jingħaqdu ħażin. Sidecar fuq il-modalità mirror jirdoppja l-ġarr, u host mirror b'entrata sidecar skaduta f'.wslconfig għandu tendenza li jfalli wara aġġornament, mhux qablu.

X'ikun li għażilt, it-test ta' aċċettazzjoni huma l-istess tliet talbiet ġewwa d-distribuzzjoni: isem intern, isem pubbliku u indirizz nej. Imbagħad erġa' għamilhom wara li tiskonnettja u terġa' tikkonnettja t-tunnel, u wara wsl --shutdown. Jekk jonqos biss l-isem intern hija politika tar-resolver; jekk jonqsu flimkien l-isem intern u dak pubbliku b'indirizz li jaħdem għadha politika tar-resolver; jekk jonqos kollox hija l-passa.

Jekk host intern wieħed ifalli filwaqt li l-bqija jaħdmu, waqaf milli tħares lejn ir-resolver u fittex rotta nieqsa għal dak il-prefiss. Jekk kollox jaħdem sal-konnessjoni mill-ġdid li jmiss, sibt tiswija li tiddependi mill-istat tal-ħin tal-eżekuzzjoni, u trid tiġi applikata mill-ġdid awtomatikament jew sostitwita b'wieħed miż-żewġ mekkaniżmi hawn fuq.

Artikli relatati