Разработка 9 мин чтения

WSL нет интернета или не работает DNS: как исправить

Подробное руководство по исправлению проблем WSL, когда Linux-дистрибутив не открывает сайты, apt не обновляется, DNS не резолвит домены или сеть ломается после VPN.

WSLWindowsDNSLinuxСеть

Симптомы

  • В WSL работает ping 8.8.8.8, но не открываются домены
  • apt update возвращает Temporary failure resolving
  • curl не может подключиться к HTTPS-сайтам
  • Интернет пропадает после включения VPN или прокси
  • Файл /etc/resolv.conf каждый раз перезаписывается

Возможные причины

  • WSL сгенерировал неверный DNS-сервер в resolv.conf
  • VPN или корпоративный прокси меняет маршруты Windows
  • Поврежден сетевой стек WSL NAT
  • Брандмауэр или антивирус блокирует vEthernet адаптер
  • Включена устаревшая конфигурация resolv.conf

Пошаговое решение

1

Проверьте, проблема в DNS или в маршрутизации

Сначала отделите DNS от полного отсутствия сети. Если ping до 8.8.8.8 работает, но ping google.com нет, сломан DNS. Если не работает даже IP-адрес, проблема в маршрутах, NAT, VPN или брандмауэре. Это определяет дальнейший путь исправления.

Команда
ping -c 4 8.8.8.8
ping -c 4 google.com
2

Перезапустите WSL и сетевой стек

Многие сбои WSL появляются после сна, смены сети или подключения VPN. Полностью остановите WSL из Windows Terminal или PowerShell. Затем откройте дистрибутив заново и повторите проверку. Это безопасный первый шаг, который не меняет файлы Linux.

Команда
wsl --shutdown
3

Проверьте текущий resolv.conf

В WSL DNS обычно хранится в /etc/resolv.conf. Если там указан недоступный адрес, домены не будут резолвиться. Проверьте nameserver и сравните его с DNS в Windows. В корпоративных сетях WSL может получить адрес, недоступный из NAT-сети.

Команда
cat /etc/resolv.conf
grep nameserver /etc/resolv.conf
4

Отключите автогенерацию resolv.conf

Если WSL каждый запуск записывает неправильный DNS, отключите генерацию resolv.conf через /etc/wsl.conf. После изменения завершите WSL командой wsl --shutdown. Затем создайте собственный resolv.conf с надежными DNS-серверами или DNS вашей организации.

Команда
sudo tee /etc/wsl.conf
[network]
generateResolvConf = false
5

Задайте DNS вручную

После отключения автогенерации удалите старый resolv.conf и создайте новый. Для домашней сети можно использовать Cloudflare или Google DNS. Для корпоративной сети лучше указать DNS, который выдает VPN, иначе внутренние домены компании не будут открываться.

Команда
sudo rm -f /etc/resolv.conf
sudo tee /etc/resolv.conf
nameserver 1.1.1.1
nameserver 8.8.8.8
6

Проверьте VPN, прокси и firewall

VPN-клиенты часто меняют маршруты и DNS только для Windows, а WSL остается в отдельной NAT-сети. Попробуйте отключить VPN, затем проверить apt update. Если без VPN все работает, настройте split tunneling, разрешите vEthernet WSL в firewall или используйте DNS VPN вручную.

Команда
ip route && cat /etc/resolv.conf
7

Сбросьте сетевые настройки Windows при полном отказе сети

Если не работает даже подключение по IP, проблема может быть в Winsock или сетевом стеке Windows. Выполните сброс от имени администратора и перезагрузите компьютер. Этот шаг влияет на сетевые настройки Windows, поэтому используйте его после простых проверок.

Команда
netsh winsock reset
netsh int ip reset

В WSL проблемы с интернетом почти всегда делятся на две группы: не работает DNS или не работает сама маршрутизация. Если IP-адреса открываются, а домены нет, не нужно переустанавливать Ubuntu. Достаточно исправить resolv.conf или настройки DNS.

Самая частая причина — WSL автоматически создает /etc/resolv.conf на основе сетевых настроек Windows, но получает адрес DNS, который недоступен из Linux-дистрибутива. Такое часто происходит после VPN, корпоративного прокси, сна ноутбука или смены Wi-Fi сети.

Если вы вручную задаете DNS, помните о внутренних корпоративных доменах. Публичные DNS вроде 1.1.1.1 не знают адреса внутренних сервисов компании. Для рабочей сети лучше использовать DNS, который выдает VPN-клиент.

После каждого изменения выполняйте wsl —shutdown из Windows, иначе WSL может продолжать использовать старую сетевую конфигурацию.

Быстрая проверка

  • ping 8.8.8.8 работает, но google.com нет: проблема DNS.
  • Не работает даже 8.8.8.8: проблема маршрутов или NAT.
  • После VPN ломается apt update: проверьте DNS VPN.
  • resolv.conf меняется после перезапуска: отключите generateResolvConf.

Источники

  1. learn.microsoft.com — проверено 04.06.2026
  2. learn.microsoft.com — проверено 04.06.2026
  3. learn.microsoft.com — проверено 04.06.2026
  4. manpages.ubuntu.com — проверено 04.06.2026