- WSL2 izmanto virtuālo mašīnu ar savu tīklu, ko var konfigurēt, izmantojot NAT vai spoguļotus režīmus, un ko pārvalda Hyper-V.
- Wsl.conf un .wslconfig kombinācija ļauj pielāgot visu, sākot no automātiskās pievienošanas un systemd līdz pat atmiņai, centrālajiem procesoriem un tīkla politikām.
- Tādas funkcijas kā dnsTunneling, autoProxy un Hyper-V ugunsmūris uzlabo integrāciju ar VPN, starpniekservera serveriem un drošību operētājsistēmā Windows 11.
- Rūpīgi konfigurējot, WSL2 kļūst par stabilu platformu izstrādei, konteineriem un drošai pašapkalpošanai.

WSL2 ir pilnībā mainījis Linux integrāciju ar WindowsĪpaši visā, kas saistīts ar tīklu: tagad mums ir viegla virtuālā mašīna ar savu tīkla steku, savu IP adresi un atsevišķiem piekļuves noteikumiem. Tas paver daudzas iespējas izstrādei, testēšanai, konteineriem un pašapkalpošanās vidēm, taču tas rada arī bažas, kad pakalpojumi kļūst nepieejami, kā tas notika ar WSL1.
Izpratne par WSL2 tīkla konfigurāciju, tā NAT un spoguļotajiem režīmiem, .wslconfig un wsl.conf izmantošanu un to mijiedarbību ar ugunsmūriem, VPN, Docker vai tādiem rīkiem kā Tailscale. Tas ir galvenais, lai izvairītos no galvassāpēm. Apskatīsim soli pa solim, kā darbojas visa šī iestatīšana, kā pakļaut pakalpojumus operētājsistēmai Windows un lokālajam tīklam (LAN), kādas komandas izmantot, lai iegūtu pareizās IP adreses, un kādas papildu konfigurācijas opcijas ir pieejamas, lai precīzi noregulētu savu vidi, padarot to stabilu un, galvenais, drošu.
Kā tīkls faktiski darbojas WSL2 vidē
WSL2 vairs nekoplieto resursdatora tīkla steku tāpat kā WSL1Tā vietā katru Linux izplatījumu darbina nelielā virtuālajā mašīnā, ko pārvalda Hyper-V. Šai virtuālajai mašīnai ir savs virtuālais adapteris (parasti eth0) un privātu IP adresi, ko piešķir iekšējs virtuālais slēdzis.
Noklusējuma režīmā WSL2 izmanto uz NAT balstītu arhitektūru. (Tīkla adrešu tulkošana). Windows darbojas kā maršrutētājs/resursdators, un Linux distributīvs atrodas privātā apakštīklā, parasti šajā diapazonā. 172.16.0.0/12Šis apakštīkls var mainīties pēc pārstartēšanas vai WSL restartēšanas, kas ir satraucis ne vienu vien cilvēku, konfigurējot statiskos ugunsmūra noteikumus.
No praktiskā viedokļa tas nozīmē, ka jūsu WSL2 distro IP adrese nav ne stabila, ne tieši pieejama no lokālā tīkla. Tāpat kā ar WSL1: pēc noklusējuma starp Windows un WSL2 ir savienojums tikai, izmantojot pāradresācijas noteikumus un NAT, un piekļuve lokālajam tīklam prasa papildu darbības vai spoguļota režīma izmantošanu.
Papildus šai pamata arhitektūrai Windows 11 22H2 un jaunākās versijas pievieno jaunas tīkla iespējas. (spoguļrežīms, dnsTunneling, autoProxy, Hyper-V ugunsmūris utt.), kas tiek kontrolēti no globālā faila .wslconfiglai gan noteiktas Linux opcijas tiek pārvaldītas ar /etc/wsl.conf.
Identificējiet IP adreses WSL2
Darbs ar WSL2 ietver skaidru divu IP scenāriju nošķiršanu: kad nepieciešama Linux distributīvās versijas IP adrese un kad nepieciešama Windows resursdatora IP adrese, kas tiek skatīta no Linux. Katru no tām atrisina ar atšķirīgu komandu.
1. scenārijs: operētājsistēmā Windows vēlaties uzzināt WSL2 distro IP adresi Lai atļautu lietojumprogrammai resursdatorā (piemēram, klientam, pārlūkprogrammai vai testēšanas rīkam) izveidot savienojumu ar pakalpojumu, kas darbojas operētājsistēmā Linux. Lai to izdarītu, operētājsistēmā Windows varat palaist šādas komandas (izmantojot CMD vai PowerShell):
wsl.exe --distribution <DistroName> hostname -i
Ja vēlaties izmantot noklusējuma distro, varat izlaist distribution parametru. un vienkārši piezvaniet wsl.exe hostname -iFonā šī komanda tiek palaista operētājsistēmā Linux hostname --ip-addresses un atgriež instances IP adresi. Tipisks rezultāts varētu izskatīties apmēram šādi:
172.30.98.229
2. scenārijs: Linux distro jums jāzina Windows resursdatora IP adrese.Piemēram, lai savienotu WSL2 lietojumprogrammu ar serveri, kas darbojas operētājsistēmā Windows (Node.js, SQL Server, Caddy utt.), Linux apvalkā varat izmantot:
ip route show | grep -i default | awk '{ print $3 }'
Izvade būs WSL2 virtuālās mašīnas noklusējuma vārteja., kas atbilst Windows resursdatora IP adresei, kā redzams no Linux, apmēram šādi:
172.30.96.1
Šī vērtība (piemēram, 172.30.96.1) ir adrese, uz kuru jānorāda jūsu Linux klientiem ja vēlaties piekļūt pakalpojumiem, kas darbojas Windows resursdatorā, atrodoties klasiskajā NAT režīmā.
NAT režīms: WSL2 tīkla noklusējuma darbība
Sākotnēji WSL2 darbojas NAT režīmā, un daudzām vienkāršām izstrādes vidēm tas ir vairāk nekā pietiekami.Svarīgi ir saprast, kas darbojas "pats par sevi" un kas ne, lai netērētu laiku spoku dzenāšanai.
Piekļuve Linux pakalpojumiem no Windows, izmantojot localhostJa savā WSL2 distro darbināt tīkla lietojumprogrammu (piemēram, Node.js serveri, Flask serveri, SQL Server operētājsistēmā Linux), tai var piekļūt no Windows, izmantojot localhost:puertoWindows automātiski pārsūta ienākošos savienojumus uz WSL2 virtuālās mašīnas iekšējo IP adresi.
Piekļuve pakalpojumiem, kas darbojas operētājsistēmā Windows, no LinuxLūk, kur lietas mainās. Lai no WSL2 sasniegtu tīkla lietojumprogrammu resursdatorā (piemēram, Node.js serverī, SQL Server vai Caddy operētājsistēmā Windows), jums jāizmanto resursdatora IP adrese, kā redzams Linux, kas iegūta ar noklusējuma maršruta komandu:
ip route show | grep -i default | awk '{ print $3 }'
Ar šo IP adresi jūs varat izveidot savienojumu no Linux ar jebkuru pakalpojumu resursdatorā, piemēram http://172.30.96.1:3000 ja jūsu Windows serveris visās saskarnēs klausās 3000. portā.
Kad izveidojat savienojumu, izmantojot attālās IP adreses (nevis lokālo serveri), lietojumprogrammas tās redz kā lokālā tīkla savienojumus.Tas nozīmē, ka daudziem serveriem ir jābūt konfigurētiem, lai tie klausītos 0.0.0.0 vietā 127.0.0.1Piemēram, ar Flask jūs varētu palaist:
app.run(host='0.0.0.0')
Šīs izmaiņas uzlabo pieejamību, taču prasa pievērst uzmanību drošībai.jo jūs atļaujat savienojumus no lokālā tīkla, ne tikai no paša datora.
Piekļuve WSL2 no lokālā tīkla (LAN), izmantojot NAT
Viena no kaitinošākajām izmaiņām, pārejot no WSL1 uz WSL2, ir tā, ka izplatījumi vairs nav tieši pieejami no lokālā tīkla.WSL1 vidē, ja jūsu Windows bija redzams tīklā, distro pakalpojumi šo ekspozīciju mantoja gandrīz bez piepūles.
WSL2 vidē virtuālajai mašīnai (VM) ir sava privāta IP adrese, un tā netiek automātiski reklamēta lokālajā tīklā (LAN).Lai panāktu kaut ko līdzīgu vecajai darbībai, NAT režīmā sistēmā Windows ir jāizveido porta starpniekserveris, tāpat kā ar jebkuru Hyper-V virtuālo mašīnu.
Windows ietver klasisku rīku šim nolūkam: netsh interface portproxyTipiska komanda resursdatora porta novirzīšanai uz WSL2 IP/portu būtu šāda:
netsh interface portproxy add v4tov4 listenport=<puertoHost> listenaddress=0.0.0.0 connectport=<puertoWSL> connectaddress=(wsl hostname -I)
Praksē jūs aizstātu marķierus ar noteiktām vērtībām.Piemēram:
netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100
Šeit listenaddress=0.0.0.0 Tas norāda, ka Windows klausīsies visās resursdatora IPv4 adresēs.un pārsūtīs to, kas ienāk caur 4000. portu, uz 192.168.101.100:4000kas būtu WSL2 IP adrese, kas iegūta ar:
wsl hostname -ITas sniedz jums Linux distro IP adresi WSL2 VM iekšpusē.cat /etc/resolv.confTas atklāj Windows Vista resursdatora IP adresi no WSL2.
Izmantojot šo metodi, jūs varat padarīt pakalpojumu, kas darbojas WSL2, pieejamu no jebkura datora lokālajā tīklā (LAN).ar nosacījumu, ka Windows ugunsmūris to atļauj un jūs skaidri zināt, ka jūs atklājat virtuālās mašīnas, nevis tieši resursdatora, pakalpojumu.
IPv6 un mūsdienu tīkla funkcijas
WSL2 var darboties arī ar IPv6, kas ir īpaši svarīgi mūsdienu vidēs, VPN un korporatīvajos tīklos.Lai apstrādātu adreses, Linux pamata komandas ir līdzvērtīgas IPv4 komandām:
wsl hostname -iNo Windows, lai skatītu WSL2 izplatīšanas IP adresiip route show | grep -i default | awk '{ print $3 }'no Linux, lai iegūtu Windows resursdatora IP adresi
IPv6 un VPN atbalsta kvalitātes lēciens patiesi ir manāms spoguļotā tīkla režīmā., pieejams operētājsistēmā Windows 11 22H2 un jaunākās versijās, kuras mēs sīkāk aplūkosim vēlāk.
Spoguļots tīkla režīms: Windows saskarņu spoguļošana operētājsistēmā Linux
Datoros ar Windows 11 22H2 vai jaunāku versiju var iespējot "spoguļotā" tīkla režīmu. WSL2 versijā modelis pilnībā mainās: klasiskā NAT vietā Linux "redz" atspoguļotas Windows tīkla saskarnes.
Lai to iespējotu, jums ir jārediģē fails .wslconfig jūsu lietotāja, kas atrodas iekšā %UserProfile%\.wslconfigNo PowerShell ar administratora privilēģijām to var atvērt ar:
notepad $env:USERPROFILE\.wslconfig
Iekšpusē pievienojiet (vai modificējiet) sadaļu [wsl2], lai aktivizētu spoguļattēla režīmu.:
[wsl2]
networkingMode=mirrored
Kad fails ir saglabāts, jums ir jārestartē WSL2, lai tas stātos spēkā.Piemēram, ar:
wsl --shutdown
Restartējot to, WSL izmantos jauno spoguļotā tīkla arhitektūru.kas sniedz vairākas ļoti spēcīgas priekšrocības:
- Vietējais IPv6 atbalsts un uzlabota integrācija ar korporatīvajiem tīkliem un VPN
- Iespēja izveidot savienojumu ar Windows pakalpojumiem no Linux, izmantojot
127.0.0.1tieši (lai gan tas nav atļauts)::1(piemēram, IPv6 atgriezeniskā saite šim nolūkam) - Uzlabots multiraides atbalsts Windows-Linux integrācijā
- Tieša piekļuve WSL no lokālā tīkla, neizmantojot netsh portproxyizmantojot pašas Windows iekārtas IP adresi
Šī režīma iespējošana atrisina daudzas klasiskās WSL2 NAT problēmas. un tā ir ieteicamā opcija lielākajā daļā moderno izstrādes un pašapkalpošanās vides, kur var izmantot atjauninātu Windows 11 versiju.
DNS tunelēšana un starpniekservera izmantošana WSL2
Operētājsistēmā Windows 11 22H2 un jaunākās versijās ir ievērojami pārveidota arī nosaukumu atpazīšana no WSL2.Galvenais ir divās funkcijās, kas definētas .wslconfig: dnsTunneling y autoProxy.
Iespēja dnsTunneling Tas pēc noklusējuma ir iespējots sadaļā [wsl2]. Tas ļauj apstrādāt Linux DNS pieprasījumus, izmantojot virtualizācijas funkciju, nevis nosūtīt tos kā parastas tīkla paketes. Tas ievērojami uzlabo saderību ar VPN un sarežģītām tīkla konfigurācijām resursdatorā.
No savas puses, autoProxy=true piespiež WSL izmantot Windows HTTP starpniekservera iestatījumusJa resursdators atrodas aiz korporatīvā vai drošības starpniekservera, WSL2 to automātiski manto, jums manuāli neriskējot ar vides mainīgajiem.
Piemēram, jūsu ierīcē varētu būt kaut kas līdzīgs šim .wslconfig:
[wsl2]
dnsTunneling=true
autoProxy=true
Tas nodrošina, ka WSL2 tīkls darbojas atbilstoši resursdatora konfigurācijai., īpaši noderīgi uzņēmumos ar stingru tīkla un filtrēšanas politiku.
Hyper-V ugunsmūris un droša pakalpojuma iedarbība
Mūsdienu vidē WSL2 tīkls iet arī caur īpašu ugunsmūri.Sākot ar WSL 2.0.9 operētājsistēmā Windows 11 22H2, Hyper-V ugunsmūra funkcija ir iespējota pēc noklusējuma, pievienojot papildu filtrēšanas slāni VM datplūsmai (tostarp WSL2 datplūsmai).
Ja strādājat spoguļrežīmā un vēlaties pastāvīgi pakļaut WSL2 pakalpojumus lokālajam tīklam (LAN) (piemēram, API, informācijas paneļi vai pašapkalpošanās pakalpojumi), jums jāpārliecinās, vai ugunsmūra noteikumi to atļauj.
Saprātīga pieeja no PowerShell ar administratora privilēģijām ir izveidot Hyper-V noteikumu privātiem tīkliem.:
New-NetFirewallHyperVRule -DisplayName "WSLPrivateInboundRule" -Profiles Private -Direction Inbound -Action Allow -VMCreatorId ((Get-NetFirewallHyperVVMCreator).VMCreatorId)
Ja kāda iemesla dēļ vēlaties atspējot šo konkrēto Hyper-V aizsardzību (kaut kas mazāk ieteicams), jūs varētu izmantot:
Set-NetFirewallHyperVVMSetting -Name ((Get-NetFirewallHyperVVMCreator).VMCreatorId) -Enabled False
Ideja ir uzturēt ugunsmūri aktīvu, kad vien iespējams.ierobežojot noteikumus privātiem tīkliem un tikai tām pieslēgvietām, kas jums patiešām ir nepieciešamas, un jebkādu masveida deaktivizāciju atstājot kā pēdējo līdzekli un vienmēr ar mērķi atkal nostiprināt konfigurāciju, tiklīdz viss darbojas.
WSL2 tīkla arhitektūra, X11 un 172.16.0.0/12 diapazoni
Klasisks gadījums, kas atklāj WSL2 tīkla detaļas, ir grafisko lietojumprogrammu izmantošana, izmantojot X11.Piemēram, Xming palaišana operētājsistēmā Windows un Linux lietojumprogrammu nosūtīšana, izmantojot DISPLAY.
Jauninot no WSL1 uz WSL2, daudzi lietotāji konstatē, ka X pārstāj darboties. jo tīkls vairs nav "koplietots" un kļūst par virtuālu NAT tīklu ar tādiem diapazoniem kā 172.16.0.0/12kas var mainīties arī pēc katras Windows vai WSL restartēšanas.
Lai X atkal darbotos ar Xming no WSL2, parasti ir jāiegūst Windows IP adrese, ko redz Linux. izmantojot:
ens
DISPLAY=$(grep nameserver /etc/resolv.conf | cut -d' ' -f2):0
Paralēli ir nepieciešams pielāgot Windows ugunsmūri, lai atļautu X11 datplūsmu no šī NAT apakštīkla.Tipiska pieeja ir rediģēt Xming noteikumu, pievienojot diapazonu 172.16.0.0/12 TCP+UDP 6000.
Daudzi galu galā atspējo Xming autentifikāciju ar opciju -acTas faktiski "atver durvis" jebkuram klientam X, kas ierodas no šī tīkla. Tas darbojas, bet no drošības viedokļa tas ir diezgan apšaubāmi, tāpēc ir vērts apsvērt ierobežotākus risinājumus vai izmantot WSLg (integrētas GUI lietojumprogrammas) operētājsistēmā Windows 11.
wsl.conf un .wslconfig: WSL2 papildu konfigurācija
WSL piedāvā divus galvenos konfigurācijas failus, kas kontrolē gan virtuālās mašīnas, gan katras izplatīšanas darbību.: /etc/wsl.conf (izplatītājs) un %UserProfile%\.wslconfig (globāli visiem WSL2 distribūcijām).
wsl.conf dzīvo Linux distribūcijā, iekš /etc/wsl.confTo izmanto, lai konfigurētu lokālās opcijas šim distribūcijam: automātiska piestiprināšana, ģenerēšana hosts y resolv.confsadarbspēja ar Windows, noklusējuma lietotājs, systemd utt.
.wslconfig Tas tiek saglabāts ārpus Linux, Windows lietotāja profilā. (C:\Users\<Usuario>\.wslconfig) un kontrolē WSL2 darbinošās virtuālās mašīnas (VM) globālos parametrus: atmiņu, centrālos procesorus, kodolu, tīkla režīmu, ugunsmūri, DNS, virtuālā diska lielumu, grafiskās lietotāja saskarnes atbalstu utt.
Viena kurioza detaļa ir "8 sekunžu noteikums", mainot iestatījumus.Modificējot jebkuru no šiem failiem, jāpārliecinās, ka WSL virtuālā mašīna ir pilnībā izslēgta. Pat ja aizverat distro logu, tas var palikt atmiņā dažas sekundes.
Lai piespiestu apakšsistēmas restartēšanu, varat izmantot:
wsl --list --runninglai pārbaudītu, vai ir kādi aktīvi distribūcijaswsl --shutdownlai aizvērtu visus izplatījumus vienlaikuswsl --terminate <distroName>lai apturētu konkrētu distro
Konfigurācijas izmaiņas faktiski tiek piemērotas tikai tad, kad WSL tiek izslēgts un restartēts.Kaut kas tāds, ko daudzi nepamana un domā, ka viņu pielāgojumi "nedarbojas".
Galvenās wsl.conf opcijas pa sadaļām
Fails wsl.conf Tas ir iedvesmots no klasiskā .ini formāta ar sadaļām un atslēgāmGalvenās sadaļas ir [automount], [network], [interop], [user], [boot], [gpu] y [time].
En [automount] Jūs kontrolējat, kā Windows diski tiek pievienoti Linux sistēmā (parasti zems) /mnt):
enabled(boola, pēc noklusējuma patiess)Ja ir patiess, C:/, D:/ utt. tiek automātiski piestiprināti/mnt/c,/mnt/d...mountFsTab(būla vērtība): ja tā ir taisnība, tā tiek apstrādāta/etc/fstabstartējot distro.root(ķēde): saknes direktorijs, kurā tiks uzstādīti diski, piemēram/windir/būt/windir/c.options(ar komatiem atdalīts saraksts)DrvF specifiski parametri, piemēram,metadata,uid,gid,umask,fmask,dmaskocase.
DrvFs ir failu sistēma, kas savieno Windows un Linux., kas paredzēts piekļuvei NTFS no WSL ar atļauju kontroli, metadatiem un reģistrjutību.
Sadaļā [network] Jūs pielāgojat tīkla failu automātisko ģenerēšanu:
generateHosts: ja vērtība ir patiesa, WSL ģenerē automātiski/etc/hosts.generateResolvConfJa patiess, WSL izveido/etc/resolv.confar mantotu DNS.hostname: resursdatora nosaukums, ko izmantos izplatīšana.
Sadaļa [interop] kontrolē sadarbspēju ar Windows:
enabled: Iespējo vai atspējo iespēju palaist Windows procesus no WSL.appendWindowsPath: izlemj, vai pievienot Windows ceļus$PATHLinux.
En [user] Varat norādīt lietotāju, kas tiks izmantots pēc noklusējuma, startējot distro.:
default: lietotājvārds, kas pēc noklusējuma tiks palaists WSL.
Sadaļa [boot] Tas ir īpaši noderīgi operētājsistēmās Windows 11 un Server 2022. lai automātiski palaistu pakalpojumus, piemēram, Docker, WSL ietvaros:
command: komandu virkne, kas jāizpilda, startējot WSL, piemēramservice docker start.protectBinfmt: aizsargā systemd vienību ģenerēšanu, kad systemd ir iespējots.
Jums ir arī tādas sadaļas kā [gpu] (iespējot piekļuvi Windows GPU no Linux) un [time] sinhronizēt laika joslu ar WindowsTas novērš problēmas, pārejot uz vasaras laiku vai ceļojot.
.wslconfig: WSL2 virtuālās mašīnas vadība
Lai gan wsl.conf precīzi noregulē katras distro darbību, .wslconfig ļauj precīzi noregulēt virtuālo mašīnu, ko koplieto visi WSL2 distro.Šo failu ņem vērā tikai tie izplatījumi, kas darbojas kā WSL2, nevis WSL1.
Iekšpusē .wslconfig galvenā sadaļa ir [wsl2]kur jūs definējat galvenos parametrus:
kernelykernelModules: absolūtie ceļi no Windows uz pielāgotu Linux kodolu un tā moduļiem.memoryVM atmiņas ierobežojums (pēc noklusējuma 50% no resursdatora RAM), piemēram4GB.processors: VM piešķirto loģisko procesoru skaits.localhostForwarding: ļauj piekļūt atvērtajām WSL2 pieslēgvietām no Windows, izmantojotlocalhost.swapyswapFile: virtuālās mašīnas mijmaiņas faila lielums un ceļš.guiApplications: iespējo vai atspējo GUI lietojumprogrammu atbalstu (WSLg).dnsProxyKad esat NAT režīmā, tas izlemj, vai Linux DNS serveris būs resursdatora NAT instance vai Windows DNS kopija.networkingModeŠeit jūs izvēlaties starpnone,nat,bridged(novecojis),mirroredovirtioproxy.firewall,dnsTunnelingyautoProxy: iespējas, kuras esam apsprieduši, lai labāk integrētu WSL tīklu ar Windows politikām.defaultVhdSize: maksimālais VHD izmērs, kurā tiek glabāta distro failu sistēma (pēc noklusējuma 1 TB).
Ir arī sadaļa [experimental] kur funkcijas tiek aktivizētas testēšanas laikā kā:
autoMemoryReclaim: automātiskās atmiņas atjaunošanas iestatījumi (atspējoti, pakāpeniski, dropCache).sparseVhd: reti sastopamu virtuālo disku izveide vietas taupīšanai.bestEffortDnsParsingydnsTunnelingIpAddress: DNS tunelēšanas precizēšana.ignoredPorts: porti, ko Linux lietotnes var izmantot pat tad, ja tie tiek izmantoti operētājsistēmā Windows, kad esat spoguļotā režīmā.hostAddressLoopback: ļauj resursdatoram un konteineram izveidot savienojumu, izmantojot resursdatora lokālās IP adreses spoguļotā režīmā.
Pareiza .wslconfig konfigurēšana ir būtiska, lai izveidotu resursus patērējošu virtuālo mašīnu un optimizētu vidi, kas labi darbojas ar jūsu Windows sistēmu un tīklu.it īpaši, ja strādājat ar lielām darba slodzēm, konteineriem vai vairākiem vienlaicīgiem distro.
WSL2, Docker un tīklošana pašapkalpošanās mitināšanai ar Tailscale
Ļoti praktisks piemērs ir WSL2 izmantošana Windows serveros (pat Windows Server 2025) kā pašapkalpošanās platforma., apvienojot Ubuntu uz WSL2, Docker Engine (bez Docker Desktop), Tailscale un apgriezto starpniekserveri, piemēram, Caddy, lai piekļūtu tādiem pakalpojumiem kā n8n vai Supabase.
Ideja ir izveidot stabilu Docker vidi WSL2 ietvaros, izvairoties no Docker Desktop problēmām serveros.Instalējot Docker Engine tieši Ubuntu (WSL2), konteineru tīkls paļaujas uz WSL2 tīklu, kas savukārt ir atkarīgs no NAT vai spoguļotā režīma, kas definēts .wslconfig failā.
Kad Tailscale ir instalēta WSL2, varat publicēt savus pakalpojumus tīkla VPN tīklā. neatverot maršrutētāja portus un izmantojot Caddy kā apgriezto starpniekserveri, lai centralizētu TLS sertifikātus, maršrutus un vieglu slodzes līdzsvarošanu starp konteineriem.
Lai uzturētu tīru, paredzamu un drošu tīklu, ieteicams:
- Izvēlieties vienu koherentu tīkla režīmu (NAT vai spoguļotu) un dokumentējiet to.
- Izvairieties no portu konfliktiem starp Windows un WSL2, paļaujoties uz
ignoredPortsja izmantojat spoguļattēlu - Kontrolējiet servisa iedarbību tikai, izmantojot Tailscale vai Caddynevis atverot portus "pēc noklusējuma" ugunsmūrī
- Automatizējiet Docker, Tailscale un Caddy palaišanu no
[boot]wsl.conf failā lai vide būtu tuvāka ražošanai
Ar šo arhitektūru WSL2 vairs nav tikai izstrādes rīks un var kļūt par diezgan nopietnu pašapkalpošanās platformu.ar nosacījumu, ka jūs pieņemat tā ierobežojumus (virtualizācija, izmantojot Hyper-V, papildu tīkla slānis utt.) un rūpīgi to konfigurējat.
WSL2 tīklošanas labākā prakse izstrādei un testēšanai
Papildus precīzai noregulēšanai ir vairākas vadlīnijas, kas palīdzēs ērti strādāt ar WSL2 tīklu. bez pastāvīgas cīņas ar IP adresēm, portiem un ugunsmūriem.
Izstrādes pakalpojumiem izmantojiet augstus portus (virs 1024) un izvairīties no privileģētām vai intensīvi izmantotām pieslēgvietām; tas samazina konfliktus un novērš nepieciešamību pēc papildu privilēģijām.
Pārliecinieties, vai kods un dati atrodas Linux failu sistēmā. (jūs ~/ vai iekšējos maršrutos), nevis strādājot tieši ar /mnt/cjo piekļuve NTFS no WSL ir lēnāka un var kaitēt pakalpojumiem, kas intensīvi izmanto ievades/izvades sistēmu.
Tīkla iestatījumu un pāradresācijas noteikumu automatizācija, izmantojot skriptus PowerShell un Bash: piemēram, skripts, kas konfigurē WSL2, kad tas tiek palaists. netsh portproxy (ja turpināt ar NAT) vai pārbaudiet ugunsmūra noteikumus, lietojot spoguļošanu.
Izvairieties paļauties uz mainīgām IP adresēm ko ģenerē iekšējais virtuālais slēdzis. Kad vien iespējams, strādājiet ar localhost, resursdatora nosaukumi vai ieraksti /etc/hosts jūsu pakalpojumiem, lai IP adreses maiņa neizjauktu pusi jūsu testēšanas infrastruktūras.
Profesionālā vai daļēji ražošanas vidē vislabāk akli nepaļauties uz WSL automātisko pārsūtīšanu.Skaidri konfigurējiet portus, starpniekservera serverus un ugunsmūra noteikumus, lai precīzi zinātu, kas un kur ir pakļauts riskam.
Pareizi konfigurēts, WSL2 piedāvā izolētu, bet elastīgu tīklu, kas ir ideāli piemērots progresīvai izstrādei, API testēšanai, darbam ar konteineriem un izkliedētas vides simulēšanai.Svarīgākais ir apgūt tīkla režīmus (NAT pret spoguļotu), wsl.conf un .wslconfig failus, kā arī mijiedarbību ar ugunsmūri un jūsu steka rīkiem (Docker, Tailscale, reversajiem starpniekservera serveriem), lai Windows un Linux varētu darboties vienā datorā, nepārklājot portus vai neapdraudot drošību.
Saturs
- Kā tīkls faktiski darbojas WSL2 vidē
- Identificējiet IP adreses WSL2
- NAT režīms: WSL2 tīkla noklusējuma darbība
- Piekļuve WSL2 no lokālā tīkla (LAN), izmantojot NAT
- IPv6 un mūsdienu tīkla funkcijas
- Spoguļots tīkla režīms: Windows saskarņu spoguļošana operētājsistēmā Linux
- DNS tunelēšana un starpniekservera izmantošana WSL2
- Hyper-V ugunsmūris un droša pakalpojuma iedarbība
- WSL2 tīkla arhitektūra, X11 un 172.16.0.0/12 diapazoni
- wsl.conf un .wslconfig: WSL2 papildu konfigurācija
- Galvenās wsl.conf opcijas pa sadaļām
- .wslconfig: WSL2 virtuālās mašīnas vadība
- WSL2, Docker un tīklošana pašapkalpošanās mitināšanai ar Tailscale
- WSL2 tīklošanas labākā prakse izstrādei un testēšanai