Zuerst etwas Hintergrund. Man sollte Windows 10 Build 17627 oder höher benötigen, um die Firewall mit WSL-Verbindungen zu unterstützen. Hier ist der Abschnitt aus den WSL-Versionshinweisen :
Baue 17627 (Ahead überspringen)
WSL
- Windows-Firewall-Unterstützung für WSL-Prozesse. [GH 1852]
- Um beispielsweise zuzulassen, dass der WSL-Python-Prozess einen beliebigen Port überwacht, verwenden Sie die erhöhte Windows-Cmd:
netsh.exe advfirewall firewall add rule name=wsl_python dir=in action=allow program="C:\Users\<UserName>\AppData\Local\Packages\canonicalgrouplimited.ubuntuonwindows_79rhkp1fndgsc\localstate\rootfs\usr\bin\python2.7" enable=yes
- Weitere Informationen zum Hinzufügen von Firewall-Regeln finden Sie unter Link
Suchen Sie im nächsten Schritt den absoluten Pfad der Linux-Programmdatei, die eine Internetverbindung benötigt. Der vollständige Pfad kann in drei Teile unterteilt werden:
C:\Users\UserName\AppData\Local\Packages
- Pfad, in dem Universal Windows Platform-Apps benutzerspezifische Dateien, temporäre Dateien usw. speichern.CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
- Pfad, in den Ubuntu 18.04 Appx Paketspeicher Ubuntu usersapce Dateien, dh/bin
,/etc
,/usr
und andere.\bin\ping
- Linuxping
binär.
Daher ist der ganze Weg:
C:\Users\UserName\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\bin\ping
Sie können das folgende PowerShell-Skript verwenden, um diesen Pfad abzurufen. Geben ubuntu
Sie einfach ein, wenn Sie zur Eingabe des Verteilungsnamens aufgefordert werden.
$DistroName=Read-Host "Enter Distribution Name" $pacakgeName = (Get-AppxPackage *$DistroName*).PackageFamilyName $appData = [System.Environment]::ExpandEnvironmentVariables("%LocalAppData%") $InstallDir = $appData + "\Packages\" + $pacakgeName + "\LocalState\rootfs" echo $InstallDir Invoke-Item $InstallDir Read-Host -Prompt "Press any key to continue..."
Abschließend fügen Sie die Firewall-Regel hinzu. Führen Sie für die Windows-Firewall diesen Befehl als Administrator aus, um die Regel für ausgehende Firewall hinzuzufügen.
netsh.exe advfirewall firewall add rule name=wsl_ping dir=out action=allow program=<path_to_ping> enable=yes
Befolgen Sie für Avast Firewall diese Anweisungen des Avast-Supports. Öffnen Sie Einstellungen> Allgemein> Ausschluss und fügen Sie den Pfad aus dem vorherigen Schritt hinzu.
Kanonische Antworten: