Если нужен доступ в локальную сеть, попробуй настроить переадресацию внешнего порта на локальный порт машины. Это можно сделать с помощью следующей команды:
Код |
---|
netsh interface portproxy add v4tov4 listenport=<локальный порт, на котором ожидается соединение> listenaddress=<локальный адрес, на котором ожидается соединение, или 0.0.0.0 для всех адресов> connectport=<порт назначения, на котором работает твой сервер> connectaddress=<адрес назначения, на котором работает твой сервер> |
Обратите внимание, что адрес назначения не должен быть 127.0.0.1. Используй команду ip a, чтобы узнать, какой адрес был присвоен WSL.
Найдите IP-адрес WSL. Откройте WSL и запустите ifconfig или ip addr show или hostname -I в зависимости от вашего дистрибутива.
Вы можете просмотреть все перенаправленные порты с помощью netsh interface portproxy show v4tov4
Брандмауэр Windows может блокировать эти порты. Чтобы обеспечить доступность портов WSL, можно создать новое правило входящего брандмауэра. Откройте PowerShell как администратор и выполните следующую команду. Замените -LocalPortна список/диапазон нужных вам портов.
Код |
---|
New-NetFirewallRule -DisplayName "WSL2 Port Bridge" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80,443,10000,3000,5000 |
Поздравляем! Ваши порты WSL теперь доступны через IP-адрес вашего компьютера Windows.
Однако есть одна загвоздка. WSL меняет свой IP при каждой перезагрузке Windows.
Ещё один вариант — попробовать включить режим моста между сетевым адаптером и виртуальным коммутатором WSL2. Но если у тебя сеть через Wi-Fi, лучше не рисковать, так как это может привести к разным проблемам. А вот если ты на Ethernet, то можно попробовать.
Для того, чтобы оставлять комментарии, необходимо пройти авторизацию
Авторизоваться