Вопрос или проблема
На Windows 10 у меня установлен Ubuntu WSL 20.04, и я хочу подключить Ethernet-соединение через конкретный Ethernet-интерфейс. В PowerShell Windows я получаю следующую информацию для этого конкретного устройства:
Адаптер беспроводной сети WLAN:
Специфичный для подключения DNS-суффикс . :
Описание . . . . . . . . . . . : Intel(R) Wi-Fi 6 AX201 160MHz
Физический адрес. . . . . . . . . : 3C-E9-F7-A7-1C-0F
DHCP включен. . . . . . . . . . . : Да
Автоконфигурация включена . . . . : Да
Локальный IPv6-адрес . . . . . . : fe80::5c2a:e902:799d:9451%10(Предпочтительный)
IPv4-адрес. . . . . . . . . . . : 192.168.177.238(Предпочтительный)
Маска подсети . . . . . . . . . . : 255.255.255.0
Лизинг получен. . . . . . . . . . : Среда, 21 августа 2024 17:10:37
Лизинг истекает . . . . . . . . . . : Среда, 21 августа 2024 18:10:37
Шлюз по умолчанию . . . . . . . . . : 192.168.177.48
DHCP-сервер . . . . . . . . . . . : 192.168.177.48
DHCPv6 IAID . . . . . . . . . . . : 104655351
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2B-50-68-10-3C-E9-F7-A7-1C-0F
DNS-серверы . . . . . . . . . . . : 192.168.177.48
NetBIOS через Tcpip. . . . . . . . : Включен
А в WSL я получаю для ip addr show
следующее:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:67:b4:8c brd ff:ff:ff:ff:ff:ff
inet6 fe80::215:5dff:fe67:b48c/64 scope link
valid_lft forever preferred_lft forever
Хорошо, сейчас я не могу пинговать ничего (так как пытался настроить это самостоятельно, но не удалось). Как убедиться, что я могу получить доступ в интернет из WSL через это устройство “WLAN” в Windows? Как это настроить?
С недавними версиями WSL2 это возможно, использовав “зеркальный” режим сети, но только с Windows 11 23H2. Эта функция на данный момент не была возвращена в WSL10.
(Большая часть информации ниже скопирована из моего ответа на Super User по смежной теме), который стоит прочитать для получения дополнительной информации.
В Зеркальном режиме сетевые интерфейсы из Windows зеркалируются в WSL2, так что вы сможете видеть и взаимодействовать с интерфейсом WLAN напрямую (см. оговорку ниже).
Если вы можете обновиться до Windows 11, режим зеркальной сети можно включить в WSL 2 2.0.0 (это WSL2, использующий версию приложения WSL 2.0.0) или новее, установленной из Microsoft Store (или вручную).
Чтобы включить зеркальный режим:
-
Добавьте следующее в ваш
<windows_user_profile>/.wslconfig
:[wsl2] networkingMode=mirrored
-
Выход из вашего дистрибутива WSL
-
Запустите
wsl --shutdown
из PowerShell, затем перезапустите WSL
Запуск ip addr
и ip link
теперь должен показывать все физические интерфейсы (и некоторые виртуальные) из Windows, с возможностью маршрутизации между ними по желанию.
Обратите внимание, что WiFi-интерфейсы в Windows будут отображаться как проводные сетевые интерфейсы в этом режиме. Некоторые другие ограничения могут применяться, но, по крайней мере, вы сможете включать и выключать эти интерфейсы из WSL2.
Но что если мне нужно, чтобы WSL имел новый IP в диапазоне IP моей команды? Например: мой хост: 192.168.2.2, и я хочу, чтобы мой WSL имел IP 192.168.2.#
Ответ или решение
Для настройки Ethernet-интерфейса в WSL (Ubuntu 20.04) на Windows 10 вам нужно учитывать несколько аспектов сетевой конфигурации. Ниже приведены подробные шаги для настройки подключения и получения доступа к интернету через WLAN-адаптер на вашем компьютере.
Определение текущей конфигурации сети
Сначала важно понять вашу текущую конфигурацию сети. Из команд, которые вы привели, видно, что у вас есть Ethernet-интерфейс (eth0), который присвоен WSL, но он не имеет корректных настроек IP для доступа к интернету.
- Получите информацию о текущем состоянии сетевых интерфейсов в Windows:
- Откройте PowerShell и выполните следующую команду:
Get-NetIPAddress
- Откройте PowerShell и выполните следующую команду:
Конфигурация WSL для использования WLAN
С тех пор как выпустили WSL 2, появилась возможность использовать режим «зеркальной связи» (mirrored mode), однако это доступно только в Windows 11, начиная с версии 23H2. Если у вас Windows 10, вы не сможете использовать эту функцию. Тем не менее, вы можете настроить статические маршруты или VPN для решения проблемы.
Шаги для настройки статического IP в WSL
Ваша цель — получить доступ к интернету через WLAN. Вы можете попробовать назначить WSL статический IP-адрес, который будет находиться в том же диапазоне, что и ваш основной IP-адрес.
-
Определите сетевой диапазон вашего WLAN-адаптера:
- Ваша текущая конфигурация WLAN показывает, что ваш основной IP-адрес — 192.168.177.238. Отсюда диапазон вашего подсети составляет 192.168.177.1 — 192.168.177.254.
-
Настройка статического IP-адреса в WSL:
- Откройте WSL и выполните:
sudo nano /etc/netplan/01-netcfg.yaml
- Добавьте следующую конфигурацию:
network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: - 192.168.177.239/24 gateway4: 192.168.177.1 nameservers: addresses: - 192.168.177.48 - 8.8.8.8
- Здесь задается статический IP-адрес 192.168.177.239 для вашего WSL-интерфейса (выберите любой другой, уникальный адрес из диапазона).
- Откройте WSL и выполните:
-
Применение изменений:
- Сохраните файл (CTRL + O, затем ENTER) и выйдите (CTRL + X).
- Примените изменения с помощью команды:
sudo netplan apply
Проверка соединения
Теперь проверьте соединение с интернетом. Попробуйте выполнить пинг до какого-либо внешнего адреса:
ping 8.8.8.8
Если соединение работает, WSL будет правильно настроен для использования вашего WLAN-адаптера. Если нет, проверьте конфигурацию файлов и маршрут.
Заключение
Таким образом, настройка Ethernet-интерфейса в WSL под WLAN-адаптер Windows 10 включает в себя определения сетевых параметров и статическую конфигурацию IP. Следует учитывать, что в некоторых случаях может потребоваться использование VPN или иных решений для обеспечения доступа, особенно если вы работаете в сетевой среде с управляемым DNS- или DHCP-сервером.
Если у вас возникнут дополнительные вопросы или трудности в процессе настройки, не стесняйтесь обратиться за помощью к специалисту по сетям.