Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alábbiakban a WSL-hez kapcsolódó gyakori hibaelhárítási forgatókönyveket ismertettük, de érdemes lehet a GitHub WSL-termék-adattárában szereplő problémákat is megvizsgálni.
Probléma, hibajelentés, funkciókérés elküldése
A WSL termék-adattár feladatai lehetővé teszik a következőket:
Keresse meg a meglévő ügyeket, hogy megnézze, van-e olyan, amely a problémájával kapcsolatos.
Vegye figyelembe, hogy a keresősávban eltávolíthatja a "" szótstate:open, hogy a keresésben már megoldott problémákat is tartalmazzon.
Kérjük, fontolja meg a kommentelést, vagy nyomjon egy lájkot bármely nyitott kérdésnél, amelynél szeretné kifejezni, hogy támogatja annak prioritássá válását.
Nyújtson be egy új hibajegyet. Ha problémát talált a WSL-vel kapcsolatban, és úgy tűnik, hogy nincs meglévő probléma, válassza a zöld "New issue" gombot, majd válassza a "WSL - Bug Report" gombot.
A következő információkat kell megadnia:
- Probléma címe
- Windows-verzió: Futtassa
cmd.exe /c vera windowsos build beszerzéséhez. - WSL-verzió: Ha a Microsoft Store-ból linuxos Windows alrendszert futtat, futtassa a következőt
wsl.exe -v: . - WSL 1-et vagy WSL 2-t használ: Mondja el, hogy a probléma a WSL 2 és/vagy a WSL 1 rendszeren van-e. A parancs futtatásával
wsl.exe -l -vállapítható meg. - Kernelverzió: Kérjük, mondja el nekünk, hogy milyen linuxos kernelt használ, vagy ha egyéni kernelt használ. Futtathatja
wsl.exe --status, ha a parancs elérhető Az Ön számára, vagy futcat /proc/versiona disztribúcióban. - Disztribúció verziója: Kérjük, mondja el, hogy milyen disztribúciót használ (ha van). Ha lehetséges, további információt kaphat a verzióról, például Debian/Ubuntu rendszeren
run lsb_release -r. - Egyéb szoftverek: Ha a WSL más alkalmazásokkal való interakcióját érintő hibát jelez, kérjük, jelezze nekünk. Milyen alkalmazások? Milyen verziókban?
- Ismétlési lépések: Adja meg a hiba reprodukálásához szükséges lépéseket.
- Várt viselkedés: Mit várt, hogy lássa? Adjon meg minden releváns példát vagy dokumentációs hivatkozást.
- Tényleges viselkedés: Mi történt helyette?
- Diagnosztikai naplók: Szükség esetén adjon meg további diagnosztikát. A Visszajelzési központ naplóinak, a hálózati naplóknak és egyebeknek a gyűjtésével kapcsolatos információkért tekintse meg az útmutatót.
További információkért tekintse meg a című hozzájárulást a WSL-hez.
Küldjön egy funkciókérést a zöld "New issue" gombra kattintva, majd válassza a "Feature request" lehetőséget.
Néhány, a kérést leíró kérdést kell megválaszolnia.
A következőket is megteheti:
- Dokumentációs probléma jelentése a WSL docs adattár használatával. A WSL-dokumentumokhoz való hozzájárulásról a Microsoft Docs közreműködői útmutatójában.
- Windows Terminál problémájának bejelentése a Windows Terminál termék adattára használatával, ha a probléma inkább a Windows Terminálhoz, a Windows Konzolhoz vagy a parancssori felhasználói felülethez kapcsolódik.
Telepítési problémák
telepítés 0x80070003 hiba miatt meghiúsult
- A Linux windowsos alrendszere csak a rendszermeghajtón fut (általában ez a
C:meghajtója). Győződjön meg arról, hogy a disztribúciók a rendszermeghajtón vannak tárolva: - Windows 10-en nyissa meg a Beállítások –>Rendszer –>Tárolás –>További tárolási beállítások: Az új tartalom mentésének helyének módosítása

- Windows 11-en nyissa meg a Beállítások –>Rendszer –>Tárolási –>Speciális tárolási beállítások –>Az új tartalom mentésének helye

- A Linux windowsos alrendszere csak a rendszermeghajtón fut (általában ez a
A WslRegisterDistribution sikertelen volt a következő hibával: 0x8007019e
- A Linuxhoz készült Windows-alrendszer választható összetevője nincs engedélyezve:
- Vezérlőpult megnyitása –>Programok és szolgáltatások –>A Windows-funkció be- és kikapcsolása –> A Windows alrendszer ellenőrzése Linux rendszeren, vagy az 1. lépésben említett PowerShell-parancsmag használata.
A telepítés sikertelen volt hibával 0x80070003 vagy hiba 0x80370102
- Győződjön meg arról, hogy a virtualizálás engedélyezve van a számítógép BIOS-jában. Ennek módjára vonatkozó utasítások számítógépről számítógépre változnak, és valószínűleg a processzorhoz kapcsolódó beállítások között lesznek.
- A WSL2 megköveteli, hogy a PROCESSZOR támogatja a második szintű címfordítási (SLAT) funkciót, amely az Intel Nehalem processzorokban (Intel Core 1st Generation) és az AMD Opteronban lett bevezetve. A régebbi processzorok (például az Intel Core 2 Duo) nem fogják tudni futtatni a WSL2-t, még akkor sem, ha a virtuálisgép-platform telepítése sikeresen megtörtént.
Hiba történt a frissítéskor, érvénytelen parancssori beállítás:
wsl --set-version Ubuntu 2Győződjön meg arról, hogy a Linuxhoz készült Windows alrendszer engedélyezve van, és hogy a Windows Build 18362-es vagy újabb verzióját használja. A WSL engedélyezéséhez futtassa ezt a parancsot egy PowerShell-parancssorban rendszergazdai jogosultságokkal:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
A kért műveletet nem sikerült végrehajtani a virtuális lemezrendszer korlátozása miatt. A virtuális merevlemez fájljainak tömörítetlennek és titkosítatlannak kell lenniük, és nem szabad ritkáknak lenniük.
- A Linux-disztribúció profilmappájának megnyitásával törölje a "Tartalom tömörítése" (valamint a "Tartalom titkosítása" jelölőnégyzet jelölését. A windowsos fájlrendszer egyik mappájában kell lennie, például:
%LocalAppData%\Packages\CanonicalGroupLimited... - Ebben a Linux-disztribúciós profilban egy LocalState mappának kell lennie. Kattintson a jobb gombbal erre a mappára a beállítások menüjének megjelenítéséhez. Válassza a Speciális tulajdonságok> lehetőséget, és győződjön meg arról, hogy a "Tartalom tömörítése a lemezterület mentéséhez" és a "Tartalom titkosítása az adatok védelméhez" jelölőnégyzet nincs bejelölve (nincs bejelölve). Ha a rendszer arra kéri, hogy ezt csak az aktuális mappára vagy az összes almappára és fájlra alkalmazza, válassza az "csak ez a mappa" lehetőséget, mert csak a tömörítési jelölőt törli. Ezután a
wsl --set-versionparancsnak működnie kell.
Jegyzet
Az én esetemben az Ubuntu 18.04-disztribúció LocalState mappája a következő helyen található:
C:\Users\<my-user-name>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgscEllenőrizze WSL Docs GitHub-szál #4103, ahol a probléma nyomon követése folyamatban van a frissített információkért.
- A Linux-disztribúció profilmappájának megnyitásával törölje a "Tartalom tömörítése" (valamint a "Tartalom titkosítása" jelölőnégyzet jelölését. A windowsos fájlrendszer egyik mappájában kell lennie, például:
A "wsl" kifejezés nem ismerhető fel parancsmag, függvény, szkriptfájl vagy operatív program neveként.
- Győződjön meg arról, hogy a Windows-alrendszer linuxos opcionális összetevő telepítve van. Emellett, ha ARM64-eszközt használ, és ezt a parancsot a PowerShellből futtatja, ez a hibaüzenet jelenik meg. Ehelyett futtassa
wsl.exea PowerShell Core-ból, vagy a parancssorból.
- Győződjön meg arról, hogy a Windows-alrendszer linuxos opcionális összetevő telepítve van. Emellett, ha ARM64-eszközt használ, és ezt a parancsot a PowerShellből futtatja, ez a hibaüzenet jelenik meg. Ehelyett futtassa
hiba: A Linux windowsos alrendszere nem rendelkezik telepített disztribúciókkal.
- Ha ezt a hibát a WSL-disztribúciók telepítése után kapja:
- Futtassa a disztribúciót legalább egyszer, mielőtt a parancssorból használná.
- Ellenőrizze, hogy különálló felhasználói fiókokat futtat-e. Az elsődleges felhasználói fiók rendszergazdai jogosultságokkal történő futtatása nem eredményezheti ezt a hibát, de győződjön meg arról, hogy nem véletlenül futtatja a Windowshoz tartozó beépített rendszergazdai fiókot. Ez egy külön felhasználói fiók, és nem jelenít meg beépített WSL-disztribúciókat. További információ: Beépített rendszergazdai fiók engedélyezése és letiltása.
- A WSL-végrehajtható fájl csak a natív rendszerkönyvtárba van telepítve. Ha 32 bites folyamatot futtat 64 bites Windows rendszeren (vagy ARM64-en, bármilyen nem natív kombináción), a üzemeltetett nem natív folyamat valójában egy másik System32-mappát lát. (Az x64 Windowson 32 bites folyamat az %SystemRoot%\SysWOW64 lemezen van tárolva.) A "natív" system32 egy üzemeltetett folyamatból a következő virtuális mappában érhető el:
\Windows\sysnative. Valójában nem lesz jelen a lemezen, de vegye figyelembe, hogy a fájlrendszer útvonalmeghatározója megtalálja.
hiba: Ez a frissítés csak a Linuxhoz készült Windows alrendszerrel rendelkező gépekre vonatkozik.
- A Linux kernelfrissítési MSI-csomag telepítéséhez WSL szükséges, és először engedélyezni kell. Ha nem sikerül, a következő üzenet jelenik meg: Ez a frissítés csak a Linuxhoz készült Windows alrendszerrel rendelkező gépekre vonatkozik.
- Ennek az üzenetnek három lehetséges oka lehet:
Továbbra is a Windows régi verziójában van, amely nem támogatja a WSL 2-t. Lásd : 2. lépés – A WSL 2 futtatására vonatkozó követelmények ellenőrzése.
A WSL nincs engedélyezve. Vissza kell térnie az 1. lépéshez , és meg kell győződnie arról, hogy az opcionális WSL-funkció engedélyezve van a gépen.
A WSL engedélyezése után újraindításra van szükség ahhoz, hogy érvénybe lépjen, indítsa újra a gépet, és próbálkozzon újra.
Hiba: A WSL 2-nek frissítenie kell a kernel összetevőjét. További információért látogasson el a 4. lépésre
- Ha a Linux kernelcsomag hiányzik a
%SystemRoot%\system32\lxss\toolsmappából, ez a hiba jelenik meg. A probléma megoldásához telepítse a Linux kernelfrissítési MSI-csomagot a telepítési utasítások 4. lépésében . Előfordulhat, hogy el kell távolítania az MSI-t a "Programok hozzáadása vagy eltávolítása" lehetőségből, és újra telepítenie kell.
- Ha a Linux kernelcsomag hiányzik a
Gyakori problémák
Windows 10 1903-on vagyok, és még mindig nem látom a WSL 2 beállításait
Ennek valószínűleg az az oka, hogy a gép még nem vette át a WSL 2 háttérportját. Ennek legegyszerűbb megoldásához nyissa meg a Windows beállításait , és kattintson a "Frissítések keresése" gombra a legújabb frissítések telepítéséhez a rendszeren. Tekintse meg a backportátvételére vonatkozó teljes utasításokat.
Ha a "Frissítések keresése" gombra érkezik, és továbbra sem kapja meg a frissítést, manuálisan telepítheti a KB KB4566116.
Hiba: 0x1bc wsl --set-default-version 2
Ez akkor fordulhat elő, ha a "Megjelenítési nyelv" vagy a "Rendszer területi beállítása" beállítás nem angol.
PS C:\> wsl.exe --set-default-version 2
Error: 0x1bc
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
A tényleges hiba 0x1bc a következő: A WSL 2 megköveteli a kernelösszetevő frissítését. További információért látogasson el https://aka.ms/wsl2kernel
További információ: #5749
A WSL-fájlok nem érhetők el a Windowsból
A 9p protokollfájl-kiszolgáló linuxos oldalon biztosítja a szolgáltatást, hogy a Windows hozzáférhessen a Linux fájlrendszerhez. Ha windowsos \\wsl$ használatával nem tudja elérni a WSL-t, annak az lehet az oka, hogy a 9P nem indult el megfelelően.
Ennek ellenőrzéséhez ellenőrizheti az indítási naplókat a következővel: dmesg | grep 9p, és ez megjeleníti az esetleges hibákat. A sikeres kimenet a következőhöz hasonlóan néz ki:
[ 0.363323] 9p: Installing v9fs 9p2000 file system support
[ 0.363336] FS-Cache: Netfs '9p' registered for caching
[ 0.398989] 9pnet: Installing 9P2000 support
A probléma további megvitatásához tekintse meg az 5307 .
A WSL 2-eloszlás nem indítható el, és csak a "WSL 2" jelenik meg a kimenetben
Ha a megjelenítési nyelv nem angol, akkor lehetséges, hogy egy hibaszöveg csonkolt verzióját látja.
PS C:\> wsl.exe
WSL 2
A probléma megoldásához tekintse meg a 4. lépést , és telepítse manuálisan a kernelt a dokumentumoldal útmutatásainak követésével.
command not found a Windows .exe linuxos futtatásakor
A felhasználók közvetlenül Linuxról futtathatnak windowsos végrehajtható fájlokat, például notepad.exe. Előfordulhat, hogy az alábbihoz hasonló "parancs nem található" szöveget talál:
$ notepad.exe
-bash: notepad.exe: command not found
Ha nincsenek Win32-útvonalak a $PATH, az interop nem fogja megtalálni a .exe.
Ezt a echo $PATH Linuxon való futtatásával ellenőrizheti. A kimenetben egy Win32-elérési út (például /mnt/c/Windows) várható.
Ha nem lát Windows útvonalakat, akkor valószínűleg a Linux shell felülírja a PATH-ot.
Íme egy példa, amely /etc/profile a Debianon hozzájárult a problémához:
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
A Debian helyes módja a fenti sorok eltávolítása. A hozzárendelés során $PATH is hozzáfűzhet az alábbiak szerint, de ez a WSL-vel és a VSCode-tal egyéb problémákhoz vezet.
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:$PATH"
fi
További információ: #5296 és 5779.
"Hiba: 0x80370102 A virtuális gépet nem lehetett elindítani, mert nincs telepítve egy szükséges funkció."
Engedélyezze a Virtual Machine Platform Windows-funkcióját, és győződjön meg arról, hogy a virtualizálás engedélyezve van a BIOS-ban.
Ellenőrizze a Hyper-V rendszerkövetelmények
Ha a gép virtuális gép, engedélyezze beágyazott virtualizálást manuálisan. Indítsa el a PowerShellt a rendszergazdával, és futtassa a következő parancsot, és cserélje le a
<VMName>a gazdarendszeren lévő virtuális gép nevére (a nevet a Hyper-V Managerben találja):Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $trueKövesse a számítógép gyártójának irányelveit a virtualizálás engedélyezéséhez. Ez általában magában foglalhatja a rendszer BIOS-jának használatát annak biztosítására, hogy ezek a funkciók engedélyezve legyenek a PROCESSZORon. A folyamat utasításai gépről gépre változhatnak, lásd: Virtualizálás engedélyezése Windows rendszeren.
Indítsa újra a gépet a virtuálisgép-platformopcionális összetevőjének engedélyezése után.
Győződjön meg arról, hogy a hipervizor indítása engedélyezve van a rendszerindítási konfigurációban. Ezt az emelt szintű PowerShell futtatásával ellenőrizheti:
bcdedit /enum | findstr -i hypervisorlaunchtypeHa
hypervisorlaunchtype Offjelenik meg, akkor a hipervizor le van tiltva. A futtatás engedélyezése emelt szintű PowerShell-lel:bcdedit /set hypervisorlaunchtype AutoHa külső hipervizorok is telepítve vannak (például VMware vagy VirtualBox), akkor győződjön meg arról, hogy a legújabb verziók támogatják a HyperV-t (VMware 15.5.5+ és VirtualBox 6+) vagy ki vannak kapcsolva.
Ha ezt a hibát egy Azure-beli virtuális gépen kapja, ellenőrizze, hogy megbízható indítási le van-e tiltva. Beágyazott virtualizálás nem támogatott a megbízható indításirendelkező Azure-beli virtuális gépeken.
Tudjon meg többet arról, hogyan lehet beágyazott virtualizációt konfigurálni, amikor Hyper-V virtuális gépen futtatjuk.
A WSL-nek nincs hálózati kapcsolata a munkahelyi gépemen vagy vállalati környezetben
Előfordulhat, hogy az üzleti vagy vállalati környezetekben Windows Defender tűzfalbeállítások vannak konfigurálva a jogosulatlan hálózati forgalom blokkolásához. Ha egyesítő helyi szabály "Nem" értékre van állítva, akkor a WSL-hálózatkezelés alapértelmezés szerint nem működik, és a rendszergazdának hozzá kell adnia egy tűzfalszabályt az engedélyezéshez.
A helyi szabályok egyesítésének beállítását az alábbi lépések végrehajtásával ellenőrizheti:
- Nyissa meg a "Windows Defender tűzfal fejlett biztonsággal" (ez nem ugyanaz, mint a Vezérlőpult 'Windows Defender tűzfal' opciója)
- Kattintson a jobb gombbal a "Windows Defender tűzfal fokozott biztonságú helyi számítógépen" fülre
- Válassza a "Tulajdonságok" lehetőséget
- Válassza a "Nyilvános profil" lapot a megnyíló új ablakban
- Válassza a "Testreszabás" lehetőséget a "Beállítások" szakaszban
- A megnyíló "A nyilvános profil beállításainak testreszabása" ablakban ellenőrizze, hogy a "Szabályegyesítés" beállítás "Nem" értékű-e. Ez letiltja a WSL-hez való hozzáférést.
A tűzfalbeállítás módosítására vonatkozó utasításokat Hyper-V tűzfal konfigurálásacímű témakörben találja.
A WSL nem rendelkezik hálózati kapcsolattal az IPv6 letiltásakor
Ha az IPv6 le van tiltva a beállításjegyzék-érték HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters (REG_DWORD) DisabledComponentshasználatával, a WSL hálózati kapcsolat meghiúsulhat.
Tekintse meg az IPv6 windowsos konfigurálásához szükséges útmutatót a speciális felhasználók számára.
Ha az IPv6-ot le kell tiltani a gazdarendszeren, javasoljuk, hogy az IPv6 protokollkötések közvetlen eltávolításával használja a PowerShellt. Például: Disable-NetAdapterBinding -Name "<MyAdapter>" -ComponentID ms_tcpip[6].
A WSL nem rendelkezik hálózati kapcsolattal, ha vpn-hez csatlakozik
Ha windowsos VPN-hez való csatlakozás után a bash elveszíti a hálózati kapcsolatot, próbálja ki ezt a megkerülő megoldást a bashen belülről. Ez a kerülő megoldás lehetővé teszi, hogy manuálisan felülbírálja a DNS-feloldást a(z) /etc/resolv.confsegítségével.
Jegyezze fel a VPN DNS-kiszolgálóját a következő műveletből:
ipconfig.exe /allKészítsen másolatot a meglévőről
resolv.conf:sudo cp /etc/resolv.conf /etc/resolv.conf.bakAz aktuális
resolv.confkapcsolat leválasztása:sudo unlink /etc/resolv.confIndítás:
sudo mv /etc/resolv.conf.bak /etc/resolv.confSzerkeszd
/etc/wsl.conf, és add hozzá ezt a tartalmat a fájlhoz. (Erről a beállításról további információt Speciális beállítások konfigurációja)[network] generateResolvConf=falseMegnyitás
/etc/resolv.confés- Törölje az első sort a fájlból, amely az automatikus létrehozást leíró megjegyzéssel rendelkezik.
- Adja hozzá a fenti (1) DNS-bejegyzést a DNS-kiszolgálók listájának első bejegyzéseként.
- Zárja be a fájlt.
Miután leválasztotta a VPN-t, vissza kell állítania a módosításokat /etc/resolv.conf. Ehhez tegye a következőt:
sudo mv /etc/resolv.conf /etc/resolv.conf.bak
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
Globális biztonságos hozzáférési ügyfél WSL-vel kapcsolatos problémái
A Globális Biztonságos Hozzáférési Ügyfél (/entra/global-secure-access/how-to-install-windows-client) befolyásolhatja a WSL-kapcsolatot, mivel egy név feloldása során egy funkciója révén ideiglenes címet adhat vissza. Ezután a rendszer felcseréli a címet a tényleges címre hálózati kapcsolat létrehozásakor. Ez megszakíthatja a WSL-t, mivel a WSL-forgalom a GSA kliens horgok nagy része alatt lesz továbbítva.
Javasoljuk a DNS-alagút letiltását (dnsTunneling=false) vagy a tükrözött mód kikapcsolását (networkingMode=nat).
Cisco Anyconnect VPN-problémák a WSL-lel NAT módban
A Cisco AnyConnect VPN úgy módosítja az útvonalakat, hogy megakadályozza a NAT működését. A WSL 2-hez kapcsolódó megkerülő megoldás: Lásd: Cisco AnyConnect biztonságos mobilitási ügyfél-rendszergazdai útmutató, 4.10-es kiadás – Az AnyConnecthibaelhárítása.
WSL-kapcsolati problémák VPN-ekkel, ha a tükrözött hálózati mód be van kapcsolva
A tükrözött hálózati mód jelenleg egy kísérleti beállítás a WSL konfigurációban. A WSL hagyományos NAT hálózati architektúrája frissíthető egy teljesen új, "Tükrözött hálózati mód" nevű hálózatkezelési módra. Ha a kísérleti networkingModemirroredértékre van állítva, a Windowsos hálózati interfészek Linuxra át vannak tükrözve a kompatibilitás javítása érdekében. Tudjon meg többet a parancssori blogban: WSL 2023. szeptemberi frissítés.
Néhány VPN-t teszteltek, és megállapították, hogy nem kompatibilisek a WSL-vel, beleértve a következőket:
- "Bitdefender" 26.0.2.1-es verzió
- "OpenVPN" 2.6.501-es verzió
- "Mcafee Safe Connect" 2.16.1.124-es verzió
Az autoProxy használatával kapcsolatos szempontok a HttpProxy tükrözési funkcióhoz a WSL-ben
A HTTP/S proxytükrözés a WSL-konfigurációs fájl autoProxykísérleti szakaszában található beállítással konfigurálható. A beállítás alkalmazásakor vegye figyelembe az alábbi szempontokat:
-
PAC-proxy: A WSL a környezeti változó beállításával konfigurálja a
WSL_PAC_URLbeállítást Linuxon. A Linux alapértelmezés szerint nem támogatja a PAC-proxykat. - WSLENV-: A felhasználó által definiált környezeti változók elsőbbséget élveznek az ezzel a funkcióval meghatározottakkal szemben.
Ha engedélyezve van, a következők vonatkoznak a Linux-disztribúciók proxybeállításaira:
- A Linux környezeti változó (
HTTP_PROXY) a Windows HTTP-proxy konfigurációjában található egy vagy több HTTP-proxyra van beállítva. - A Linux környezeti változó
HTTPS_PROXYa Windows HTTPS-proxykonfigurációban telepített egy vagy több HTTPS-proxyra van állítva. - A Linux környezeti változó (
NO_PROXY) úgy van beállítva, hogy megkerülje a Windows konfigurációs célokban található HTTP/S proxykat. - A
WSL_PAC_URLkivételével minden környezeti változó kis- és nagybetűre van beállítva. Például:HTTP_PROXYéshttp_proxy.
A ZScaler-konfigurációk által okozott ismert probléma következtében a ZScaler ismételten engedélyezi és letiltja a Windows proxy konfigurációkat, ennek eredményeként a WSL ismételten megjeleníti a "HTTP proxy változás érzékelve lett a gazdagépen" értesítést.
Tudjon meg többet a parancssori blogban: WSL 2023. szeptemberi frissítés.
Hálózatkezelési szempontok DNS-bújtatással
Ha a WSL nem tud csatlakozni az internethez, annak az lehet az oka, hogy a Windows-gazdagépre irányuló DNS-hívás le van tiltva. Ennek az az oka, hogy a WSL virtuális gép által a Windows-gazdagépnek küldött DNS hálózati csomagját a meglévő hálózati konfiguráció blokkolja. A DNS-bújtatás ezt úgy oldja meg, hogy egy virtualizálási funkcióval közvetlenül kommunikál a Windowssal, lehetővé téve a DNS-név feloldását hálózati csomag elküldése nélkül. Ennek a funkciónak javítania kell a hálózati kompatibilitást, és jobb internetkapcsolatot kell biztosítania akkor is, ha VPN-t, adott tűzfalbeállítást vagy egyéb hálózati konfigurációt használ.
A DNS-bújtatás a WSL-konfigurációs fájl dnsTunneling beállításával konfigurálható. A beállítás alkalmazásakor vegye figyelembe az alábbi szempontokat:
- Ha VPN-t használ WSL-vel, kapcsolja be a DNS-bújtatást. Sok VPN NRPT-szabályzatokat használ, amelyek csak a WSL DNS-lekérdezésekre vonatkoznak, ha engedélyezve van a DNS-bújtatás.
- A Linux-disztribúció
/etc/resolv.conffájljának maximális korlátja 3 DNS-kiszolgáló, míg a Windows több mint 3 DNS-kiszolgálót használhat. A DNS-bújtatás használata megszünteti ezt a korlátozást – mostantól az összes Windows DNS-kiszolgálót használhatja a Linux. - A WSL a Következő sorrendben fogja használni a Windows DNS-utótagokat (hasonlóan a Windows DNS-ügyfél által használt sorrendhez):
- Globális DNS-utótagok
- Kiegészítő DNS-utótagok
- Interfészenkénti DNS-utótagok
- Ha a DNS-titkosítás (DoH, DoT) engedélyezve van Windows rendszeren, a rendszer a WSL-ből származó DNS-lekérdezésekre alkalmazza a titkosítást. Ha a felhasználók engedélyezni szeretnék a DoH-t, a DoT-t Linuxon belül, le kell tiltaniuk a DNS-bújtatást.
- A Docker Desktop által felügyelt Docker-tárolók dns-lekérdezései megkerülik a DNS-bújtatást. A Docker Desktop saját (a DNS-bújtatástól eltérő) módon alkalmazza a gazdagép DNS-beállításait és szabályzatait a Docker-tárolókból származó DNS-lekérdezésekre.
- A DNS-bújtatás sikeres engedélyezéséhez a wsl.conf fájl generateResolvConf beállítását nem szabad letiltani.
- Ha engedélyezve van a DNS-bújtatás, a
generateHostswsl.conf fájlban lévő beállítás figyelmen kívül lesz hagyva (a Windows DNS-gazdagépek fájlja nem lesz másolva a Linux /etc/hosts fájlban). A Windows-gazdagépfájl házirendjei a Linuxról származó DNS-lekérdezésekre lesznek alkalmazva anélkül, hogy a fájlt Linuxon kellene másolni.
Tudjon meg többet a parancssori blogban: WSL 2023. szeptemberi frissítés.
A Windows-gazdagép által a WSL virtuális gépre fogadott bejövő forgalom irányításával kapcsolatos problémák
Tükrözött hálózati mód (a kísérleti networkingModemirrored) használatakor a Windows-gazdagép által fogadott bejövő forgalom egy része soha nem lesz irányítva a Linux rendszerű virtuális gépre. Ez a forgalom a következő:
- UDP-port 68 (DHCP)
- 135-ös TCP-port (DCE-végpontfeloldás)
- 1900-as TCP-port (UPnP)
- 2869-ös TCP-port (SSDP)
- 5004-ös TCP-port (RTP)
- 3702-es TCP-port (WSD)
- 5357-es TCP-port (WSD)
- 5358-es TCP-port (WSD)
A WSL automatikusan konfigurál bizonyos Linux-hálózati beállításokat tükrözött hálózati mód használatakor. A tükrözött hálózati mód használata esetén a beállítások felhasználói konfigurációi nem támogatottak. Itt található a WSL által konfigurálni kívánt beállítások listája:
| Beállítás neve | Érték |
|---|---|
https://sysctl-explorer.net/net/ipv4/accept_local/ |
Engedélyezve (1) |
https://sysctl-explorer.net/net/ipv4/route_localnet/ |
Engedélyezve (1) |
https://sysctl-explorer.net/net/ipv4/rp_filter/ |
Letiltva (0) |
https://sysctl-explorer.net/net/ipv6/accept_ra/ |
Letiltva (0) |
https://sysctl-explorer.net/net/ipv6/autoconf/ |
Letiltva (0) |
https://sysctl-explorer.net/net/ipv6/use_tempaddr/ |
Letiltva (0) |
| cím_generáló_mód | Letiltva (0) |
| IPv6 letiltása | Letiltva (0) |
https://sysctl-explorer.net/net/ipv4/arp_filter/ |
Engedélyezve (1) |
Docker-tárolóval kapcsolatos problémák a WSL2-ben, ha a tükrözött hálózati mód engedélyezve van az alapértelmezett hálózati névtérben való futtatáskor
Van egy ismert probléma, amely miatt a közzétett portokkal (docker run –publish/–p) rendelkező Docker Desktop-tárolókat nem lehet létrehozni. A WSL csapata a Docker Desktop csapatával együttműködve kezeli a problémát. A probléma megoldásához használja a gazdagép hálózati névterét a Docker-tárolóban. Állítsa be a hálózati típust a --network host parancsban docker run használt beállítással. Egy másik kerülő megoldás, a közzétett portszám listázása a ignoredPortskísérleti szakaszának beállításában.
Docker-tárolóval kapcsolatos problémák a Network Manager futtatásakor
Ismert probléma van a Docker-tárolókkal kapcsolatban, amelyekben fut a Network Manager szolgáltatás. A tünetek közé tartoznak a hibák, amelyek akkor jelentkeznek, amikor megpróbálnak visszacsatolási kapcsolatokat létesíteni a gazdagéppel. Javasoljuk, hogy állítsa le a Network Manager szolgáltatást a WSL-hálózat megfelelő konfigurálásához.
sudo systemctl disable network-manager.service
.local names feloldása a WSL-ben
A .local neveket gyakran használják gazdagépnevek helyi hálózaton belüli IP-címekre való feloldásához anélkül, hogy hagyományos DNS-kiszolgálóra lenne szükség. Ez az mDNS (Csoportos küldésű DNS) protokollon keresztül érhető el, amely a csoportos küldésű forgalom működésére támaszkodik.
networkingModebeállítás:NAT
Ez a funkció jelenleg nem támogatott, ha engedélyezve van a DNS-bújtatás. A .local nevek feloldásának engedélyezéséhez a következő megoldásokat javasoljuk:
- Tiltsa le a DNS-bújtatást.
- Tükrözött hálózati módot használjon.
networkingModebeállítás:Mirrored
Megjegyzés: Az alábbi funkciók használatához a WSL 2.3.17-es vagy újabb buildjén kell lennie.
Mivel a tükrözött mód támogatja a csoportos küldésű forgalmat, az mDNS (Csoportos küldésű DNS) protokoll használható a .local nevek feloldásához. A Linuxot úgy kell konfigurálni, hogy támogassa az mDNS-t, mivel alapértelmezés szerint nem teszi meg. A konfigurálás egyik módja az alábbi két lépés:
Telepítse a(z)
libnss-mdnscsomagotsudo apt-get install libnss-mdns*A
libnss-mdnscsomag a GNU C-kódtár (glibc) GNU Névszolgáltatás-kapcsoló (NSS) funkciójának beépülő modulja, amely gazdagépnév-feloldást biztosít csoportos küldésű DNS-en (mDNS) keresztül. Ez a csomag hatékonyan lehetővé teszi, hogy az általános Unix/Linux programok feloldják a neveket az ad-hoc mDNS tartományban a .local alatt.Konfigurálja a
/etc/nsswitch.conffájlt a szakasz beállításánakmdns_minimalhostsengedélyezéséhez. Példa a fájl tartalmára:/>cat /etc/nsswitch.conf # /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc-reference' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: compat systemd group: compat systemd shadow: compat gshadow: files hosts: files mdns_minimal [NOTFOUND=return] dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis
DNS-utótagok a WSL-ben
A .wslconfig fájl konfigurációitól függően a WSL a DNS-utótagokkal kapcsolatosan a következő viselkedést fogja tanúsítani:
Mikor networkingMode van beállítva:NAT
1. eset: Alapértelmezés szerint nincs dns-utótag konfigurálva Linuxon
2. eset: Ha a DNS-bújtatás engedélyezve van (dnsTunneling a .wslconfig értékre van állítva true ) A Windows ÖSSZES DNS-utótagja Linuxon van konfigurálva, a search /etc/resolv.conf beállításban
Az utótagok a következő sorrendben vannak konfigurálva a /etc/resolv.conf fájlban, hasonlóan ahhoz a sorrendhez, amelyben a Windows DNS-ügyfél utótagokat próbál meg feloldani egy név feloldásakor: először a globális DNS-utótagokat, majd a kiegészítő DNS-utótagokat, majd az interfészenkénti DNS-utótagokat.
Ha a Windows DNS-utótagok módosulnak, ez a változás automatikusan megjelenik a Linuxban
3. eset: Ha a DNS-bújtatás le van tiltva, és a SharedAccess DNS-proxy le van tiltva (dnsTunneling és dnsProxy a .wslconfig értékre false van állítva). Linuxon egyetlen DNS-utótag van konfigurálva a /etc/resolv.conf tartománybeállításában
Ha a Windows DNS-utótagok módosulnak, ez a változás nem jelenik meg a Linuxban
A Linuxban konfigurált egyetlen DNS-utótagot a rendszer az interfészenkénti DNS-utótagok közül választja ki (a globális és a kiegészítő utótagok figyelmen kívül lesznek hagyva)
ha a Windows több adapterrel rendelkezik, a rendszer heurisztikus módon választja ki a Linuxban konfigurálni kívánt egyetlen DNS-utótagot. Ha például VPN-adapter van a Windowsban, az utótagot az adott felületről választja ki. Ha nincs VPN-felület, az utótagot abból a felületből választják ki, amely valószínűleg internetkapcsolatot biztosít.
Mikor networkingMode van beállítva:Mirrored
Az összes Windows DNS-utótag Linuxon van konfigurálva a search /etc/resolv.conf beállításban
Az utótagok az /etc/resolv.conf fájlban vannak konfigurálva a 2. esethez hasonló sorrendben NAT módban
Ha a Windows DNS-utótagok módosulnak, ez a változás automatikusan megjelenik a Linuxban
Jegyzet
A kiegészítő DNS-utótagok konfigurálhatók Windows rendszerben.
SetInterfaceDnsSettings függvény (netioapi.h) a paraméterben DNS_SETTING_SUPPLEMENTAL_SEARCH_LIST beállított jelölővelSettings.
DNS hibaelhárítása a WSL-ben
Az alapértelmezett DNS-konfiguráció, amikor a WSL NAT módban indít el egy tárolót, az az, hogy a WINDOWS-gazdagépen a NAT-eszköz szolgál a WSL-tároló DNS-kiszolgálójaként. Amikor a DNS-lekérdezések a WSL-tárolóból a Windows-gazdagépen lévő NAT-eszközre irányulnak, a NAT-eszközről a DNS-csomagokat továbbítják a gazdagép megosztott hozzáféréssel rendelkező szolgáltatására; a válaszokat visszaküldik ugyanazon az útvonalon a WSL-tárolóhoz. A megosztott hozzáférésre irányuló csomagtovábbítási folyamathoz tűzfalszabály szükséges, amely engedélyezi a bejövő DNS-csomagot, amelyet a HNS szolgáltatás hoz létre, amikor a WSL először felkéri a HNS-t, hogy hozza létre a NAT virtuális hálózatot a WSL-tárolójához.
Ennek a NAT-alapú megosztott hozzáférési kialakításnak köszönhetően van néhány ismert konfiguráció, amelyek megszakíthatják a névfeloldást a WSL alatt.
A nagyvállalatok leküldhetnek olyan szabályzatokat, amelyek nem engedélyezik a helyileg meghatározott tűzfalszabályokat, csak a nagyvállalati szabályzattal definiált szabályokat engedélyezik.
Ha ezt egy vállalat állítja be, a rendszer figyelmen kívül hagyja a HNS által létrehozott tűzfalszabályt, mivel ez egy helyileg meghatározott szabály.
Ahhoz, hogy ez a konfiguráció működjön, a vállalatnak létre kell hoznia egy tűzfalszabályt, amely engedélyezi az UDP 53-at a megosztott hozzáférési szolgáltatásnak, vagy a WSL-nek a DNS-bújtatás használatára kell beállítania.
Az alábbiak futtatásával megállapíthatja, hogy ez úgy van-e konfigurálva, hogy ne engedélyezze a helyileg meghatározott tűzfalszabályokat. Vegye figyelembe, hogy ez mind a 3 profil beállításait jeleníti meg: Tartomány, Privát és Nyilvános. Ha bármilyen profilon van beállítva, akkor a csomagok le lesznek tiltva, ha a WSL virtuális hálózati adapter hozzá van rendelve ehhez a profilhoz (alapértelmezés szerint
Public). Ez csak a PowerShellben visszaadott első tűzfalprofil kódrészlete:PS C:\> Get-NetFirewallProfile -PolicyStore ActiveStore Name : Domain Enabled : True DefaultInboundAction : Block DefaultOutboundAction : Allow AllowInboundRules : True AllowLocalFirewallRules : False ...AllowLocalFirewallRules: Falseazt jelenti, hogy a helyileg definiált tűzfalszabályok, például a HNS által, nem lesznek alkalmazva vagy használva.Az Enterprise pedig leküldheti az összes bejövő szabályt letiltó csoportházirend- és MDM-házirend-beállításokat.
Ezek a beállítások felülbírálják a Allow-Inbound tűzfalszabályokat. Ez a beállítás így letiltja a HNS által létrehozott UDP tűzfalszabályt, így megakadályozza, hogy a WSL feloldsa a neveket.
Ahhoz, hogy ez a konfiguráció működjön, WSL-t a DNS-bújtatás használatára kell beállítani. Ez a beállítás mindig letiltja a NAT DNS-proxyt.
A csoportházirendből:
Számítógép konfigurációja \ Felügyeleti sablonok \ Hálózat \ Hálózati kapcsolatok \ Windows Defender tűzfal \ Tartományprofil | Standard profil
"Windows Defender tűzfal: Ne engedélyezze a kivételeket" – Engedélyezve
MDM-szabályzatból:
./Vendor/MSFT/Firewall/MdmStore/PrivateProfile/Shielded
./Vendor/MSFT/Firewall/MdmStore/DomainProfile/Shielded
./Vendor/MSFT/Firewall/MdmStore/PublicProfile/Shielded
Az alábbiak futtatásával ellenőrizheti, hogy ez úgy van-e konfigurálva, hogy ne engedélyezze a bejövő tűzfalszabályokat (lásd a fenti kikötéseket a tűzfalprofilokon). Ez csak a PowerShellben visszaadott első tűzfalprofil kódrészlete:
PS C:\> Get-NetFirewallProfile -PolicyStore ActiveStore Name : Domain Enabled : True DefaultInboundAction : Block DefaultOutboundAction : Allow AllowInboundRules : False ...AllowInboundRules: Falseazt jelenti, hogy a rendszer nem alkalmaz bejövő tűzfalszabályokat.A felhasználó végighalad a Windows biztonsági beállítási alkalmazásain, és ellenőrzi a "Letiltja az összes bejövő kapcsolatot, beleértve az engedélyezett alkalmazások listájában lévőket is".
A Windows támogat egy felhasználó által választható beállítást, amelyet a fent említett 2. pontban hivatkozott nagyvállalat is alkalmazhat. A felhasználók megnyithatják a "Windows biztonság" beállítási lapot, kiválasztják a "Tűzfal & hálózatvédelem" lehetőséget, kiválasztják a konfigurálni kívánt tűzfalprofilt (tartomány, privát vagy nyilvános), a "Bejövő kapcsolatok" területen pedig a "Minden bejövő kapcsolat letiltása, beleértve az engedélyezett alkalmazások listájában lévőket is" feliratú vezérlőt.
Ha ez a nyilvános profilhoz van beállítva (ez a WSL vNIC alapértelmezett profilja), a HNS által létrehozott tűzfalszabály, amely lehetővé teszi az UDP-csomagok számára a megosztott hozzáférést, le lesz tiltva.
Ezt nem kell bejelölni ahhoz, hogy a NAT DNS-proxy konfigurációja WSL-ből működjön, vagy WSL beállítható a DNS-bújtatás használatára.
Érvénytelenné válhat az a HNS tűzfalszabály, amely engedélyezi a DNS-csomagok közös hozzáférését, hivatkozva egy korábbi WSL-felületazonosítóra.
Ez egy hiba a HNS-ben, amelyet a legújabb Windows 11 kiadással kijavítottunk. A korábbi kiadásokban, ha ez előfordul, nem könnyű észrevenni, de van rá egy egyszerű kerülőmegoldás:
WSL leállítása
wsl.exe –shutdownTörölje a régi HNS tűzfal-szabályt. Ennek a PowerShell-parancsnak a legtöbb esetben működnie kell:
Get-NetFirewallRule -Name "HNS*" | Get-NetFirewallPortFilter | where Protocol -eq UDP | where LocalPort -eq 53 | Remove-NetFirewallRuleTávolítsa el az összes HNS-végpontot. Megjegyzés: ha a HNS-t más tárolók, például az MDAG vagy a Windows-tesztkörnyezet kezelésére használják, azokat is le kell állítani.
hnsdiag.exe delete allA HNS szolgáltatás újraindítása vagy újraindítása
Restart-Service hnsA WSL újraindítása után a HNS új tűzfalszabályokat hoz létre, megfelelően célozva meg a WSL-felületet.
Hálózati hozzáféréssel kapcsolatos problémák elhárítása Windows rendszeren
Ha nincs hálózati hozzáférése, annak oka lehet, hogy helytelenül konfigurálták. Ellenőrizze, hogy fut-e az FSE-illesztőprogram:
Get-Service FSE
Ha ez nem mutatja az FSE futását, ellenőrizze, hogy a PortTrackerEnabledMode beállításjegyzék értéke kilép-e a beállításkulcs alatt:
Get-ItemProperty HKLM:\System\CurrentControlSet\Services\Tcpip\Parameters
Ha az FSE nem fut vagy van telepítve, és PortTrackerEnabledMode létezik, törölje a beállításjegyzék-értéket, és indítsa újra
Fantomadapterek manuális törlése
Ghost adapterek, vagy fantom Plug and Play (PnP) eszközök, olyan hardverösszetevők, amelyek a rendszerben megjelennek, de fizikailag nincsenek csatlakoztatva. Ezek a "szellem" eszközök zavart és zsúfoltságot okozhatnak a rendszerbeállításokban. Ha szellemadaptereket lát a WSL virtuális gépen (VM) való futtatásakor, kövesse ezeket a manuális lépéseket a fantom PnP-eszközök megkereséséhez és törléséhez. A Microsoft olyan automatizált megoldáson dolgozik, amely nem igényel manuális beavatkozást. Hamarosan további információk is megjelennek.
Az Eszközkezelő megnyitása
Rejtett eszközök megjelenítése >
Hálózati adapterek megnyitása
Kattintson jobb gombbal a Ghosted hálózati adapterre, és válassza Eszköz eltávolítása
A WSL indítása vagy a disztribúció telepítése hibakódot ad vissza
Kövesse az utasításokat, WSL-naplók gyűjtését a GitHub WSL-adattárában részletes naplók gyűjtéséhez és a GitHubon történő probléma megoldásához.
WSL frissítése
A Linux windowsos alrendszerének két összetevője igényelhet frissítést.
A Linux windowsos alrendszerének frissítéséhez használja az alábbi parancsot.
wsl.exe --updateAz adott Linux-disztribúciós felhasználói bináris fájlok frissítéséhez használja a következő parancsot a frissíteni kívánt Linux-disztribúcióban.
apt-get update | apt-get upgrade
Apt-get frissítési hibák
Egyes csomagok olyan funkciókat használnak, amelyeket még nem implementáltunk.
udevpéldául még nem támogatott, és számos apt-get upgrade hibát okoz.
A udevkapcsolatos problémák megoldásához kövesse az alábbi lépéseket:
Írja a következőt a
/usr/sbin/policy-rc.dcellába, és mentse el a változtatásokat.#!/bin/sh exit 101Végrehajtási engedélyek hozzáadása
/usr/sbin/policy-rc.d:chmod +x /usr/sbin/policy-rc.dFuttassa a következő parancsokat:
dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl
"Hiba: 0x80040306" a telepítéskor
Ennek ahhoz kell köze, hogy nem támogatjuk az örökölt konzolt. Az örökölt konzol kikapcsolása:
- Nyisd meg cmd.exe
- Kattintson a jobb gombbal a címsorra –> Tulajdonságok –> Törölje a jelölést a régi konzol használata jelölőnégyzetből
- Kattintson az OK gombra
"Hiba: 0x80040154" a Windows-frissítés után
Előfordulhat, hogy a Windows alrendszer linuxos funkciója le van tiltva egy Windows-frissítés során. Ha ez történik, a Windows szolgáltatást újra engedélyezni kell. A Linux windowsos alrendszerének engedélyezésére vonatkozó utasításokat a Manuális telepítési útmutatótartalmazza.
A megjelenítési nyelv módosítása
A WSL telepítése megpróbálja automatikusan módosítani az Ubuntu területi beállításokat a Windows-telepítés területi beállításainak megfelelően. Ha nem szeretné ezt a viselkedést, futtassa ezt a parancsot az Ubuntu területi beállítás módosításához a telepítés befejezése után. A módosítás érvénybe lépéséhez újra kell indítania bash.exe.
Az alábbi példa megváltoztatja a területi beállításokat en-US-ra:
sudo update-locale LANG=en_US.UTF8
Telepítési problémák a Windows rendszer visszaállítása után
Törölje a
%SystemRoot%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linuxmappát.Figyelmeztetés
Ne tegye ezt, ha az opcionális funkció teljesen telepítve van és működik.
A WSL opcionális funkciójának engedélyezése (ha még nem tette meg)
Újraindít
lxrun /uninstall /full (eltávolítás teljes mértékben)
Bash telepítése
Nincs internet-hozzáférés a WSL-ben
Egyes felhasználók problémákat jelentettek bizonyos tűzfalalkalmazásokkal kapcsolatban, amelyek blokkolják az internet-hozzáférést a WSL-ben. A jelentett tűzfalak a következők:
- Kaspersky
- AVG
- Hagyd
- Symantec Endpoint Protection
Bizonyos esetekben a tűzfal kikapcsolása lehetővé teszi a hozzáférést. Bizonyos esetekben a tűzfal telepítése letiltja a hozzáférést.
Ha Microsoft Defender tűzfalat használ, törölje a jelet a "Minden bejövő kapcsolat blokkolása, beleértve az engedélyezett alkalmazások listájában lévőket is" lehetőségről az elérés engedélyezéséhez.
Engedély megtagadása hiba pingeléskor
A Windows évfordulós frissítésének 1607-es verziójához a Windowsban rendszergazdai jogosultságokra van szükség a WSL-ben való futtatáshoz ping . A futtatáshoz pingfuttassa a Basht az Ubuntu-on Windows rendszeren rendszergazdaként, vagy futtassa bash.exe a PowerShell-parancssorból rendszergazdai jogosultságokkal.
A Windows későbbi verzióihoz 14926+-build esetén már nincs szükség rendszergazdai jogosultságokra.
A Bash le van függesztve
Ha a bash használata közben azt tapasztalja, hogy a bash lefagyott (vagy holtpontba került), és nem válaszol a bemenetekre, kérjük, segítsen nekünk a probléma diagnosztizálásában egy memóriakép készítésével és jelentésével. Vegye figyelembe, hogy ezek a lépések összeomlasztják a rendszert. Ne tegye ezt, ha nem kényelmes, vagy mentse a munkáját, mielőtt ezt tenné.
Memóriakép gyűjtése:
Állítsa a memóriakép típusát "teljes memóriakép"-re. A memóriakép típusának módosításakor jegyezze meg az aktuális típust.
Az összeomlás billentyűzetvezérléssel való konfigurálásához használja az lépéseket.
Szimulálja a lefagyást vagy a holtpontot.
A (2) billentyűkombinációval omlaszd össze a rendszert.
A rendszer összeomlik, és összegyűjti a memóriaképet.
Miután a rendszer újraindul, jelentse a
memory.dmpkövetkezőnek secure@microsoft.com: . A memóriaképfájl alapértelmezett helye vagy%SystemRoot%\memory.dmpC:\Windows\memory.dmpaC:rendszermeghajtó. Az e-mailben ne feledje, hogy a kibocsátás a WSL vagy a Windows alatti Bash csapatának szól.Állítsa vissza a memóriakép típusát az eredeti beállításra.
A buildszám ellenőrzése
A számítógép architektúrájának és a Windows buildszámának megkereséséhez nyissa meg a Beállítások> rendszernévjegye>
Keresse meg az OS Build és a rendszer típusa mezőket.
A Windows Server buildszámának megkereséséhez futtassa a következőket a PowerShellben:
systeminfo | Select-String "^OS Name","^OS Version"
Ellenőrizze, hogy a WSL engedélyezve van-e
A Linux windowsos alrendszerének engedélyezését úgy ellenőrizheti, hogy az alábbiakat futtatja egy emelt szintű PowerShell-ablakban:
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
OpenSSH-Server csatlakozási problémák
Az SSH-kiszolgáló csatlakoztatása a következő hibával meghiúsult: "A kapcsolat a 127.0.0.1 22-s porttal lezárva".
Győződjön meg arról, hogy az OpenSSH-kiszolgáló fut:
sudo service ssh statusés követte ezt a tutorialt: https://ubuntu.com/server/docs/service-openssh
Állítsa le az sshd szolgáltatást, és indítsa el az sshd-t hibakeresési módban:
sudo service ssh stop sudo /usr/sbin/sshd -dEllenőrizze az indítási naplókat, és győződjön meg arról, hogy a HostKeys elérhető, és nem jelennek meg a naplóüzenetek, például:
debug1: sshd version OpenSSH_7.2, OpenSSL 1.0.2g 1 Mar 2016 debug1: key_load_private: incorrect passphrase supplied to decrypt private key debug1: key_load_public: No such file or directory Could not load host key: /etc/ssh/ssh_host_rsa_key debug1: key_load_private: No such file or directory debug1: key_load_public: No such file or directory Could not load host key: /etc/ssh/ssh_host_dsa_key debug1: key_load_private: No such file or directory debug1: key_load_public: No such file or directory Could not load host key: /etc/ssh/ssh_host_ecdsa_key debug1: key_load_private: No such file or directory debug1: key_load_public: No such file or directory Could not load host key: /etc/ssh/ssh_host_ed25519_key
Ha ilyen üzeneteket lát, és a kulcsok hiányoznak a /etc/ssh/alatt, újra kell generálnia a kulcsokat, vagy csak távolítsa el a&csomagot, majd telepítse az openssh-kiszolgálót:
sudo apt-get purge openssh-server
sudo apt-get install openssh-server
"A hivatkozott szerelvény nem található." A WSL opcionális funkció engedélyezésekor
Ez a hiba azzal kapcsolatos, hogy rossz telepítési állapotban van. A probléma megoldásához hajtsa végre az alábbi lépéseket:
Ha a WSL-funkció engedélyezésére szolgáló parancsot a PowerShellből futtatja, próbálja meg inkább a grafikus felhasználói felületet használni a start menü megnyitásával, keressen rá a "Windows-szolgáltatások be- vagy kikapcsolása" kifejezésre, majd a listában válassza a "Windows alrendszer Linuxhoz" lehetőséget, amely telepíti az opcionális összetevőt.
Frissítse a Windows verzióját a Beállítások, a Frissítések, majd a "Frissítések keresése" elemre kattintva
Ha mindkettő sikertelen, és hozzá kell férnie a WSL-hez, fontolja meg a windows újratelepítését a telepítési adathordozó használatával, és válassza a "Minden megőrzése" lehetőséget az alkalmazások és fájlok megőrzése érdekében. Ennek módjáról a A Windows 10 újratelepítése lapontalál útmutatást.
A (SSH-val kapcsolatos) engedélyhibák javítása
Ha ezt a hibát látja:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/user/.ssh/private-key.pem' are too open.
A probléma megoldásához fűzze hozzá a következőket a /etc/wsl.conf fájlhoz:
[automount]
enabled = true
options = metadata,uid=1000,gid=1000,umask=0022
Vegye figyelembe, hogy a parancs hozzáadása metaadatokat tartalmaz, és módosítja a WSL-ből látható Windows-fájlok fájlengedélyeit. További információért tekintse meg a fájlrendszer engedélyeit.
Nem tudja távolról használni a WSL-t az OpenSSH használatával Windows rendszeren
Ha windowsos openssh-kiszolgálót használ, és távolról próbál hozzáférni a WSL-hez, akkor sokan ezt a hibát látják: A fájlt a rendszer nem tudja elérni.
Ez ismert probléma,a WSL Áruházbeli verziójának használatakor. Ezt ma a WSL 1 használatával vagy a WSL Windowson belüli verziójával teheti meg. További információért tekintse meg a WSL-t a Microsoft Store-ban .
A Windows-parancsok futtatása sikertelen a disztribúcióban
Egyes disztribúciók a Microsoft Store még nem teljes mértékben kompatibilisek a Windows-parancsok dobozon kívüli futtatásához. Ha egy "-bash: powershell.exe: command not found" hibaüzenet powershell.exe /c start . jelenik meg, vagy bármely más Windows-parancs fut, az alábbi lépések végrehajtásával háríthatja el:
- Futtassa a
echo $PATHparancsot a WSL disztribúcióban. Ha nem tartalmazza a következőket:/mnt/c/Windows/system32valami újradefiniálja a standard PATH változót. - Ellenőrizze a profilbeállításokat a
cat /etc/profile-val. Ha a PATH változó hozzárendelését tartalmazza, szerkessze a fájlt, hogy megjegyzést fűzzön a PATH-hozzárendelési blokkhoz egy # karakterrel. - Ellenőrizze, hogy a wsl.conf jelen van-e
cat /etc/wsl.conf, és győződjön meg arról, hogy nem tartalmaz-eappendWindowsPath=false, ellenkező esetben tegye megjegyzésbe. - Indítsa újra a disztribúciót a terjesztési név beírásával
wsl -t <Distro>, vagy futtassawsl --shutdowna PowerShellben.
Nem indítható el a WSL 2 telepítése után
Tisztában vagyunk azzal a problémával, amely miatt a felhasználók nem tudnak elindulni a WSL 2 telepítése után. A probléma teljes körű diagnosztizálása mellett a felhasználók arról számoltak be, hogy a puffer méretének módosítása vagy a megfelelő illesztőprogramok telepítése segíthet ennek megoldásában. Tekintse meg ezt a GitHub-problémát a probléma legújabb frissítéseinek megtekintéséhez.
WSL 2-es hibák, ha az ICS le van tiltva
Az internetkapcsolat megosztása (ICS) a WSL 2 szükséges összetevője. Az ICS szolgáltatást a Host Network Service (HNS) használja a mögöttes virtuális hálózat létrehozására, amelyre a WSL 2 a NAT, a DNS, a DHCP és a gazdagép-kapcsolat megosztására támaszkodik.
Az ICS szolgáltatás (SharedAccess) letiltása vagy az ICS csoportházirenden keresztüli letiltása megakadályozza a WSL HNS-hálózat létrehozását. Ez egy új WSL 2-es verziójú rendszerkép létrehozásakor meghiúsul, és az alábbi hibaüzenet jelenik meg az 1-es verziójú rendszerkép 2-es verzióra való konvertálásakor: A végpontleképező nem érhető el több végponton.
A WSL 2-t igénylő rendszereknek meg kell hagyniuk az ICS szolgáltatást (SharedAccess) az alapértelmezett indítási állapotban, manuális (triggerindítási) állapotban, és az ICS-t letiltó házirendeket felül kell írni vagy el kell távolítani. Bár az ICS szolgáltatás letiltása megszakítja a WSL 2-t, és nem javasoljuk az ICS letiltását, az ICS egyes részei letilthatók az alábbi utasítások használatával
A Windows és a WSL régebbi verzióinak használata
Ha egy régebbi verzióját használja a Windowsnak és a WSL-nek, például a Windows 10 Alkotók frissítését (2017. október, 16299-es build) vagy az Évfordulós frissítést (2016. augusztus, 14393-as build), számos különbséget kell észre venni. Javasoljuk, hogy frissítsen a Windows legújabb verziójára, de ha ez nem lehetséges, az alábbiakban néhány különbséget ismertettünk.
Együttműködési parancsok eltérései:
-
bash.exewsl.exe- ra cserélték. A Linux-parancsok futtathatók a PowerShell-lel, de a Windows korai verzióihoz szükség lehet abashparancs használatára. Például:C:\temp> bash -c "ls -la". Abash -cátadott WSL-parancsokat a rendszer módosítás nélkül továbbítja a WSL-folyamatnak. A fájl elérési útját WSL formátumban kell megadni, és ügyelni kell a megfelelő karakterek megkerülésére. Például:C:\temp> bash -c "ls -la /proc/cpuinfo"vagyC:\temp> bash -c "ls -la \"/mnt/c/Program Files\"". - Ha meg szeretné tekinteni, hogy mely parancsok érhetők el egy adott terjesztéshez, futtassa a
[distro.exe] /?. Például az Ubuntu:C:\> ubuntu.exe /?. - A Windows elérési útja be van foglalva a WSL
$PATH-ba. - Ha windowsos eszközt hív meg egy WSL-disztribúcióból a Windows 10 egy korábbi verziójában, meg kell adnia a címtár elérési útját. Ha például a WSL parancssorból szeretné meghívni a Windows Jegyzettömb alkalmazást, írja be a következőt:
/mnt/c/Windows/System32/notepad.exe - Ha az alapértelmezett felhasználót
root-ra szeretné módosítani, használja ezt a parancsot a PowerShellben:C:\> lxrun /setdefaultuser root, majd futtassa a Bash.exe-t a bejelentkezéshez:C:\> bash.exe. Állítsa alaphelyzetbe a jelszót a disztribúciók jelszóparancsával:$ passwd username, majd zárja be a Linux parancssorát:$ exit. A Windows parancssorából vagy a PowerShellből állítsa vissza az alapértelmezett felhasználót a normál Linux-felhasználói fiókba:C:\> lxrun.exe /setdefaultuser username.
A WSL régi verziójának eltávolítása
Ha eredetileg a Windows 10 egyik verziójára telepítette a WSL-t a Létrehozók frissítése előtt (2017. október, 16299-es build), javasoljuk, hogy migrálja a szükséges fájlokat, adatokat stb. a régebbi Linux-disztribúcióból a Microsoft Store-on keresztül telepített újabb disztribúcióba. Az örökölt disztribúció számítógépről való eltávolításához futtassa a következőt egy parancssori vagy PowerShell-példányból: wsl --unregister Legacy. Lehetősége van arra is, hogy manuálisan eltávolítsa a régebbi régi disztribúciót a %LocalAppData%\lxss\ mappa (és annak összes altartalma) törlésével a Windows File Explorer vagy a PowerShell használatával: Remove-Item -Recurse $env:localappdata/lxss/.
Hibakód 0x8000FFFF váratlan hiba
Ez a hibakód általában azt jelenti, hogy váratlan vagy "katasztrofális" hiba történt a rendszerműveletek során, amikor linuxos distrubutiont (például Ubuntu) próbál telepíteni vagy használni a WSL-vel. Ennek a hibának számos oka lehet. Először ellenőrizze a következőket:
- Ez engedélyekkel kapcsolatos probléma? Ellenőrizze, hogy ön a parancssor várt felhasználójaként van-e bejelentkezve, és rendelkezik-e a szükséges rendszergazdai jogosultságokkal a Linux-distrubution WSL-vel való telepítésekor. (Kattintson a jobb gombbal a terminál vagy a parancssor tálcájának ikonra a "Futtatás rendszergazdaként" lehetőség kiválasztásához.)
- Frissítette a WSL-t a legújabb verzióra? A következő paranccsal
wsl --updatefrissíthet a legújabb verzióra. Érdemes lehet frissíteni a Windows legújabb verziójára is. - Győződjön meg arról, hogy helyesen használja a
wsl --installparancsot, és megadja a telepíteni kívánt Linux-distrubutiont. - Próbálja meg leállítani és újraindítani a WSL-t a következő paranccsal:
wsl --shutdown. - Windows Server használata esetén győződjön meg arról, hogy a verzió naprakész, és kövesse a Windows Server telepítési útmutatóját.
- Ha azt gyanítja, hogy ez hiányzó vagy sérült rendszerfájlokhoz kapcsolódik, egy rendszergazda jogú parancssorból (futtatás rendszergazdaként) ellenőrizheti és kijavíthatja a rendszerfájlokat, és/vagy kijavíthatja a Windows operációs rendszer lemezképét. Sérült vagy hiányzó Windows rendszerfájlok kereséséhez és javításához használja a következő parancsot:
SFC /SCANNOW. A Windows rendszerkép javításához használja a következő parancsot:DISM /Online /Cleanup-Image /RestoreHealth. - Lásd a kapcsolódó WSL-termék-adattár 9420-ra vonatkozó problémáját.
Windows Subsystem for Linux