Как прокинуть WSL2 наружу?

Такой вопрос задавал пару лет назад: https://qna.habr.com/q/906041 и получил ответ. Сейчас понадобилось это повторить, но способ уже нерабочий, видать что-то изменилось за это время.

Итак, есть WSL2 с Debian. Ip: 172.28.45.56, в нем запускаю для теста
php -S 0.0.0.0:80

По 127.0.0.1 и 172.28.45.56 из Windows сервер отвечает. Ок. Для чистоты эксперимента отключаю виндовый брандмауэр, хотя правило настроено для 80-го порта.
Выполняю:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.28.45.56


Но подключения извне нет (пока тестирую в рамках локалки). Как это дело настроить?
  • Вопрос задан
  • 4831 просмотр
Решения вопроса 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
В Hyper-V Manager - Virtual Switch Manager для virtual switch WSL - поставьте External - тогда WSL должна будет получить внешний ip адрес от того-же DHCP сервера, что и сетевая карта в Windows.
Если в WSL стоит получение адреса не через DHCP, то
sudo ip addr flush dev eth0
sudo dhclient eth0
Если нужно руками настроить, то
sudo ip addr add 192.168.0.116/24 dev eth0

Для тех, кто ленится даже гуглить - есть даже готовый софт https://github.com/CzBiX/WSLHostPatcher
Ответ написан
syamskoy
@syamskoy Автор вопроса
А второе решение оказлось простым: после перезагрузки винды все переадресации нормально заработали.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
wsl2 это обычная виртуальная машина с аппаратной виртуализацией и очень странным кривым маппингом файловой системы на хост (из-за чего возникает куча странностей и проблем) и проблемами с сетью.

поднять полноценную виртуалку (штатную hiperv или virtualbox) - дело десятка минут (debootstrap или развернуть на ram диске обычную установку), так зачем мучиться и решать чуть ли не специально созданные проблемы от майкрософт?

мало того, позже, перенести linux из виртуалку на новое железо - это пара телодвижений, когда как из wsl не так просто.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы