WSL нет интернета или не работает DNS: как исправить
WSL нет интернета или не работает DNS: как исправить: симптомы, причины и пошаговое исправление без лишней воды. Проверки, безопасные действия и когда нужна поддержка.
Симптомы
- В 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
Пошаговое решение
Проверьте, проблема в 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 Перезапустите WSL и сетевой стек
Многие сбои WSL появляются после сна, смены сети или подключения VPN. Полностью остановите WSL из Windows Terminal или PowerShell. Затем откройте дистрибутив заново и повторите проверку. Это безопасный первый шаг, который не меняет файлы Linux.
wsl --shutdown Проверьте текущий resolv.conf
В WSL DNS обычно хранится в /etc/resolv.conf. Если там указан недоступный адрес, домены не будут резолвиться. Проверьте nameserver и сравните его с DNS в Windows. В корпоративных сетях WSL может получить адрес, недоступный из NAT-сети.
cat /etc/resolv.conf
grep nameserver /etc/resolv.conf Отключите автогенерацию resolv.conf
Если WSL каждый запуск записывает неправильный DNS, отключите генерацию resolv.conf через /etc/wsl.conf. После изменения завершите WSL командой wsl --shutdown. Затем создайте собственный resolv.conf с надежными DNS-серверами или DNS вашей организации.
sudo tee /etc/wsl.conf
[network]
generateResolvConf = false Задайте 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 Проверьте VPN, прокси и firewall
VPN-клиенты часто меняют маршруты и DNS только для Windows, а WSL остается в отдельной NAT-сети. Попробуйте отключить VPN, затем проверить apt update. Если без VPN все работает, настройте split tunneling, разрешите vEthernet WSL в firewall или используйте DNS VPN вручную.
ip route && cat /etc/resolv.conf Сбросьте сетевые настройки Windows при полном отказе сети
Если не работает даже подключение по IP, проблема может быть в Winsock или сетевом стеке Windows. Выполните сброс от имени администратора и перезагрузите компьютер. Этот шаг влияет на сетевые настройки Windows, поэтому используйте его после простых проверок.
netsh winsock reset
netsh int ip reset В WSL проблемы с интернетом почти всегда делятся на две группы: не работает DNS или не работает сама маршрутизация. Если IP-адреса открываются, а домены нет, не нужно переустанавливать Ubuntu. Достаточно исправить resolv.conf или настройки DNS, которые WSL получает от Windows.
Самая частая причина — WSL автоматически создает /etc/resolv.conf на основе сетевых настроек Windows, но получает адрес DNS, который недоступен из Linux-дистрибутива. Такое часто происходит после VPN, корпоративного прокси, сна ноутбука или смены Wi-Fi сети. Иногда Windows уже использует новый DNS, а запущенный дистрибутив WSL продолжает жить со старой конфигурацией.
Если вы вручную задаете DNS, помните о внутренних корпоративных доменах. Публичные DNS вроде 1.1.1.1 и 8.8.8.8 не знают адреса внутренних сервисов компании. Для рабочей сети лучше использовать DNS, который выдает VPN-клиент, иначе npm, apt и браузер смогут открывать внешние сайты, но не найдут внутренние репозитории, registry или корпоративные API.
После каждого изменения выполняйте wsl --shutdown из Windows, иначе WSL может продолжать использовать старую сетевую конфигурацию. Простое закрытие окна терминала не всегда завершает виртуальную машину WSL: фоновые процессы могут удерживать старый NAT и старый DNS.
Как отличить DNS от полного отказа сети
Начните с двух проверок внутри дистрибутива: ping -c 4 8.8.8.8 и ping -c 4 google.com. Если IP-адрес отвечает, а доменное имя нет, проблема почти наверняка в DNS. Если не отвечает даже IP-адрес, смотрите маршруты, VPN, firewall, сетевой адаптер vEthernet и состояние WSL NAT.
Команда cat /etc/resolv.conf покажет, какой DNS сейчас использует Linux. Если там адрес из корпоративной сети, который доступен только Windows, WSL может не достучаться до него через NAT. Если файл каждый раз меняется после перезапуска, значит автогенерация DNS все еще включена.
Что учитывать с VPN и прокси
VPN-клиенты часто перехватывают DNS и маршруты только в Windows. WSL при этом остается в отдельной виртуальной сети, поэтому видит другой default route и другой набор DNS-серверов. Если проблема появляется только после включения VPN, проверьте настройки split tunneling, разрешения firewall для vEthernet WSL и DNS, который выдает VPN.
Корпоративный прокси может ломать не только DNS, но и HTTPS-доступ к пакетным менеджерам. Если DNS уже исправлен, но apt update, curl или git clone продолжают падать на TLS или proxy error, проверьте переменные HTTP_PROXY, HTTPS_PROXY, настройки сертификатов и правила организации.
Когда нужен сброс сетевого стека
Сброс netsh winsock reset и netsh int ip reset стоит использовать только после простых проверок. Эти команды меняют сетевые настройки Windows и требуют перезагрузки, поэтому сначала безопаснее выполнить wsl --shutdown, перезапустить VPN, проверить /etc/resolv.conf и временно задать DNS вручную.
Если после сброса сеть работает до следующего подключения VPN, причина не в WSL, а в конфликте политик VPN, firewall или DNS. В таком случае фиксируйте рабочую конфигурацию и передавайте администратору конкретные данные: DNS из Windows, DNS из WSL, таблицу маршрутов и текст ошибки из apt или curl.
Быстрая проверка
ping 8.8.8.8работает, ноgoogle.comнет: проблема DNS.- Не работает даже
8.8.8.8: проблема маршрутов, NAT или firewall. - После VPN ломается
apt update: проверьте DNS VPN и split tunneling. resolv.confменяется после перезапуска: отключитеgenerateResolvConf.- После правки DNS выполнен
wsl --shutdown. - В корпоративной сети используются DNS и proxy, подходящие для внутренних доменов.
Что сохранить для диагностики
- Содержимое
/etc/resolv.confдо и после исправления. - Вывод
ip routeвнутри WSL. - DNS-серверы из Windows:
Get-DnsClientServerAddress. - Текст ошибки из
apt update,curlилиgit clone. - Название VPN-клиента и включен ли split tunneling.
Источники
- learn.microsoft.com — проверено 04.06.2026
- learn.microsoft.com — проверено 04.06.2026
- learn.microsoft.com — проверено 04.06.2026
- manpages.ubuntu.com — проверено 04.06.2026