ServerAdmin.ru
28.9K subscribers
305 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Я практически с самого появления проекта WSL (Windows Subsystem for Linux) на Windows стал им пользоваться. Настроек у него особо никаких нет. Просто ставишь из магазина и всё сразу работает. Используется виртуальный сетевой интерфейс, виртуальный роутер и dhcp сервер. Настроек у всего этого хозяйства нет. IP адреса системы в WSL получают постоянно динамические.

У меня это особо не вызывало проблем, потому что как сервер WSL не использую, и с основной системы обращаться туда нет необходимости. Но в какой-то момент всё равно надоело это и захотелось получить статический IP. На деле это оказалось не так просто. Каких-то инструментов или настроек для этого не существует. По крайней мере я сходу не нашёл. Правда и не сильно искал.

Решил вопрос в лоб и давно уже его использую. Добавил дополнительный IP адрес к виртуальному сетевому интерфейсу в основную систему и в систему WSL. Выглядит это следующим образом для основной системы:

> netsh interface ip add address "vEthernet (WSL)" 192.168.99.1 255.255.255.0

и для WSL (Ubuntu):

# ip addr add 192.168.99.2/24 broadcast 192.168.99.255 dev eth0 label eth0:1

Причём вторую команду не обязательно запускать в WSL. Можно выполнить и с хоста:

> wsl.exe -u root ip addr add 192.168.99.2/24 broadcast 192.168.99.255 dev eth0 label eth0:1;

В итоге, достаточно сделать простенький bat файл, добавить его в стандартный планировщик Windows и запускать при старте системы или при логоне вашего пользователя.

Я сделал такой батник. Добавил небольшую задержу при запуске, потому что без неё иногда команды не отрабатывали. Судя по всему ещё не успевают подняться какие-то службы, необходимые для изменения настроек.

@echo on
TIMEOUT /T 5
wsl.exe -u root ip addr add 192.168.99.2/24 broadcast 192.168.99.255 dev eth0 label eth0:1;
netsh interface ip add address "vEthernet (WSL)" 192.168.99.1 255.255.255.0

Если кто-то знает, как эту задачу решить более красиво и грамотно, поделитесь информацией. Я сделал как обычно в лоб. Решение заработало, поэтому на нём и остался. Основная машина и система в WSL видят друг друга по соответствующим адресам: 192.168.99.1 и 192.168.99.2.

#windows #wsl