- Gumagamit ang WSL2 ng isang virtual machine na may sariling network, na maaaring i-configure sa pamamagitan ng NAT o mga mirrored mode at pinamamahalaan ng Hyper-V.
- Ang kombinasyon ng wsl.conf at .wslconfig ay nagbibigay-daan sa iyong isaayos ang lahat mula sa mga automount at systemd hanggang sa memorya, mga CPU, at mga patakaran sa network.
- Ang mga tampok tulad ng dnsTunneling, autoProxy, at ang Hyper-V firewall ay nagpapabuti sa integrasyon sa mga VPN, proxy, at seguridad sa Windows 11.
- Sa maingat na pag-configure, ang WSL2 ay nagiging isang matibay na plataporma para sa pag-develop, mga container, at ligtas na self-hosting.

Lubos na binago ng WSL2 ang paraan ng pagsasama ng Linux sa WindowsLalo na sa lahat ng bagay na may kaugnayan sa network: mayroon na tayong magaan na virtual machine na may sarili nitong network stack, sarili nitong IP address, at hiwalay na mga panuntunan sa pag-access. Nagbubukas ito ng maraming posibilidad para sa pagbuo, pagsubok, mga container, at mga self-hosting na kapaligiran, ngunit nagdudulot din ito ng mga alalahanin kapag ang mga serbisyo ay nagiging hindi maa-access, tulad ng nangyari sa WSL1.
Pag-unawa sa configuration ng WSL2 network, ang NAT at mirrored modes nito, ang paggamit ng .wslconfig at wsl.conf, at kung paano sila nakikipag-ugnayan sa mga firewall, VPN, Docker, o mga tool tulad ng Tailscale Ito ay susi upang maiwasan ang mga sakit ng ulo. Tingnan natin nang paunti-unti kung paano gumagana ang buong setup na ito, kung paano ilantad ang mga serbisyo sa Windows at sa LAN, kung anong mga command ang gagamitin upang makuha ang tamang mga IP, at kung anong mga advanced na opsyon sa configuration ang mayroon ka upang pinuhin ang iyong kapaligiran, upang gawin itong matatag at, higit sa lahat, ligtas.
Paano talaga gumagana ang network sa WSL2
Hindi na ibinabahagi ng WSL2 ang host network stack tulad ng WSL1Sa halip, pinapatakbo nito ang bawat distribusyon ng Linux sa loob ng isang maliit na virtual machine na pinamamahalaan ng Hyper-V. Ang VM na iyon ay may sariling virtual adapter (karaniwan ay eth0) at isang pribadong IP address na itinalaga ng isang internal virtual switch.
Sa default mode nito, gumagamit ang WSL2 ng arkitekturang nakabatay sa NAT. (Pagsasalin ng Address ng Network). Ang Windows ay gumaganap bilang router/host, at ang distribusyon ng Linux ay nasa isang pribadong subnet, kadalasan sa loob ng saklaw. 172.16.0.0/12Maaaring magbago ang subnet na ito pagkatapos ng mga reboot o pag-restart ng WSL, isang bagay na nakapagpabaliw sa higit sa isang tao kapag kino-configure ang mga static firewall rule.
Mula sa praktikal na pananaw, nangangahulugan ito na ang IP address ng iyong WSL2 distro ay hindi stable o direktang naa-access mula sa LAN. Tulad ng sa WSL1: bilang default, mayroon lamang koneksyon sa pagitan ng Windows at WSL2 sa pamamagitan ng mga panuntunan sa pag-redirect at NAT, at ang pagkakalantad sa lokal na network ay nangangailangan ng mga karagdagang hakbang o paggamit ng mirrored mode.
Bukod sa base architecture na ito, ang Windows 11 22H2 at mga mas bagong bersyon ay nagdaragdag ng mga bagong kakayahan sa networking. (mirrored mode, dnsTunneling, autoProxy, Hyper-V firewall, atbp.) na kinokontrol mula sa global file .wslconfighabang ang ilang mga opsyon sa loob ng Linux ay pinamamahalaan gamit ang /etc/wsl.conf.
Tukuyin ang mga IP address sa WSL2
Ang pakikipagtulungan sa WSL2 ay nagsasangkot ng malinaw na pagkakaiba sa pagitan ng dalawang senaryo ng IP: kapag kailangan mo ang IP address ng distribusyon ng Linux at kapag kailangan mo ang IP address ng Windows host na tiningnan mula sa Linux. Ang bawat isa ay nireresolba gamit ang ibang command.
Senaryo 1: Mula sa Windows, gusto mong malaman ang IP address ng WSL2 distro Para payagan ang isang application sa host (halimbawa, isang client, browser, o testing tool) na kumonekta sa isang serbisyong tumatakbo sa loob ng Linux. Para gawin ito, maaari mong patakbuhin ang mga sumusunod na command sa Windows (gamit ang CMD o PowerShell):
wsl.exe --distribution <DistroName> hostname -i
Kung gusto mong gamitin ang default na distro, maaari mong alisin ang parameter ng distribution. at tumawag lang wsl.exe hostname -iSa background, ang utos na ito ay inilulunsad sa Linux hostname --ip-addresses at ibinabalik ang IP address ng instance. Ang karaniwang resulta ay maaaring magmukhang ganito:
172.30.98.229
Senaryo 2: Mula sa distro ng Linux, kailangan mong malaman ang IP address ng Windows hostHalimbawa, para ikonekta ang isang WSL2 application sa isang server na tumatakbo nang natively sa Windows (Node.js, SQL Server, Caddy, atbp.). Sa loob ng Linux shell, maaari mong gamitin ang:
ip route show | grep -i default | awk '{ print $3 }'
Ang output ay ang magiging default gateway ng WSL2 VM, na tumutugma sa IP address ng Windows host kung titingnan mula sa Linux, katulad ng:
172.30.96.1
Ang halagang iyon (halimbawa, 172.30.96.1) ay ang address na dapat ituro ng iyong mga Linux client kapag gusto mong ma-access ang mga serbisyong tumatakbo sa Windows host habang nasa classic NAT mode.
NAT mode: default na pag-uugali ng WSL2 network
Mula pa lang sa simula, gumagana na ang WSL2 sa NAT mode, at para sa maraming simpleng development environment, ito ay higit pa sa sapat.Ang mahalagang bagay ay maunawaan kung ano ang gumagana "nang mag-isa" at kung ano ang hindi, upang hindi masayang ang oras sa paghabol sa mga multo.
Pag-access sa mga serbisyo ng Linux mula sa Windows gamit ang localhostKung nagpapatakbo ka ng isang network application (halimbawa, isang Node.js server, isang Flask server, isang SQL Server sa Linux) sa iyong WSL2 distro, maaari mo itong ma-access mula sa Windows gamit ang localhost:puertoAwtomatikong ipinapasa ng Windows ang mga papasok na koneksyon sa internal IP address ng WSL2 VM.
Pag-access sa mga serbisyong tumatakbo sa Windows mula sa LinuxDito nagbabago ang mga bagay-bagay. Para makapunta sa isang network application sa host (tulad ng Node.js server, SQL Server, o Caddy sa Windows) mula sa WSL2, kailangan mong gamitin ang IP address ng host gaya ng nakikita mula sa Linux, na nakuha gamit ang default na route command:
ip route show | grep -i default | awk '{ print $3 }'
Gamit ang IP address na iyon, maaari kang kumonekta mula sa Linux patungo sa anumang serbisyo sa host., Halimbawa http://172.30.96.1:3000 kung ang iyong Windows server ay nakikinig sa port 3000 sa lahat ng interface.
Kapag kumokonekta ka gamit ang mga remote IP (hindi localhost), nakikita ito ng mga application bilang mga koneksyon sa LAN.Nangangahulugan ito na maraming server ang dapat i-configure upang makinig sa 0.0.0.0 sa halip ng 127.0.0.1Halimbawa, gamit ang Flask maaari mong ilunsad ang:
app.run(host='0.0.0.0')
Pinapabuti ng pagbabagong ito ang aksesibilidad ngunit nangangailangan ng pagtuon sa seguridad.dahil pinapayagan mo ang mga koneksyon mula sa iyong lokal na network, hindi lamang mula sa mismong computer.
Pag-access sa WSL2 mula sa lokal na network (LAN) gamit ang NAT
Isa sa mga pinakanakakainis na pagbabago kapag lumilipat mula sa WSL1 patungong WSL2 ay ang mga distribusyon ay hindi na direktang maa-access mula sa LAN.Sa WSL1, kung ang iyong Windows ay nakikita sa network, halos walang kahirap-hirap na namana ng mga serbisyo ng distro ang pagkakalantad na iyon.
Sa WSL2, ang VM ay may sariling pribadong IP address at hindi awtomatikong ina-advertise sa LAN.Para makamit ang katulad ng lumang gawi, sa NAT mode, kailangan mong lumikha ng port proxy sa Windows, tulad ng gagawin mo sa anumang Hyper-V virtual machine.
Kasama sa Windows ang isang klasikong tool para dito: netsh interface portproxyAng isang karaniwang utos para i-redirect ang isang host port papunta sa WSL2 IP/port ay:
netsh interface portproxy add v4tov4 listenport=<puertoHost> listenaddress=0.0.0.0 connectport=<puertoWSL> connectaddress=(wsl hostname -I)
Sa pagsasagawa, papalitan mo ang mga marker ng mga partikular na halaga., halimbawa:
netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100
Dito listenaddress=0.0.0.0 Ipinapahiwatig nito na makikinig ang Windows sa lahat ng IPv4 address ng host.at ipapasa ang pumapasok sa pamamagitan ng port 4000 papunta sa 192.168.101.100:4000na siyang magiging WSL2 IP address na nakuha gamit ang:
wsl hostname -IIbinibigay nito sa iyo ang IP address ng Linux distro sa loob ng WSL2 VMcat /etc/resolv.confIpinapakita nito ang IP address ng Windows Vista host mula sa WSL2.
Gamit ang pamamaraang ito, maaari mong gawing accessible ang isang serbisyong tumatakbo sa WSL2 mula sa anumang computer sa LAN.sa kondisyon na pinapayagan ito ng Windows firewall at malinaw sa iyo na inilalantad mo ang isang serbisyo ng isang VM, hindi ang host nang direkta.
IPv6 at mga modernong tampok ng networking
Maaari ring gumana ang WSL2 sa IPv6, na lalong mahalaga sa mga modernong kapaligiran, VPN, at mga corporate network.Para mapangasiwaan ang mga address, ang mga pangunahing utos sa Linux ay katumbas ng sa IPv4:
wsl hostname -iMula sa Windows upang tingnan ang IP address ng distribusyon ng WSL2ip route show | grep -i default | awk '{ print $3 }'mula sa Linux upang makuha ang IP address ng Windows host
Ang tunay na kapansin-pansing paglaki ng kalidad ng suporta sa IPv6 at VPN ay nasa mirrored network mode., makukuha sa Windows 11 22H2 at mga mas bagong bersyon, na tatalakayin natin nang detalyado sa ibang pagkakataon.
Mirrored network mode: pag-mirror ng mga interface ng Windows sa Linux
Sa mga computer na may Windows 11 22H2 o mas bago, maaari mong paganahin ang "mirrored" network mode. Sa WSL2, ang modelo ay ganap na nagbabago: sa halip na klasikong NAT, "nakikita" ng Linux ang mga interface ng network ng Windows na makikita.
Para paganahin ito, kailangan mong i-edit ang file .wslconfig ng iyong gumagamit, na nasa %UserProfile%\.wslconfigMula sa PowerShell na may mga pribilehiyo ng administrator, maaari mo itong buksan gamit ang:
notepad $env:USERPROFILE\.wslconfig
Sa loob, idagdag (o baguhin) ang seksyong [wsl2] para i-activate ang mirrored mode:
[wsl2]
networkingMode=mirrored
Kapag na-save na ang file, kailangan mong i-restart ang WSL2 para magkabisa ito.Halimbawa, kasama ang:
wsl --shutdown
Kapag ni-restart mo ito, gagamitin ng WSL ang bagong mirrored network architecture.na nagdudulot ng ilang napakalakas na bentahe:
- Suporta sa katutubong IPv6 at pinahusay na integrasyon sa mga corporate network at VPN
- Kakayahang kumonekta sa mga serbisyo ng Windows mula sa Linux gamit ang
127.0.0.1direkta (kahit na hindi pinapayagan)::1(tulad ng IPv6 loopback para dito) - Pinahusay na suporta sa multicast sa loob ng integrasyon ng Windows-Linux
- Direktang access sa WSL mula sa LAN nang hindi nangangailangan ng netsh portproxygamit ang IP address ng mismong Windows machine
Ang pagpapagana ng mode na ito ay nalulutas ang marami sa mga klasikong problema sa WSL2 NAT at ito ang inirerekomendang opsyon sa karamihan ng mga modernong development at self-hosting na kapaligiran kung saan maaari mong gamitin ang isang na-update na bersyon ng Windows 11.
DNS tunneling at ang paggamit ng mga proxy sa WSL2
Sa Windows 11 22H2 at mga mas bagong bersyon, ang resolusyon ng pangalan mula sa WSL2 ay nakatanggap din ng malaking pagbabago.Ang susi ay nakasalalay sa dalawang tungkuling tinukoy sa .wslconfig: dnsTunneling y autoProxy.
Ang pagpipilian dnsTunneling Ito ay naka-enable bilang default sa seksyong [wsl2]. Pinapayagan nito ang mga kahilingan sa Linux DNS na pangasiwaan sa pamamagitan ng isang tampok na virtualization, sa halip na ipadala bilang mga normal na network packet. Malaki ang naitutulong nito sa pagiging tugma sa mga VPN at mga kumplikadong configuration ng network sa host.
Para sa bahagi nito, autoProxy=true pinipilit ang WSL na gamitin ang mga setting ng Windows HTTP proxyKung ang host ay nasa likod ng isang corporate o security proxy, awtomatikong magmamana ito ng WSL2 nang hindi mo na kailangang manu-manong makipagbuno sa mga environment variable.
Maaari kang magkaroon, halimbawa, ng ganito sa iyong .wslconfig:
[wsl2]
dnsTunneling=true
autoProxy=true
Tinitiyak nito na ang WSL2 network ay kumikilos nang naaayon sa configuration ng host., lalong kapaki-pakinabang sa mga kumpanyang may mahigpit na mga patakaran sa network at pag-filter.
Pagkakalantad sa Hyper-V Firewall at Secure Service
Sa mga modernong kapaligiran, ang WSL2 network ay dumadaan din sa isang nakalaang firewall.Simula sa WSL 2.0.9 sa Windows 11 22H2, ang feature na Hyper-V firewall ay naka-enable bilang default, na nagdaragdag ng karagdagang layer ng pag-filter para sa trapiko ng VM (kabilang ang trapiko ng WSL2).
Kung nagtatrabaho ka sa mirrored mode at nais mong permanenteng ilantad ang mga serbisyo ng WSL2 sa LAN (halimbawa, mga API, dashboard o mga serbisyo sa self-hosting), kailangan mong tiyakin na pinapayagan ito ng mga panuntunan sa firewall.
Ang isang makatwirang paraan mula sa PowerShell na may mga pribilehiyo ng administrator ay ang paglikha ng isang Hyper-V rule para sa mga pribadong network.:
New-NetFirewallHyperVRule -DisplayName "WSLPrivateInboundRule" -Profiles Private -Direction Inbound -Action Allow -VMCreatorId ((Get-NetFirewallHyperVVMCreator).VMCreatorId)
Kung sa anumang kadahilanan ay gusto mong i-disable ang partikular na proteksyon ng Hyper-V na iyon (isang bagay na hindi gaanong inirerekomenda), maaari mong gamitin ang:
Set-NetFirewallHyperVVMSetting -Name ((Get-NetFirewallHyperVVMCreator).VMCreatorId) -Enabled False
Ang ideya ay panatilihing aktibo ang firewall hangga't maaari.nililimitahan ang mga patakaran sa mga pribadong network at sa mga port lamang na talagang kailangan mo, at inilalaan ang anumang malawakang pag-deactivate bilang huling paraan at palaging may layuning palakasin muli ang configuration sa sandaling gumana na ang lahat.
Arkitektura ng network ng WSL2, mga saklaw ng X11 at 172.16.0.0/12
Ang isang klasikong kaso na nagpapakita ng mga detalye ng WSL2 network ay ang paggamit ng mga graphical na aplikasyon sa pamamagitan ng X11.Halimbawa, ang paglulunsad ng Xming sa Windows at pagpapadala ng mga aplikasyon sa Linux sa pamamagitan ng DISPLAY.
Kapag nag-a-upgrade mula WSL1 patungong WSL2, natutuklasan ng maraming gumagamit na humihinto sa paggana ang X. dahil ang network ay hindi na "ibinabahagi" at nagiging isang virtual NAT network na may mga saklaw tulad ng 172.16.0.0/12na maaari ring magbago pagkatapos ng bawat pag-restart ng Windows o WSL.
Para mapagana muli ang X gamit ang Xming mula sa WSL2, ang karaniwang paraan ay kunin ang Windows IP address na nakikita ng Linux. gamit ang:
ens
DISPLAY=$(grep nameserver /etc/resolv.conf | cut -d' ' -f2):0
Kasabay nito, kinakailangang isaayos ang Windows firewall upang payagan ang trapiko ng X11 mula sa NAT subnet na iyon.Ang isang karaniwang pamamaraan ay ang pag-edit ng Xming rule sa pamamagitan ng pagdaragdag ng range 172.16.0.0/12 sa TCP+UDP 6000.
Marami ang nauuwi sa hindi pagpapagana ng Xming authentication gamit ang opsyon -acEpektibong "binubuksan nito ang pinto" sa sinumang client X na darating mula sa network na iyon. Gumagana ito, ngunit mula sa pananaw ng seguridad ay medyo kaduda-duda ito, kaya sulit na isaalang-alang ang mas limitadong mga solusyon o paggamit ng WSLg (integrated GUI applications) sa Windows 11.
wsl.conf at .wslconfig: advanced na konpigurasyon ng WSL2
Nag-aalok ang WSL ng dalawang pangunahing configuration file na kumokontrol sa parehong pag-uugali ng VM at ng bawat distribusyon.: /etc/wsl.conf (sa pamamagitan ng distro) at %UserProfile%\.wslconfig (pandaigdigan para sa lahat ng WSL2 distro).
wsl.conf naninirahan sa loob ng distribusyon ng Linux, sa /etc/wsl.confGinagamit ito upang i-configure ang mga lokal na opsyon para sa distro na iyon: mga auto-mount, pagbuo ng hosts y resolv.confinteroperability sa Windows, default na user, systemd, atbp.
.wslconfig Ito ay naka-save sa labas ng Linux, sa profile ng gumagamit ng Windows. (C:\Users\<Usuario>\.wslconfig) at kinokontrol ang mga pandaigdigang parameter ng VM na nagpapagana sa WSL2: memory, CPU, kernel, network mode, firewall, DNS, laki ng virtual disk, suporta sa GUI, atbp.
Isang kakaibang detalye ay ang "8-segundong tuntunin" kapag binabago ang mga setting.Kapag binago mo ang alinman sa mga file na ito, dapat mong tiyakin na ang WSL VM ay ganap na naka-off. Kahit na isara mo ang window ng distro, maaari itong manatili sa memorya nang ilang segundo.
Para pilitin ang pag-restart ng isang subsystem, maaari mong gamitin ang:
wsl --list --runningpara tingnan kung may mga aktibong distrowsl --shutdownpara isara ang lahat ng distribusyon nang sabay-sabaywsl --terminate <distroName>para ihinto ang isang partikular na distro
Ang mga pagbabago sa configuration ay aktwal na inilalapat lamang kapag ang WSL ay isinara at muling sinimulan.Isang bagay na hindi napapansin ng marami at iniisip na ang kanilang mga pagsasaayos ay "hindi gumagana".
Pangunahing mga opsyon sa wsl.conf ayon sa seksyon
Ang file wsl.conf Ito ay hango sa klasikong format na .ini, na may mga seksyon at key.Ang mga pangunahing seksyon ay [automount], [network], [interop], [user], [boot], [gpu] y [time].
En [automount] Ikaw ang kumokontrol kung paano naka-mount ang mga Windows drive sa loob ng Linux (karaniwang mababa) /mnt):
enabled(bool, default na totoo)Kung totoo, awtomatikong mai-mount ang C:/, D:/, atbp./mnt/c,/mnt/d...mountFsTab(bool): kung totoo ito, ipoproseso ito/etc/fstabkapag sinisimulan ang distro.root(kadena): root directory kung saan mai-mount ang mga drive, halimbawa/windir/upang magkaroon/windir/c.options(listahang pinaghihiwalay ng kuwit)Mga parameter na partikular sa DrvFs tulad ngmetadata,uid,gid,umask,fmask,dmaskocase.
Ang DrvFs ay ang file system na nagdudugtong sa Windows at Linux., na idinisenyo upang ma-access ang NTFS mula sa WSL na may kontrol sa pahintulot, metadata at case sensitivity.
Sa seksyon [network] Inaayos mo ang awtomatikong pagbuo ng mga file ng network:
generateHostsKung totoo, awtomatikong bubuo ang WSL/etc/hosts.generateResolvConfKung totoo, ang WSL ay lumilikha ng/etc/resolv.confgamit ang lumang DNS.hostname: hostname na gagamitin ng distribution.
Seksyon [interop] kinokontrol ang interoperability sa Windows:
enabled: Pinapagana o hindi pinapagana ang kakayahang maglunsad ng mga proseso ng Windows mula sa WSL.appendWindowsPath: nagpapasya kung magdaragdag ng mga path ng Windows sa$PATHLinux.
En [user] Maaari mong tukuyin ang user na gagamitin bilang default kapag sinisimulan ang distro:
default: username na sisimulan bilang default sa WSL.
Seksyon [boot] Ito ay partikular na kapaki-pakinabang sa Windows 11 at Server 2022 para awtomatikong ilunsad ang mga serbisyo, tulad ng Docker sa loob ng WSL:
command: command string na isasagawa kapag sinisimulan ang WSL, halimbawaservice docker start.protectBinfmt: pinoprotektahan ang pagbuo ng mga systemd unit kapag pinagana ang systemd.
Mayroon ka ring mga seksyon tulad ng [gpu] (paganahin ang access sa Windows GPU mula sa Linux), at [time] para i-synchronize ang time zone sa WindowsPinipigilan nito ang mga problema kapag lumipat ka sa panahon ng tag-araw o paglalakbay.
.wslconfig: Kontrol ng birtwal na makina ng WSL2
Bagama't pino-fine-tune ng wsl.conf ang kilos ng bawat distro, pinapayagan ka naman ng .wslconfig na i-fine-tune ang VM na ginagamit ng lahat ng WSL2 distro.Ang file na ito ay isinasaalang-alang lamang ng mga distribusyon na tumatakbo bilang WSL2, hindi WSL1.
Sa loob .wslconfig ang pangunahing seksyon ay [wsl2]kung saan mo tinutukoy ang mga pangunahing parameter:
kernelykernelModules: mga ganap na landas mula sa Windows patungo sa isang pasadyang Linux kernel at mga modyul nito.memory: Limitasyon sa memorya ng VM (default na 50% ng host RAM), halimbawa4GB.processors: bilang ng mga logical processor na nakatalaga sa VM.localhostForwarding: nagpapahintulot sa mga bukas na port sa WSL2 na ma-access mula sa Windows gamit anglocalhost.swapyswapFile: laki at landas ng swap file para sa VM.guiApplications: pinapagana o hindi pinapagana ang suporta sa aplikasyon ng GUI (WSLg).dnsProxyKapag nasa NAT mode ka, ito ang magpapasya kung ang Linux DNS server ay magiging NAT instance ng host o isang kopya ng Windows DNS.networkingModeDito ka pipili sa pagitan ngnone,nat,bridged(hindi na ginagamit),mirroredovirtioproxy.firewall,dnsTunnelingyautoProxy: mga opsyong tinalakay natin upang mas mahusay na maisama ang WSL network sa mga patakaran ng Windows.defaultVhdSize: pinakamataas na laki ng VHD kung saan nakaimbak ang file system ng distro (default na 1 TB).
Mayroon ding seksyon [experimental] kung saan ang mga tampok ay na-activate sa pagsubok bilang:
autoMemoryReclaim: awtomatikong mga setting ng pagbawi ng memorya (hindi pinagana, unti-unti, dropCache).sparseVhd: paglikha ng mga kalat-kalat na virtual disk upang makatipid ng espasyo.bestEffortDnsParsingydnsTunnelingIpAddress: pagpipino para sa DNS tunneling.ignoredPorts: mga port na magagamit ng mga Linux app kahit na ginagamit ang mga ito sa Windows kapag nasa mirrored mode ka.hostAddressLoopback: nagpapahintulot sa host at container na kumonekta gamit ang mga lokal na IP address ng host sa mirrored mode.
Ang wastong pag-configure ng .wslconfig ang siyang nagbibigay ng pagkakaiba sa pagitan ng isang VM na umuubos ng resources at isang na-optimize na kapaligiran na gumagana nang maayos sa iyong Windows system at network.lalo na kung nagtatrabaho ka sa mabibigat na workload, mga container, o maraming sabay-sabay na distro.
WSL2, Docker, at networking para sa self-hosting gamit ang Tailscale
Isang napaka-praktikal na halimbawa ay ang paggamit ng WSL2 sa mga Windows server (kahit na ang Windows Server 2025) bilang isang self-hosting platform., pinagsasama ang Ubuntu sa WSL2, Docker Engine (nang walang Docker Desktop), Tailscale at isang reverse proxy tulad ng Caddy upang ilantad ang mga serbisyo tulad ng n8n o Supabase.
Ang ideya ay magkaroon ng isang matatag na kapaligiran ng Docker sa loob ng WSL2, na maiiwasan ang mga problema ng Docker Desktop sa mga server.Kapag direktang ini-install ang Docker Engine sa Ubuntu (WSL2), ang container network ay umaasa sa WSL2 network, na siya namang nakadepende sa NAT o mirrored mode na tinukoy sa .wslconfig.
Kapag naka-install na ang Tailscale sa WSL2, maaari mong i-publish ang iyong mga serbisyo sa isang mesh VPN. nang hindi binubuksan ang mga port sa router, at ginagamit ang Caddy bilang reverse proxy upang i-centralize ang mga TLS certificate, ruta, at magaan na load balancing sa pagitan ng mga container.
Upang mapanatili ang isang malinis, mahuhulaan, at ligtas na network, ipinapayong:
- Pumili ng iisang coherent network mode (NAT o mirrored) at idokumento ito
- Iwasan ang mga conflict sa port sa pagitan ng Windows at WSL2, umaasa sa
ignoredPortskung gagamit ka ng salamin - Kontrolin lamang ang pagkakalantad sa serbisyo sa pamamagitan ng Tailscale o Caddysa halip na buksan ang mga port "bilang default" sa firewall
- I-automate ang pagsisimula ng Docker, Tailscale, at Caddy mula sa
[boot]sa wsl.conf magkaroon ng kapaligirang mas malapit sa produksyon
Gamit ang arkitekturang ito, ang WSL2 ay hindi na lamang isang tool sa pag-develop at maaari nang maging isang seryosong self-hosting platform.basta't tatanggapin mo ang mga limitasyon nito (virtualization sa pamamagitan ng Hyper-V, karagdagang network layer, atbp.) at maingat itong iko-configure.
Pinakamahusay na mga kasanayan para sa WSL2 networking para sa pagbuo at pagsubok
Bukod sa pag-aayos, may ilang mga alituntunin na makakatulong sa iyong magtrabaho nang komportable gamit ang WSL2 network. nang hindi patuloy na nahihirapan sa mga IP, port, at firewall.
Para sa mga serbisyo sa pagpapaunlad, gumamit ng mga high port (higit sa 1024) at iwasan ang mga pribilehiyado o madalas gamiting port; binabawasan nito ang mga conflict at inaalis ang pangangailangan para sa mga karagdagang pribilehiyo.
Tiyaking ang code at data ay nasa loob ng Linux file system. (ikaw ~/ o mga panloob na ruta) sa halip na direktang magtrabaho sa /mnt/cdahil ang pag-access sa NTFS mula sa WSL ay mas mabagal at maaaring magdulot ng parusa sa mga serbisyong masinsinang gumagamit ng I/O.
I-automate ang mga setting ng network at mga panuntunan sa pag-redirect gamit ang mga script Sa PowerShell at Bash: halimbawa, isang script na nagko-configure ng WSL2 kapag nagsimula ito. netsh portproxy (kung magpapatuloy ka sa NAT) o tingnan ang mga panuntunan sa firewall kapag gumagamit ng mirroring.
Iwasan ang pag-asa sa pagpapalit ng mga IP nalilikha ng internal virtual switch. Hangga't maaari, makipagtulungan sa localhost, mga hostname o mga entry sa /etc/hosts para sa iyong mga serbisyo, nang sa gayon ay hindi masira ng pagbabago ng IP ang kalahati ng iyong imprastraktura ng pagsubok.
Sa mga propesyonal o semi-produksyon na kapaligiran, pinakamahusay na huwag basta umasa sa awtomatikong pagpapasa ng WSL.Hayagan ang pag-configure ng mga port, proxy, at mga panuntunan sa firewall upang malaman nang eksakto kung ano ang nakalantad at kung saan.
Kapag maayos na na-configure, ang WSL2 ay nag-aalok ng isang nakahiwalay ngunit nababaluktot na network, perpekto para sa advanced na pag-develop, pagsubok sa API, pagtatrabaho sa mga container, at paggaya sa mga distributed environment.Ang susi ay ang pagiging dalubhasa sa mga network mode (NAT vs mirrored), ang mga wsl.conf at .wslconfig file, at ang interaksyon sa firewall at mga tool sa iyong stack (Docker, Tailscale, reverse proxy), upang ang Windows at Linux ay tumakbo sa iisang makina nang hindi nagsasapawan ng mga port o nakompromiso ang seguridad.
Talaan ng nilalaman
- Paano talaga gumagana ang network sa WSL2
- Tukuyin ang mga IP address sa WSL2
- NAT mode: default na pag-uugali ng WSL2 network
- Pag-access sa WSL2 mula sa lokal na network (LAN) gamit ang NAT
- IPv6 at mga modernong tampok ng networking
- Mirrored network mode: pag-mirror ng mga interface ng Windows sa Linux
- DNS tunneling at ang paggamit ng mga proxy sa WSL2
- Pagkakalantad sa Hyper-V Firewall at Secure Service
- Arkitektura ng network ng WSL2, mga saklaw ng X11 at 172.16.0.0/12
- wsl.conf at .wslconfig: advanced na konpigurasyon ng WSL2
- Pangunahing mga opsyon sa wsl.conf ayon sa seksyon
- .wslconfig: Kontrol ng birtwal na makina ng WSL2
- WSL2, Docker, at networking para sa self-hosting gamit ang Tailscale
- Pinakamahusay na mga kasanayan para sa WSL2 networking para sa pagbuo at pagsubok