Windows

Настройка сетевого подключения WSL2: полное руководство для Windows 10/11

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

Обновлено 6 августа 2026 г.
15-20 мин
Средняя
FixPedia Team
Применимо к:Windows 10 (1909 и выше)Windows 11 (21H2 и выше)Ubuntu 20.04 LTSUbuntu 22.04 LTS

Введение

Настройка WSL2 (Windows Subsystem for Linux 2) открывает мощные возможности для разработчиков и DevOps-специалистов, работая непосредственно в среде Linux на базе Windows. Без правильной сетевой конфигурации WSL2 изолирован и не может взаимодействовать с хостом Windows, локальной сетью или внешними сервисами. В этом руководстве вы узнаете, как настроить WSL2 для обмена трафиком с хостом, открыть порты для внешних приложений и оптимизировать сетевую производительность. После выполнения шагов вы сможете использовать WSL2 как полноценную рабочую станцию Linux с полным доступом к локальным ресурсам.

Требования / Подготовка

  • Windows 10 (1909 или выше) или Windows 11 (21H2 или выше) с включённым Hyper‑V.
  • Включённый WSL2 (wsl --list должен отображать дистрибутивы).
  • Административные права на хосте для выполнения команд PowerShell и dism.
  • Дистрибутив Linux (Ubuntu 20.04 LTS или 22.04 LTS) в WSL2.
  • Свободный IP-адрес в диапазоне 192.168.100.0/24 (или другой выбранный вами subnet).

Пошаговая инструкция

Шаг 1: Включение WSL2 и Hyper-V

Важно: Hyper‑V необходим для создания виртуальной своп-сети, которую будет использовать WSL2.

  1. Откройте PowerShell от имени администратора и выполните команду:
    dism.exe /online /enable-feature /featurename:Microsoft‑Hyper‑V
    
  2. Если Hyper‑V уже включён, команда вернёт сообщение об успешном выполнении.

Шаг 2: Настройка NAT-сети для обмена трафиком

  1. Создайте внутренний своп-коммутатор с NAT:
    New-VMSwitch -Name "WSL2NAT" -SwitchType Internal
    
  2. Определите имя сетевого адаптера:
    Get-NetAdapter -Name "WSL2NAT"
    
    (запишите имя, например, vEthernet (WSL2NAT)).
  3. Добавьте IP-адрес 192.168.100.1/24 к адаптеру:
    New-NetIPAddress -InterfaceAlias "vEthernet (WSL2NAT)" -IPAddress 192.168.100.1 -PrefixLength 24 -DefaultGateway 192.168.100.1
    
  4. Настройте NAT для этого префикса:
    New-NetNat -Name "WSL2NAT" -InternalIPInterfaceAddressPrefix "192.168.100.0/24"
    

Шаг 3: Подключение WSL2 к NAT-сети

Внутри дистрибутива Linux отредактируйте /etc/wsl.conf:

[network]
generator=docker-gen

Сохраните изменения, затем перезапустите WSL2:

wsl --shutdown
# Запустите дистрибутив снова

После перезапуска команда ip a покажет IP-адрес, назначенный из NAT-сети (например, 192.168.100.10/24).

Шаг 4: Портовое перенаправление на хост

На хосте Windows разрешите входящие TCP-соединения на выбранный порт (например, 8080):

netsh advfirewall firewall add rule name="AllowWSL2Port" dir=in action=allow protocol=TCP localport=8080 remoteip=192.168.100.0/24

Внутри WSL2 добавьте правило NAT для перенаправления внешнего порта (например, 80) на хост:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10:8080
sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.100.10 --dport 8080 -j MASQUERADE

Теперь внешнее приложение, обращающееся к IP-адресу хоста на порту 8080, будет перенаправлено на WSL2.

Шаг 5: Проверка подключения

  • Из WSL2 проверьте доступность хоста:
    ping 192.168.100.10
    curl http://192.168.100.10:8080
    
  • На хосте Windows (PowerShell):
    Test-NetConnection -ComputerName 192.168.100.10 -Port 8080
    
  • Убедитесь, что IP-адрес назначен корректно:
    ip a
    

Шаг 6: Дополнительные советы и оптимизация

  • Для сброса всех данных WSL2 и очистки сетевых адаптеров выполните wsl --shutdown.
  • Для статического IP-адреса в WSL2 отредактируйте файлы сетевой конфигурации:
    • Ubuntu (netplan): /etc/netplan/01-netcfg.yaml
    • Общая конфигурация: /etc/dhcpcd.conf
  • Если вам нужна полная изоляция, создайте отдельную NAT-сеть с другим префиксом (например, 192.168.200.0/24).

Проверка результата

После выполнения шагов вы должны увидеть:

  • Корректный IP-адрес 192.168.100.x внутри WSL2 (ip a).
  • Успешные пинг/тесты к хосту Windows.
  • Доступность внешних сервисов через перенаправленные порты (curl, telnet).

Если что-то не работает, вернитесь к шагам и проверьте настройки NAT и брандмауэра.

Возможные проблемы

  • WSL2 не получает IP-адрес – проверьте /etc/wsl.conf и выполните wsl --shutdown && wsl снова.
  • Хост не видит WSL2 – убедитесь, что NAT-сеть включена (Get-NetNat) и брандмауэр Windows не блокирует 192.168.100.0/24.
  • Перенаправление портов не работает – проверьте правила iptables (sudo iptables -t nat -L) и брандмауэр хоста (netsh advfirewall firewall show rule name="AllowWSL2Port").
  • Статический IP-адрес не сохраняется – перезапустите сетевые службы (sudo systemctl restart networking) после редактирования конфигурационных файлов.

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

Как проверить IP-адрес, назначенный WSL2?
Почему WSL2 не видит хост Windows?
Как открыть порт для WSL2, чтобы внешнее приложение могло подключиться?
Можно ли назначить статический IP-адрес в WSL2?

Полезное

Включение WSL2 и Hyper-V
Настройка NAT-сети для обмена трафиком
Подключение WSL2 к NAT-сети
Портовое перенаправление на хост
Проверка подключения
Дополнительные советы и оптимизация

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