WSL2: Išplėstinis tinklo konfigūravimo, NAT ir veidrodinio režimų vadovas

Paskutiniai pakeitimai: kovo 2 d. 2026 m.
  • WSL2 naudoja virtualią mašiną su savo tinklu, konfigūruojamą per NAT arba veidrodinius režimus ir valdomą „Hyper-V“.
  • „wsl.conf“ ir „.wslconfig“ failų derinys leidžia koreguoti viską – nuo ​​automatinio prijungimo ir sisteminės saugyklos iki atminties, procesorių ir tinklo politikų.
  • Tokios funkcijos kaip „dnsTunneling“, „autoProxy“ ir „Hyper-V“ užkarda pagerina integraciją su VPN, tarpiniais serveriais ir saugumą sistemoje „Windows 11“.
  • Kruopščiai sukonfigūravus, WSL2 tampa patikima platforma kūrimui, konteineriams ir saugiam savarankiškam talpinimui.

Tinklo konfigūracija WSL2

WSL2 visiškai pakeitė „Linux“ integracijos su „Windows“ būdąYpač visame kame, kas susiję su tinklu: dabar turime lengvą virtualią mašiną su savo tinklo steku, savo IP adresu ir atskiromis prieigos taisyklėmis. Tai atveria daug galimybių kurti, testuoti, naudoti konteinerius ir savarankiškai talpinamas aplinkas, tačiau taip pat kelia susirūpinimą, kai paslaugos tampa nepasiekiamos, kaip nutiko su WSL1.

WSL2 tinklo konfigūracijos, jo NAT ir veidrodinių režimų, .wslconfig ir wsl.conf failų naudojimo bei jų sąveikos su užkardomis, VPN, „Docker“ ar tokiais įrankiais kaip „Tailscale“ supratimas. Tai labai svarbu norint išvengti galvos skausmo. Pažiūrėkime žingsnis po žingsnio, kaip veikia visa ši sąranka, kaip pateikti paslaugas „Windows“ ir LAN, kokias komandas naudoti norint gauti teisingus IP adresus ir kokias išplėstines konfigūravimo parinktis turite, kad tiksliai suderintumėte savo aplinką, padarydami ją stabilią ir, svarbiausia, saugią.

Kaip tinklas iš tikrųjų veikia WSL2

WSL2 nebebendrina pagrindinio kompiuterio tinklo steko kaip WSL1Vietoj to, jis paleidžia kiekvieną „Linux“ platinimą mažoje virtualioje mašinoje, kurią valdo „Hyper-V“. Ta virtuali mašina turi savo virtualų adapterį (paprastai eth0) ir privatų IP adresą, kurį priskiria vidinis virtualus komutatorius.

Numatytojiu režimu WSL2 naudoja NAT pagrindu sukurtą architektūrą. (Tinklo adresų vertimas). „Windows“ veikia kaip maršrutizatorius / pagrindinis kompiuteris, o „Linux“ distribucija yra privačiame potinklyje, paprastai tame diapazone. 172.16.0.0/12Šis potinklis gali pasikeisti po perkrovimo arba WSL paleidimo iš naujo – tai ne vieną žmogų iš proto varė konfigūruojant statines užkardos taisykles.

Praktiškai tai reiškia, kad jūsų WSL2 distribucijos IP adresas nėra nei stabilus, nei tiesiogiai pasiekiamas iš LAN tinklo. Kaip ir WSL1 atveju: pagal numatytuosius nustatymus ryšys tarp „Windows“ ir WSL2 yra tik per peradresavimo taisykles ir NAT, o norint prisijungti prie vietinio tinklo, reikia atlikti papildomus veiksmus arba naudoti veidrodinį režimą.

Be šios bazinės architektūros, „Windows 11 22H2“ ir naujesnės versijos prideda naujų tinklo galimybių. (veidrodinis režimas, „dnsTunnel“, „autoProxy“, „Hyper-V“ užkarda ir kt.), kurie yra valdomi iš globalaus failo .wslconfignors tam tikros „Linux“ parinktys yra valdomos naudojant /etc/wsl.conf.

Nustatykite IP adresus WSL2

Darbas su WSL2 apima aiškų dviejų IP scenarijų atskyrimą: kai reikia „Linux“ distribucijos IP adreso ir kai reikia „Windows“ pagrindinio kompiuterio IP adreso, žiūrimo iš „Linux“. Kiekvienas iš jų sprendžiamas skirtinga komanda.

1 scenarijus: iš „Windows“ norite sužinoti WSL2 distro IP adresą Norėdami leisti pagrindiniame kompiuteryje esančiai programai (pvz., klientui, naršyklei ar testavimo įrankiui) prisijungti prie „Linux“ sistemoje veikiančios paslaugos, galite paleisti šias komandas sistemoje „Windows“ (naudodami CMD arba „PowerShell“):

wsl.exe --distribution <DistroName> hostname -i

Jei norite naudoti numatytąjį distribuciją, galite praleisti distribucijos parametrą. ir tiesiog paskambinkite wsl.exe hostname -iFone ši komanda paleidžiama „Linux“ sistemoje hostname --ip-addresses ir grąžina egzemplioriaus IP adresą. Įprastas rezultatas gali atrodyti maždaug taip:

172.30.98.229

2 scenarijus: iš „Linux“ distribucijos reikia žinoti „Windows“ pagrindinio kompiuterio IP adresąPavyzdžiui, norint prijungti WSL2 programą prie serverio, veikiančio „Windows“ sistemoje („Node.js“, „SQL Server“, „Caddy“ ir kt.), „Linux“ apvalkale galite naudoti:

ip route show | grep -i default | awk '{ print $3 }'

Išvestis bus numatytasis WSL2 VM šliuzas., kuris atitinka „Windows“ kompiuterio IP adresą, matomą iš „Linux“, maždaug taip:

172.30.96.1

Ta vertė (pvz., 172.30.96.1) yra adresas, į kurį turėtų nukreipti jūsų „Linux“ klientai kai norite pasiekti paslaugas, veikiančias „Windows“ pagrindiniame kompiuteryje, kai veikia klasikinis NAT režimas.

NAT režimas: numatytasis WSL2 tinklo veikimas

Iš karto WSL2 veikia NAT režimu, ir daugeliui paprastų kūrimo aplinkų to daugiau nei pakanka.Svarbiausia suprasti, kas veikia „savaime“, o kas ne, kad negaištumėte laiko vaikydamiesi vaiduoklių.

Prieiga prie „Linux“ paslaugų iš „Windows“ naudojant „localhost“Jei savo WSL2 distribucijoje vykdote tinklo programą (pvz., „Node.js“ serverį, „Flask“ serverį, „SQL Server“ sistemoje „Linux“), galite ją pasiekti iš „Windows“ naudodami localhost:puerto„Windows“ automatiškai peradresuoja gaunamus ryšius į vidinį WSL2 VM IP adresą.

Prieiga prie paslaugų, veikiančių „Windows“ sistemoje iš „Linux“Štai kur viskas pasikeičia. Norint pasiekti tinklo programą pagrindiniame kompiuteryje (pvz., „Node.js“ serveryje, „SQL Server“ arba „Caddy“ sistemoje „Windows“) iš WSL2, reikia naudoti pagrindinio kompiuterio IP adresą, kaip matoma „Linux“ sistemoje, gautą naudojant numatytąją maršruto komandą:

ip route show | grep -i default | awk '{ print $3 }'

Turėdami tą IP adresą, galite prisijungti iš „Linux“ prie bet kurios paslaugos pagrindiniame kompiuteryje., pavyzdžiui http://172.30.96.1:3000 jei jūsų „Windows“ serveris visose sąsajose klausosi 3000 prievado.

Kai jungiatės naudodami nuotolinius IP adresus (ne „localhost“), programos juos mato kaip LAN ryšius.Tai reiškia, kad daugelis serverių turi būti sukonfigūruoti taip, kad klausytųsi 0.0.0.0 vietoj 127.0.0.1Pavyzdžiui, naudodami „Flask“ galite paleisti:

  Kaip žingsnis po žingsnio projektuoti mobiliojo telefono ekraną kompiuteryje

app.run(host='0.0.0.0')

Šis pakeitimas pagerina prieinamumą, tačiau reikalauja dėmesio saugumui.nes leidžiate prisijungti iš vietinio tinklo, o ne tik iš paties kompiuterio.

Prieiga prie WSL2 iš vietinio tinklo (LAN) naudojant NAT

Vienas labiausiai erzinančių pokyčių pereinant iš WSL1 į WSL2 yra tas, kad paskirstymai nebėra tiesiogiai pasiekiami iš LAN.WSL1 sistemoje, jei jūsų „Windows“ buvo matoma tinkle, distribucijos paslaugos beveik be vargo paveldėjo tą matomumą.

WSL2 kalboje virtuali mašina turi savo privatų IP adresą ir nėra automatiškai reklamuojama LAN tinkle.Norint pasiekti panašų elgesį, NAT režimu sistemoje „Windows“ turite sukurti prievado tarpinį serverį, kaip ir bet kurioje „Hyper-V“ virtualioje mašinoje.

„Windows“ turi klasikinį įrankį šiam tikslui: netsh interface portproxyĮprasta komanda, nukreipianti pagrindinio kompiuterio prievadą į WSL2 IP/prievadą, būtų tokia:

netsh interface portproxy add v4tov4 listenport=<puertoHost> listenaddress=0.0.0.0 connectport=<puertoWSL> connectaddress=(wsl hostname -I)

Praktiškai žymeklius pakeistumėte konkrečiomis reikšmėmis.Pavyzdžiui:

netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100

Čia listenaddress=0.0.0.0 Tai rodo, kad „Windows“ klausysis visų pagrindinio kompiuterio IPv4 adresų.ir persiųs tai, kas ateina per 4000 prievadą, į 192.168.101.100:4000kuris būtų WSL2 IP adresas, gautas naudojant:

  • wsl hostname -I Tai suteikia jums „Linux“ distro IP adresą WSL2 VM viduje
  • cat /etc/resolv.conf Tai atskleidžia „Windows Vista“ pagrindinio kompiuterio IP adresą iš WSL2.

Naudodami šią techniką, galite padaryti paslaugą, veikiančią WSL2 tinkle, prieinamą iš bet kurio kompiuterio LAN tinkle.su sąlyga, kad „Windows“ užkarda tai leidžia ir jūs aiškiai žinote, kad atskleidžiate VM, o ne tiesiogiai pagrindinio kompiuterio paslaugą.

IPv6 ir šiuolaikinės tinklo funkcijos

WSL2 taip pat gali veikti su IPv6, o tai ypač aktualu šiuolaikinėje aplinkoje, VPN ir įmonių tinkluose.Norint tvarkyti adresus, pagrindinės „Linux“ komandos yra lygiavertės IPv4 komandoms:

  • wsl hostname -i Iš „Windows“, kad peržiūrėtumėte WSL2 paskirstymo IP adresą
  • ip route show | grep -i default | awk '{ print $3 }' iš „Linux“, kad gautumėte „Windows“ pagrindinio kompiuterio IP adresą

Kur IPv6 ir VPN palaikymo kokybės šuolis išties pastebimas, yra veidrodinio tinklo režime., galima naudoti „Windows 11 22H2“ ir naujesnėse versijose, kurias išsamiau aptarsime vėliau.

Veidrodinis tinklo režimas: „Windows“ sąsajų veidrodinis atspindėjimas „Linux“ sistemoje

Kompiuteriuose su „Windows 11 22H2“ ar naujesne versija galite įjungti „veidrodinį“ tinklo režimą. WSL2 modelyje modelis visiškai pasikeičia: vietoj klasikinio NAT „Linux“ „mato“ atspindėtas „Windows“ tinklo sąsajas.

Norėdami tai įjungti, turite redaguoti failą .wslconfig jūsų naudotojo, kuris yra %UserProfile%\.wslconfigIš „PowerShell“ su administratoriaus teisėmis galite jį atidaryti naudodami:

notepad $env:USERPROFILE\.wslconfig

Viduje pridėkite (arba modifikuokite) [wsl2] skyrių, kad suaktyvintumėte veidrodinį režimą:

[wsl2]
networkingMode=mirrored

Įrašius failą, norint, kad jis įsigaliotų, reikia paleisti WSL2 iš naujo.Pavyzdžiui, su:

wsl --shutdown

Kai paleisite iš naujo, WSL naudos naują veidrodinę tinklo architektūrą.kuris suteikia keletą labai galingų privalumų:

  • Gimtoji IPv6 palaikymas ir patobulinta integracija su įmonių tinklais ir VPN
  • Galimybė prisijungti prie „Windows“ paslaugų iš „Linux“ naudojant 127.0.0.1 tiesiogiai (nors tai neleidžiama) ::1 (pvz., IPv6 kilpinė linija)
  • Patobulintas daugiaadresio perdavimo palaikymas „Windows“ ir „Linux“ integracijoje
  • Tiesioginė prieiga prie WSL iš LAN, nereikalaujant „netsh portproxy“naudojant paties „Windows“ kompiuterio IP adresą

Įjungus šį režimą, išsprendžiamos daugelis klasikinių WSL2 NAT problemų. ir tai yra rekomenduojama parinktis daugumoje šiuolaikinių kūrimo ir savarankiško talpinimo aplinkų, kuriose galite naudoti atnaujintą „Windows 11“ versiją.

DNS tuneliavimas ir tarpinių serverių naudojimas WSL2

„Windows 11 22H2“ ir naujesnėse versijose vardų atpažinimas iš WSL2 taip pat buvo gerokai pertvarkytas.Svarbiausia slypi dviejose funkcijose, apibrėžtose .wslconfig: dnsTunneling y autoProxy.

Pasirinkimas dnsTunneling Pagal numatytuosius nustatymus jis įjungtas [wsl2] skyriuje. Tai leidžia „Linux“ DNS užklausas apdoroti naudojant virtualizacijos funkciją, o ne siųsti kaip įprastus tinklo paketus. Tai labai pagerina suderinamumą su VPN ir sudėtingomis tinklo konfigūracijomis pagrindiniame kompiuteryje.

Savo ruožtu, autoProxy=true priverčia WSL naudoti „Windows“ HTTP tarpinio serverio nustatymusJei pagrindinis kompiuteris yra už įmonės arba saugos tarpinio serverio, WSL2 jį automatiškai paveldi, jums nereikės rankiniu būdu kovoti su aplinkos kintamaisiais.

Pavyzdžiui, savo atmintyje galėtumėte turėti kažką panašaus .wslconfig:

[wsl2]
dnsTunneling=true
autoProxy=true

Tai užtikrina, kad WSL2 tinklas veiktų nuosekliai su pagrindinio kompiuterio konfigūracija., ypač naudinga įmonėse, kuriose taikoma griežta tinklo ir filtravimo politika.

„Hyper-V“ užkarda ir saugios paslaugos atskleidimas

Šiuolaikinėje aplinkoje WSL2 tinklas taip pat praeina per specialią užkardą.Nuo WSL 2.0.9 versijos sistemoje „Windows 11 22H2“ „Hyper-V“ užkardos funkcija įjungta pagal numatytuosius nustatymus, pridedant papildomą VM srauto (įskaitant WSL2 srautą) filtravimo sluoksnį.

Jei dirbate veidrodiniu režimu ir norite, kad WSL2 paslaugos būtų visam laikui prieinamos LAN tinkle (pavyzdžiui, API, ataskaitų suvestines arba savarankiško talpinimo paslaugas), turite įsitikinti, kad užkardos taisyklės tai leidžia.

Protingas „PowerShell“ su administratoriaus teisėmis metodas yra sukurti „Hyper-V“ taisyklę privatiems tinklams.:

  Kaip įdiegti „PhotoGIMP“ pataisą „Windows“ ir „Mac“ sistemose

New-NetFirewallHyperVRule -DisplayName "WSLPrivateInboundRule" -Profiles Private -Direction Inbound -Action Allow -VMCreatorId ((Get-NetFirewallHyperVVMCreator).VMCreatorId)

Jei dėl kokių nors priežasčių norite išjungti tą konkrečią „Hyper-V“ apsaugą (kažkas mažiau rekomenduojama), galite naudoti:

Set-NetFirewallHyperVVMSetting -Name ((Get-NetFirewallHyperVVMCreator).VMCreatorId) -Enabled False

Idėja yra palaikyti ugniasienę aktyvią, kai tik įmanoma.apriboti taisykles privačiais tinklais ir tik tiems prievadams, kurių jums tikrai reikia, ir bet kokį masinį deaktyvavimą palikti kaip paskutinę priemonę ir visada siekiant vėl sustiprinti konfigūraciją, kai tik viskas veikia.

WSL2 tinklo architektūra, X11 ir 172.16.0.0/12 diapazonai

Klasikinis atvejis, atskleidžiantis WSL2 tinklo detales, yra grafinių programų naudojimas per X11.Pavyzdžiui, „Xming“ paleidimas sistemoje „Windows“ ir „Linux“ programų siuntimas per DISPLAY.

Atnaujinant iš WSL1 į WSL2, daugelis vartotojų pastebi, kad X nustoja veikti. nes tinklas nustoja būti „bendrinamu“ ir tampa virtualiu NAT tinklu su tokiais diapazonais kaip 172.16.0.0/12kuris taip pat gali keistis po kiekvieno „Windows“ arba WSL paleidimo iš naujo.

Norint, kad X vėl veiktų su Xming iš WSL2, įprasta gudrybė yra gauti „Windows“ IP adresą, kurį mato „Linux“. naudojant:

ens

DISPLAY=$(grep nameserver /etc/resolv.conf | cut -d' ' -f2):0

Lygiagrečiai būtina pakoreguoti „Windows“ užkardą, kad būtų leidžiamas X11 srautas iš to NAT potinklio.Įprastas būdas yra redaguoti Xming taisyklę pridedant diapazoną 172.16.0.0/12 TCP+UDP 6000 protokole.

Daugelis galiausiai išjungia „Xming“ autentifikavimą naudodami parinktį -acTai iš esmės „atveria duris“ bet kuriam klientui X, atvykstančiam iš to tinklo. Tai veikia, bet saugumo požiūriu gana abejotina, todėl verta apsvarstyti ribotus sprendimus arba naudoti WSLg (integruotas grafinės sąsajos programas) sistemoje „Windows 11“.

wsl.conf ir .wslconfig: išplėstinė WSL2 konfigūracija

WSL siūlo du pagrindinius konfigūracijos failus, kurie valdo tiek VM, tiek kiekvieno paskirstymo elgseną.: /etc/wsl.conf (pagal distribuciją) ir %UserProfile%\.wslconfig (visiems WSL2 distribucijoms visuotinis).

wsl.conf gyvena „Linux“ distribucijoje /etc/wsl.confJis naudojamas vietinėms to distribucijos parinktims konfigūruoti: automatinis prijungimas, hosts y resolv.confsąveika su „Windows“, numatytuoju vartotoju, „systemd“ ir kt.

.wslconfig Jis išsaugomas ne „Linux“ sistemoje, „Windows“ vartotojo profilyje. (C:\Users\<Usuario>\.wslconfig) ir valdo globalius VM, kuri palaiko WSL2, parametrus: atmintį, procesorius, branduolį, tinklo režimą, užkardą, DNS, virtualaus disko dydį, grafinės sąsajos palaikymą ir kt.

Viena įdomi detalė yra „8 sekundžių taisyklė“ keičiant nustatymus.Modifikuojant bet kurį iš šių failų, turite užtikrinti, kad WSL virtualioji mašina būtų visiškai išjungta. Net uždarius distribucijos langą, jis gali likti atmintyje kelias sekundes.

Norėdami priverstinai paleisti posistemį iš naujo, galite naudoti:

  • wsl --list --running patikrinti, ar yra aktyvių distribucijų
  • wsl --shutdown uždaryti visus paskirstymus vienu metu
  • wsl --terminate <distroName> sustabdyti konkretų distribuciją

Konfigūracijos pakeitimai taikomi tik tada, kai WSL išjungiamas ir paleidžiamas iš naujo.Kažkas, ko daugelis nepastebi ir mano, kad jų pakeitimai „neveikia“.

Pagrindinės wsl.conf parinktys pagal sekcijas

Failas wsl.conf Įkvėptas klasikinio .ini formato su skyriais ir raktaisPagrindiniai skyriai yra [automount], [network], [interop], [user], [boot], [gpu] y [time].

En [automount] Jūs kontroliuojate, kaip „Windows“ diskai yra prijungiami prie „Linux“ (paprastai žemas) /mnt):

  • enabled (bool, numatytoji reikšmė – tiesa)Jei tiesa, C:/, D:/ ir kt. automatiškai prijungiami /mnt/c, /mnt/d...
  • mountFsTab (bool): jei tai tiesa, tai apdorojama /etc/fstab paleidžiant distro.
  • root (grandinė)šakninis katalogas, kuriame bus prijungti diskai, pvz. /windir/ turėti /windir/c.
  • options (kableliais atskirtas sąrašas)DrvFs būdingi parametrai, pvz. metadata, uid, gid, umask, fmask, dmask o case.

DrvFs yra failų sistema, jungianti „Windows“ ir „Linux“., skirta pasiekti NTFS iš WSL su leidimų valdymu, metaduomenimis ir didžiųjų bei mažųjų raidžių jautrumu.

Skyriuje [network] Jūs reguliuojate automatinį tinklo failų generavimą:

  • generateHostsJei tiesa, WSL automatiškai sugeneruoja /etc/hosts.
  • generateResolvConfJei tiesa, WSL sukuria /etc/resolv.conf su senuoju DNS.
  • hostname: pagrindinio kompiuterio pavadinimas, kurį naudos platinimas.

Skyrius [interop] kontroliuoja sąveiką su „Windows“:

  • enabled: Įjungia arba išjungia galimybę paleisti „Windows“ procesus iš WSL.
  • appendWindowsPath: nusprendžia, ar pridėti „Windows“ kelius prie $PATH „Linux“.

En [user] Galite nurodyti vartotoją, kuris bus naudojamas pagal numatytuosius nustatymus paleidžiant distribuciją:

  • default: vartotojo vardas, kuris pagal numatytuosius nustatymus bus paleistas WSL.

Skyrius [boot] Tai ypač naudinga „Windows 11“ ir „Server 2022“ automatiškai paleisti paslaugas, tokias kaip „Docker“ WSL viduje:

  • command: komandos eilutė, kurią reikia vykdyti paleidžiant WSL, pavyzdžiui service docker start.
  • protectBinfmt: apsaugo „systemd“ vienetų generavimą, kai „systemd“ įjungtas.

Taip pat turite tokius skyrius kaip [gpu] (įgalinti prieigą prie „Windows“ GPU iš „Linux“) ir [time] sinchronizuoti laiko juostą su „Windows“Tai padeda išvengti problemų keičiant vasaros laiką arba keliaujant.

.wslconfig: WSL2 virtualios mašinos valdymas

Nors „wsl.conf“ tiksliai sureguliuoja kiekvieno distribucijos veikimą, „.wslconfig“ leidžia tiksliai sureguliuoti VM, kurią bendrina visi WSL2 distribucijos.Šį failą atsižvelgia tik į distribucijas, kurios veikia kaip WSL2, o ne kaip WSL1.

Per .wslconfig pagrindinė dalis yra [wsl2]kur apibrėžiate pagrindinius parametrus:

  • kernel y kernelModules: absoliutūs keliai iš „Windows“ į pasirinktinį „Linux“ branduolį ir jo modulius.
  • memoryVM atminties riba (numatytoji reikšmė – 50 % pagrindinio kompiuterio RAM), pavyzdžiui 4GB.
  • processors: VM priskirtų loginių procesorių skaičius.
  • localhostForwarding: leidžia pasiekti atvirus WSL2 prievadus iš „Windows“ naudojant localhost.
  • swap y swapFile: VM mainų failo dydis ir kelias.
  • guiApplications: įjungia arba išjungia grafinės sąsajos programų palaikymą (WSLg).
  • dnsProxyKai esate NAT režime, jis nusprendžia, ar „Linux“ DNS serveris bus pagrindinio kompiuterio NAT egzempliorius, ar „Windows“ DNS kopija.
  • networkingModeČia galite rinktis tarp none, nat, bridged (pasenęs) mirrored o virtioproxy.
  • firewall, dnsTunneling y autoProxy: aptartos parinktys, kaip geriau integruoti WSL tinklą su „Windows“ politikomis.
  • defaultVhdSize: maksimalus VHD, kuriame saugoma distribucijos failų sistema, dydis (numatytasis nustatymas yra 1 TB).
  Išsamus DHCP protokolo vadovas: veikimas, privalumai ir saugumas

Taip pat yra skyrius [experimental] kur funkcijos aktyvuojamos testavimo metu kaip:

  • autoMemoryReclaimautomatinio atminties atkūrimo nustatymai (išjungta, laipsniška, „dropCache“).
  • sparseVhd: retų virtualių diskų kūrimas siekiant sutaupyti vietos.
  • bestEffortDnsParsing y dnsTunnelingIpAddress: DNS tuneliavimo tikslus derinimas.
  • ignoredPorts: prievadai, kuriuos „Linux“ programos gali naudoti, net jei jie naudojami „Windows“ sistemoje, kai esate veidrodiniame režime.
  • hostAddressLoopback: leidžia pagrindiniam kompiuteriui ir konteineriui prisijungti naudojant vietinius pagrindinio kompiuterio IP adresus veidrodiniu režimu.

Tinkamas .wslconfig konfigūravimas lemia skirtumą tarp daug išteklių eikvojančios virtualios mašinos ir optimizuotos aplinkos, kuri gerai veikia su jūsų „Windows“ sistema ir tinklu.ypač jei dirbate su dideliais darbo krūviais, konteineriais ar keliais vienu metu veikiančiais distribucijomis.

WSL2, „Docker“ ir tinklai savarankiškam talpinimui naudojant „Tailscale“

Labai praktiškas pavyzdys yra WSL2 naudojimas „Windows“ serveriuose (net „Windows Server 2025“) kaip savarankiško talpinimo platforma., derindamas „Ubuntu“ WSL2 sistemoje, „Docker Engine“ (be „Docker Desktop“), „Tailscale“ ir atvirkštinį tarpinį serverį, pvz., „Caddy“, kad būtų galima teikti tokias paslaugas kaip „n8n“ arba „Supabase“.

Idėja yra sukurti stabilią „Docker“ aplinką WSL2 viduje, išvengiant „Docker Desktop“ problemų serveriuose.Diegiant „Docker Engine“ tiesiogiai „Ubuntu“ (WSL2), konteinerių tinklas priklauso nuo WSL2 tinklo, kuris savo ruožtu priklauso nuo NAT arba veidrodinio režimo, apibrėžto .wslconfig faile.

Įdiegę „Tailscale“ WSL2, galite publikuoti savo paslaugas tinkliniame VPN. neatidarant maršrutizatoriaus prievadų ir naudojant „Caddy“ kaip atvirkštinį tarpinį serverį, skirtą centralizuoti TLS sertifikatus, maršrutus ir lengvą apkrovos balansavimą tarp konteinerių.

Norint palaikyti švarų, nuspėjamą ir saugų tinklą, patartina:

  • Pasirinkite vieną koherentinį tinklo režimą (NAT arba veidrodinį) ir jį dokumentuokite.
  • Venkite prievadų konfliktų tarp „Windows“ ir WSL2, remdamasis ignoredPorts jei naudojate veidrodinį vaizdą
  • Valdykite serviso poveikį tik naudodami „Tailscale“ arba „Caddy“užuot atidarius prievadus „rankiniu būdu“ užkardoje
  • Automatizuoti „Docker“, „Tailscale“ ir „Caddy“ paleidimą iš [boot] wsl.conf faile sukurti aplinką, artimesnę gamybai

Su šia architektūra WSL2 nustoja būti tik kūrimo įrankiu ir gali tapti gana rimta savarankiško talpinimo platforma.su sąlyga, kad sutinkate su jo apribojimais (virtualizacija per „Hyper-V“, papildomas tinklo sluoksnis ir kt.) ir atidžiai jį sukonfigūruojate.

Geriausia WSL2 tinklų kūrimo ir testavimo praktika

Be tikslaus derinimo, yra keletas gairių, kurios padės jums patogiai dirbti su WSL2 tinklu. be nuolatinių grumtynių su IP adresais, prievadais ir užkardomis.

Kūrimo paslaugoms naudokite didelius prievadus (virš 1024) ir vengti privilegijuotų arba dažnai naudojamų prievadų; tai sumažina konfliktus ir panaikina papildomų privilegijų poreikį.

Įsitikinkite, kad kodas ir duomenys yra „Linux“ failų sistemoje. (tavo ~/ arba vidinius maršrutus), užuot dirbus tiesiogiai su /mnt/cnes prieiga prie NTFS iš WSL yra lėtesnė ir gali pakenkti I/O reikalaujančioms paslaugoms.

Tinklo nustatymų ir peradresavimo taisyklių automatizavimas naudojant scenarijus „PowerShell“ ir „Bash“: pavyzdžiui, scenarijus, kuris konfigūruoja WSL2, kai jis paleidžiamas. netsh portproxy (jei tęsiate NAT) arba patikrinkite užkardos taisykles, kai naudojate veidrodinį atspindėjimą.

Venkite pasikliauti besikeičiančiais IP adresais generuoja vidinis virtualus jungiklis. Kai tik įmanoma, dirbkite su localhost, pagrindinių kompiuterių pavadinimai arba įrašai /etc/hosts jūsų paslaugoms, kad IP adreso pakeitimas nesugadintų pusės jūsų testavimo infrastruktūros.

Profesionalioje arba pusiau gamybinėje aplinkoje geriausia aklai nepasikliauti WSL automatiniu persiuntimu.Aiškiai sukonfigūruokite prievadus, tarpinius serverius ir užkardos taisykles, kad tiksliai žinotumėte, kas ir kur yra pažeidžiama.

Tinkamai sukonfigūravus, WSL2 siūlo izoliuotą, tačiau lankstų tinklą, puikiai tinkantį pažangiam kūrimui, API testavimui, darbui su konteineriais ir paskirstytos aplinkos modeliavimui.Svarbiausia yra įvaldyti tinklo režimus (NAT ir veidrodinį), wsl.conf ir .wslconfig failus bei sąveiką su užkarda ir įrankiais jūsų serveryje („Docker“, „Tailscale“, atvirkštiniais tarpiniais serveriais), kad „Windows“ ir „Linux“ galėtų veikti tame pačiame kompiuteryje nepersidengiant prievadams ir nepakenkiant saugumui.