
У меня установлена свежая версия Windows 11 с Ubuntu 20.04 внутри wsl2.
Когда я пытаюсь выполнить обновление sudo apt update
или даже ping google.com
получаю
Временная ошибка при разрешении «archive.ubuntu.com»
и
Временный сбой в разрешении имени
ошибки соответственно.
Я пробовал:
Разрешил wsl через брандмауэр windows, используя «разрешить приложение через брандмауэр» и выбрав
C:\Windows\System32\wsl.exe
Добавлено входящее правило в брандмауэре для порта 3390
Установите сетевой профиль как «частный» (хотя я бы предпочел оставить его общедоступным, если есть способ сохранить работоспособность wsl)
запуск
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
из поиска google
EDIT: На данный момент я перепробовал все результаты Google, но решения так и не нашел. r/windows11 не позволяет мне публиковать сообщения, если только это не понедельник (тупость). Также пробовал переустановить Ubuntu на wsl, но безрезультатно.
решение1
У этой проблемы есть несколько причин.
Статья Проблемы с сетью WSL2 и быстрый запуск Win 10 советует отключить быстрый запуск в Windows:
Другой
объяснение
заключается в том, что переключение сетей (например, между работой и домом) сбивает с толку WSL. Решение заключается в запуске .bat
файла, содержащего следующее:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
netsh winsock reset
shutdown /r
Еще один
объяснение
заключается в том, что Windows автоматически создает resolv.conf
файл с неправильным сервером имен.
Чтобы этого не произошло, выполните следующие команды:
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf
решение2
Хочу напомнить всем, что Win11, похоже, является сторонником административного доступа, даже для размещения .bat-файла на диске C:
Итак, как уже было сказано, эта переписывание etc/resolv.conf на 8.8.8.8 работало до тех пор, пока я ВСЕ делал как и из доступа администратора, включая запуск моего WSL2 Kali CLI от имени администратора из панели задач Win11.
решение3
Добавление этого параметра в ваш .wslconfig
файл (в домашнем каталоге Windows) должно включить поддержку сети на виртуальных машинах WSL:
[wsl2]
networkingMode=mirrored
WSL следует остановить после внесения изменений, .wslconfig
чтобы изменения вступили в силу: используйте wsl --shutdown
из командной оболочки Windows. Это относительно новая функция (обновление от сентября 2023 г.), требуется сборка 22H2 (я тестировал ее только на Windows 11, но она может работать на последней версии Windows 10). Подробности и другие связанные параметры конфигурации здесь:
https://learn.microsoft.com/en-us/windows/wsl/networking.
Для использования последней версии подсистемы WSL2 wsl --update
может потребоваться запуск.
В старых версиях Windows единственное надежное решение, которое мне удалось использовать и которое также работало, когда в Windows запущен VPN, — это использование «wsl-vpnkit» (https://github.com/sakai135/wsl-vpnkit).