Windows 10 WSL Ubuntu kann nichts pingen

1512
user3369850

Ich kann keine Website pingen, wenn ich WSL für Windows 10 verwende. Ich verwende Ubuntu 18.04 in WSL.

--- google.com ping statistics --- 14 packets transmitted, 0 received, 100% packet loss, time 38567ms 

ist das Ergebnis, wenn ich versuche, google.com ping. Ich verwende Windows 10 mit IPv4, IPv6 deaktiviert. Ich kann google.com normalerweise ohne wsl an meiner regulären Eingabeaufforderung pingen

Ich verwende Avast Internet Security und wenn ich Google in der Ubuntu / WSL-Instanz anpinge, sehe ich Folgendes.

1 :Windows 10 WSL Ubuntu kann nichts pingen

Was muss ich tun, um Ping in WSL zu aktivieren?

0

1 Antwort auf die Frage

0
Biswapriyo

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:

  1. C:\Users\UserName\AppData\Local\Packages- Pfad, in dem Universal Windows Platform-Apps benutzerspezifische Dateien, temporäre Dateien usw. speichern.
  2. CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs- Pfad, in den Ubuntu 18.04 Appx Paketspeicher Ubuntu usersapce Dateien, dh /bin, /etc, /usrund andere.
  3. \bin\ping- Linux pingbinä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 ubuntuSie 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:

Ich habe die Eingabeaufforderung als Administrator ausgeführt und den Befehl netsh.exe ausgeführt, und das Ergebnis war in Ordnung. Dann ging ich in meine avast Internet-Sicherheit und fügte den Ping-Pfad hinzu, um alle zuzulassen, aber ich bekomme immer noch 100% Paketverlust, wenn ich versuche, google.com auf wsl ubuntu zu ping user3369850 vor 6 Jahren 0
@ user3369850 Hier ist eine GitHub-Diskussion, der Sie folgen können: https://github.com/Microsoft/WSL/issues/475 Biswapriyo vor 6 Jahren 0