Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A hálózati alkalmazások és a WSL használata során figyelembe kell venni néhány szempontot. A WSL alapértelmezés szerint NAT-alapú architektúráthasznál, és javasoljuk, hogy próbálja ki az új tükrözött hálózati módot a legújabb funkciók és fejlesztések beszerzéséhez.
IP-cím azonosítása
A WSL-en keresztül futó Linux-disztribúcióhoz használt IP-cím azonosításakor két forgatókönyvet kell figyelembe venni:
Első forgatókönyv: A Windows-gazdagép szempontjából le szeretné kérdezni egy Linux-disztribúció WSL2-n keresztül futó IP-címét, hogy a Windows-gazdagépen futó programok kapcsolódni tudjanak a disztribúción (példányon) futó kiszolgálói programhoz.
A Windows-gazdagép a következő parancsot használhatja:
wsl.exe --distribution <DistroName> hostname -i
Ha lekérdezi az alapértelmezett eloszlást, a parancsnak a disztribúciót kijelölő része kihagyható: -d <DistroName>. Mindenképpen használjon kisbetűs -i jelzőt.
A háttérben a hostparancs wsl.exe elindítja a cél példányt, és végrehajtja a Linux parancsot hostname --ip-addresses. Ez a parancs ezután kinyomtatja a WSL-példány IP-címét STDOUT. A STDOUT szöveges tartalmat ezután visszaküldik a wsl.exe-nek. Végül wsl.exe megjeleníti a kimenetet a parancssorban.
A kimenet általában a következő lehet:
172.30.98.229
második forgatókönyv: Egy Linux-disztribúcióban WSL2 -n (példányon) futó program tudni szeretné a Windows-gazdagép IP-címét, hogy egy Linux-program kapcsolódni tudjon egy Windows-gazdagépkiszolgáló-programhoz.
A WSL2 Linux-felhasználó a következő parancsot használhatja:
ip route show | grep -i default | awk '{ print $3}'
A kimenet általában a következő lehet:
172.30.96.1
Ebben a példában tehát a 172.30.96.1 a Windows gazda IP-címe.
Jegyzet
Ezek a fenti IP-címlekérdezési műveletek általában akkor szükségesek, ha a WSL2 az alapértelmezett NAT hálózati módúfut.
Ha a WSL2 az új tükrözött módúfut, a Windows-gazdagép és a WSL2 virtuális gép localhost (127.0.0.1) használatával tud csatlakozni egymáshoz célcímként, így a lekérdezési társ IP-címének használata nem szükséges.
Alapértelmezett hálózati mód: NAT
A WSL alapértelmezés szerint NAT(Hálózati címfordítás) alapú architektúrát használ a hálózatkezeléshez. A NAT-alapú hálózati architektúra használatakor tartsa szem előtt az alábbi szempontokat:
Linuxos hálózati alkalmazások elérése a Windowsból (localhost)
Ha hálózati alkalmazást (például NodeJS-en vagy SQL Serveren futó alkalmazást) hoz létre a Linux-disztribúcióban, elérheti azt egy Windows alkalmazásból (például az Edge vagy a Chrome böngészőből) localhost (ahogy szokott).
Windows hálózati alkalmazások elérése Linuxról (gazdagép IP-címe)
Ha Windows rendszeren futó hálózati alkalmazást (például NodeJS-en vagy SQL Serveren futó alkalmazást) szeretne elérni a Linux-disztribúcióból (pl. Ubuntu), akkor a gazdagép IP-címét kell használnia. Bár ez nem gyakori forgatókönyv, az alábbi lépéseket követve teheti működőképessé.
Szerezze be a gazdagép IP-címét a parancs Linux-disztribúcióból történő futtatásával:
ip route show | grep -i default | awk '{ print $3}'Csatlakozzon bármelyik Windows-kiszolgálóhoz a másolt IP-címmel.
Az alábbi képen egy példa látható erre egy windowsos Node.js-kiszolgálóhoz való csatlakozással, curl használatával.
Csatlakozás távoli IP-címeken keresztül
Ha távoli IP-címeket használ az alkalmazásokhoz való csatlakozáshoz, a rendszer a helyi hálózat (LAN) kapcsolataként kezeli őket. Ez azt jelenti, hogy gondoskodnia kell arról, hogy az alkalmazás fogadjon lan-kapcsolatokat.
Például előfordulhat, hogy az alkalmazást 0.0.0.0helyett 127.0.0.1-hoz kell kötnie. A Flaskot használó Python-alkalmazás példájában ez a következő paranccsal végezhető el: app.run(host='0.0.0.0'). A módosítások végrehajtásakor tartsa szem előtt a biztonságot, mivel ez lehetővé teszi a lan-ról érkező kapcsolatokat.
WSL 2-disztribúció elérése a helyi hálózatról (LAN)
Ha WSL 1-disztribúciót használ, ha a számítógépét úgy állította be, hogy a LAN-on keresztül férhessen hozzá, akkor a WSL-ben futó alkalmazások a helyi hálózaton is elérhetők lehetnek.
Ez nem az alapértelmezett eset a WSL 2-ben. A WSL 2 rendelkezik egy virtualizált Ethernet-adapterrel, saját egyedi IP-címmel. A munkafolyamat engedélyezéséhez jelenleg ugyanazokat a lépéseket kell elvégeznie, mint egy normál virtuális gép esetében. (A felhasználói élmény javításának módjait vizsgáljuk.)
Íme egy példa a Netsh interfész portproxy Windows-parancs használatára egy portproxy hozzáadásához, amely figyeli a gazdagépportot, és csatlakoztatja a portproxyt a WSL 2 virtuális gép IP-címéhez.
netsh interface portproxy add v4tov4 listenport=<yourPortToForward> listenaddress=0.0.0.0 connectport=<yourPortToConnectToInWSL> connectaddress=(wsl hostname -I)
Ebben a példában frissítenie kell a <yourPortToForward> értéket egy portszámra, például listenport=4000-re.
listenaddress=0.0.0.0 azt jelenti, hogy a bejövő kérések bármely IP-címről fogadhatók el. A Figyelés cím azt az IPv4-címet adja meg, amelynek a figyelésére szükség van, és olyan értékekre módosítható, amelyek tartalmazzák az IP-címet, a számítógép NetBIOS-nevét vagy a számítógép DNS-nevét. Ha nincs megadva cím, az alapértelmezett a helyi számítógép. Frissítenie kell a <yourPortToConnectToInWSL> értéket egy portszámra, amelyhez a WSL-t csatlakoztatni szeretné, például connectport=4000. Végül a connectaddress értéknek a Linux-disztribúció WSL 2-en (WSL 2 virtuálisgép-címen) keresztül telepített IP-címének kell lennie, amely a következő parancs beírásával található: wsl.exe hostname -I.
Így ez a parancs a következőképpen nézhet ki:
netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100
Az IP-cím beszerzéséhez használja a következőt:
-
wsl hostname -Ia WSL 2-n keresztül telepített Linux-disztribúció IP-címéhez (a WSL 2 virtuális gép címéhez) -
cat /etc/resolv.confa Windows-gép IP-címének megállapításához, ahogyan a WSL 2-ből (a WSL 2 virtuális gépből) látható
A listenaddress=0.0.0.0 minden IPv4-porton hallgat, .
Jegyzet
Ha kis i betűt használ a hostname parancsban, az más eredményhez vezet, mint a nagy I betű használata.
wsl hostname -i a helyi gépe (a 127.0.1.1 helyőrző diagnosztikai cím), míg wsl hostname -I a helyi gép IP-címét adja vissza a többi gépnek megfelelően, és a WSL 2-en keresztül futó Linux-disztribúció connectaddress azonosítására kell használni.
IPv6-hozzáférés
-
wsl hostname -ia WSL 2-n keresztül telepített Linux-disztribúció IP-címéhez (a WSL 2 virtuális gép címéhez) -
ip route show | grep -i default | awk '{ print $3}'a Windows-gép IP-címének megállapításához, ahogyan a WSL 2-ből (a WSL 2 virtuális gépből) látható
A listenaddress=0.0.0.0 minden IPv4-porton hallgat, .
Tükrözött módú hálózatkezelés
Windows 11 22H2 vagy újabb rendszerű gépeken a tükrözött módú hálózatkezelés engedélyezéséhez networkingMode=mirrorednetworkingMode=mirrored.wslconfig állíthatja be a . Ennek engedélyezése a WSL-t egy teljesen új hálózati architektúrára módosítja, amelynek célja, hogy tükrözze a Windowson futó hálózati adaptereket a Linuxba, új hálózati funkciókat adjon hozzá, és javítsa a kompatibilitást.
A mód engedélyezésének jelenlegi előnyei a következők:
- IPv6-támogatás
- Csatlakozzon Windows-kiszolgálókhoz Linuxon belülről a localhost-cím
127.0.0.1használatával. Az IPv6 localhost-cím::1nem támogatott - Továbbfejlesztett hálózati kompatibilitás VPN-ekhez
- Csoportos küldés támogatása
- Csatlakozás a WSL-hez közvetlenül a helyi hálózatról (LAN)
Jegyzet
Futtassa a következő parancsot a PowerShell-ablakban rendszergazdai jogosultságokkal a bejövő kapcsolatok engedélyezéséhez Hyper-V tűzfalbeállítások konfigurálásához :
Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
vagy
New-NetFirewallHyperVRule -Name "MyWebServer" -DisplayName "My Web Server" -Direction Inbound -VMCreatorId '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -Protocol TCP -LocalPorts 80
Ez az új mód a NAT-alapú (Hálózati címfordítás) architektúrával kapcsolatos hálózati problémákat kezeli. A GitHub WSL-termék-adattárában azonosított hibákkal kapcsolatos ismert problémák vagy fájlvisszajelzések keresése.
DNS-bújtatás
A Windows 11 22H2-es vagy újabb rendszert futtató gépeken a dnsTunneling szolgáltatás alapértelmezés szerint be van kapcsolva (amely a [wsl2] fájlban található.wslconfig), és egy virtualizálási funkcióval válaszol a WSL-n belüli DNS-kérelmekre ahelyett, hogy hálózati csomagon keresztül kéri őket. Ennek a funkciónak a célja a VPN-ekkel és más összetett hálózatkezelési beállításokkal való kompatibilitás javítása.
Automatikus proxy
Windows 11 22H2 vagy újabb rendszerű gépeken a autoProxy=true fájl [wsl2] alatti .wslconfig beállítása kényszeríti a WSL-t a Windows HTTP-proxyadatainak használatára. Ha már beállított egy proxyt a Windowsban, a szolgáltatás engedélyezésével a proxy automatikusan be lesz állítva a WSL-ben is.
WSL és tűzfal
A Windows 11 22H2 és újabb rendszerű, WSL 2.0.9-es és újabb rendszerű gépeken a Hyper-V tűzfalfunkció alapértelmezés szerint be lesz kapcsolva. Ez biztosítja, hogy:
- A WSL-re automatikusan alkalmazandó Windows biztonsági funkciókról további információt a Windows Defender tűzfal Speciális biztonsági szolgáltatásaival foglalkozó részben talál ().
- Tekintse meg Hyper-V tűzfal konfigurálása című témakört, amelyből megtudhatja, hogyan alkalmazhatja ezeket a szabályokat és beállításokat helyileg és online eszközökkel, például az Intune-ban.
Windows Subsystem for Linux