WindowsВысокая

WSL: сеть не работает — причины и способы исправления

Статья помогает решить типичные сетевые проблемы в WSL: отсутствие интернета, ошибки DNS, конфликты с VPN. Предложены конкретные способы от простого перезапуска до настройки фаервола.

Обновлено 8 апреля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Windows 10 2004+Windows 11WSL 2

Что означает проблема с сетью в WSL

Проблема с сетью в WSL (Windows Subsystem for Linux) проявляется как полное или частичное отсутствие доступа к интернету и локальным сетям изнутри Linux-окружения. Симптомы включают: ошибку Network is unreachable при попытке ping, таймауты в curl или wget, невозможность установки пакетов через apt/npm/pip, а также проблемы с доступом к сетевым ресурсам Docker или других сервисов. WSL 2 использует виртуальную машину Hyper-V с собственным виртуальным адаптером, и любые изменения в сетевой конфигурации Windows (например, подключение VPN, смена прокси, обновление драйверов) могут нарушить маршрутизацию между хостом и подсистемой.

Причины возникновения

  1. Конфликт с VPN или корпоративными прокси-серверами — VPN-клиенты часто перенаправляют весь трафик через виртуальный адаптер, что ломает маршруты WSL.
  2. Повреждённые или устаревшие драйверы виртуальной сети Hyper-V — особенно после крупных обновлений Windows.
  3. Некорректная конфигурация DNS — WSL автоматически генерирует /etc/resolv.conf, но иногда получает нерабочие DNS-серверы (например, 127.0.0.1).
  4. Брандмауэр Windows блокирует трафик — правило может запрещать подключения для виртуального адаптера vEthernet (WSL).
  5. Сброс сетевых настроек Windows — команды netsh или перезагрузка могут сбросить статические маршруты, необходимые WSL.
  6. Устаревшая версия WSL — в ранних сборках WSL 2 были баги с сетью после спящего режима.

Способ 1: Перезапуск WSL и сброс сетевых служб Windows

Часто помогает простой перезапуск подсистемы и обновление аренды IP.

  1. Закройте все открытые терминалы WSL.
  2. Запустите PowerShell от имени администратора.
  3. Выполните команды последовательно:
    wsl --shutdown
    ipconfig /release
    ipconfig /renew
    netsh winsock reset
    
  4. Перезагрузите компьютер.
  5. Запустите WSL и проверьте доступ: ping 8.8.8.8.

⚠️ Важно: netsh winsock reset требует перезагрузки. Сохраните работу перед выполнением.

Способ 2: Ручная настройка DNS в WSL

Если пинг по IP работает, а доменные имена — нет, проблема в DNS.

  1. Внутри WSL откройте файл /etc/resolv.conf:
    sudo nano /etc/resolv.conf
    
  2. Замените содержимое на:
    nameserver 8.8.8.8
    nameserver 1.1.1.1
    
  3. Чтобы система не перезаписывала файл при перезапуске, создайте /etc/wsl.conf:
    [network]
    generateResolvConf = false
    
  4. Перезапустите WSL: wsl --shutdown и снова запустите дистрибутив.

Способ 3: Обновление WSL и компонентов Windows

Устаревшее ПО — частая причина сетевых глюков.

  1. В PowerShell (администратор) обновите ядро WSL:
    wsl --update
    
  2. Установите последнюю версию пакета обновлений Windows через Параметры → Обновление и безопасность → Проверить наличие обновлений.
  3. Внутри WSL обновите пакеты дистрибутива (для Ubuntu/Debian):
    sudo apt update && sudo apt upgrade -y
    
  4. Перезапустите WSL.

Способ 4: Настройка исключений в брандмауэре Windows

Если фаервол блокирует виртуальный адаптер.

  1. Откройте Брандмауэр Защитника Windows с расширенными параметрами.
  2. Создайте новое правило для входящих подключений:
    • Тип: «Для программы» → выберите C:\Windows\System32\vmwp.exe (процесс Hyper-V).
    • Действие: «Разрешить подключение».
    • Профиль: все (Domain, Private, Public).
  3. Аналогично создайте правило для исходящих подключений.
  4. Или временно отключите фаервол для теста: Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False в PowerShell (администратор). Не забудьте включить обратно!

Способ 5: Полный сброс сети WSL

Если ничего не помогает, выполните «чистую» переустановку сетевой инфраструктуры WSL.

  1. Экспортируйте данные дистрибутива (если нужно):
    wsl --export Ubuntu ubuntu_backup.tar
    
  2. Удалите виртуальную сеть WSL:
    wsl --unregister
    
  3. Удалите старый адаптер в Диспетчере устройств (показать скрытые устройства) → Сетевые адаптеры → удалите vEthernet (WSL).
  4. Перезагрузите компьютер — Windows создаст новый адаптер при следующем запуске WSL.
  5. Запустите дистрибутив заново (если удаляли, установите заново из Microsoft Store).

Профилактика

  • Избегайте одновременного запуска нескольких VPN-клиентов — они конфликтуют с виртуальными адаптерами WSL. Используйте split-tunneling для исключения подсети 172.16.0.0/12.
  • Не меняйте вручную маршруты в Windows через route add, если не знаете, как это повлияет на WSL.
  • Регулярно обновляйте WSLwsl --update раз в месяц.
  • Контролируйте антивирусы — некоторые (например, Avast, Kaspersky) имеют собственные сетевые фильтры, которые могут блокировать трафик WSL. Добавляйте исключения для папок WSL (C:\Users\<User>\AppData\Local\Packages\...).
  • Используйте стабильные версии Windows — Insider-сборки часто содержат баки с сетью.

Часто задаваемые вопросы

Почему в WSL внезапно пропал интернет, хотя в Windows он есть?
Как быстро проверить, что проблема именно в WSL, а не в Windows?
Можно ли задать статический DNS в WSL, чтобы не было сбросов?
Проблема возникает только после подключения к корпоративному VPN. Что делать?

Полезное

Перезапустите WSL и сетевые службы Windows
Проверьте и вручную задайте DNS в WSL
Обновите ядро WSL и компоненты Windows
Настройте исключения в брандмауэре Windows
Сбросьте сеть WSL до настроек по умолчанию

Эта статья помогла вам решить проблему?