Сначала немного предыстории. Нужна Windows 10 Build 17627 или выше для поддержки Firewall с подключениями WSL. Вот раздел примечаний к выпуску WSL :
Сборка 17627 (Пропустить)
WSL
- Поддержка брандмауэра Windows для процессов WSL. [GH 1852]
- Например, чтобы позволить процессу Python WSL прослушивать любой порт, используйте 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
- Дополнительные сведения о том, как добавить правила брандмауэра, см. По ссылке.
На следующем шаге найдите абсолютный путь к исполняемому файлу Linux, который хочет подключиться к Интернету. Полный путь можно разделить на три части:
C:\Users\UserName\AppData\Local\Packages
- Путь, в котором приложения универсальной платформы Windows хранят пользовательские файлы, временные файлы и т. Д.CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
- Путь, где Ubuntu 18,04 Appx хранилище пакетов Ubuntu usersapce файлы, то есть/bin
,/etc
,/usr
и другие.\bin\ping
-ping
бинарный Linux .
Отсюда весь путь:
C:\Users\UserName\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\bin\ping
Вы можете использовать следующий скрипт PowerShell, чтобы получить этот путь. Просто введите, ubuntu
когда он просит ввести имя распространения.
$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..."
Последний шаг, добавьте правило брандмауэра. Для брандмауэра Windows выполните эту команду от имени администратора, чтобы добавить правило исходящего брандмауэра.
netsh.exe advfirewall firewall add rule name=wsl_ping dir=out action=allow program=<path_to_ping> enable=yes
Для Avast Firewall следуйте этой инструкции от Avast Support. Откройте Настройки> Общие> Исключение и добавьте путь из предыдущего шага.
Канонические ответы: