Перейти к содержанию

Добавление внешнего доступа для WSL

Если есть выбор, то рекомендуется серверную часть ПО Гамма устанавливать на Linux (проще всего на CentOS). Т.к. установка на Windows предъявляет гораздо большие системные требования к оборудованию. Кроме того, традиционно продукты на Linux работают стабильнее и безопаснее с точки зрения внешнего доступа и взлома.

Кроме того, виртуальная машина Windows (WSL) имеет такую особенность, что по умолчанию, она не даёт подключаться другим машинам из сети в целях изоляции контейнеров. Поэтому нужно добавлять переадресацию порта редиса в сторону локального адреса, тогда работает доступ из вне. Т.е. вы не сможете подключиться с удаленного компьютера (клиентской части) к серверу, пока не сделаете ряд настроек.

Данная особенность Windows описана тут:

https://learn.microsoft.com/en-us/windows/wsl/networking#accessing-a-wsl-2-distribution-from-your-local-area-network-lan

Чтобы изменить данную настройку, необходимо однократно внести следующие настройки через командную строку:

netsh interface portproxy add v4tov4 listenport=34784 listenaddress=0.0.0.0 connectport=34784 connectaddress=127.0.0.1

netsh interface portproxy add v4tov4 listenport=8041 listenaddress=0.0.0.0 connectport=8041 connectaddress=127.0.0.1

netsh interface portproxy add v4tov4 listenport=8112 listenaddress=0.0.0.0 connectport=8112 connectaddress=127.0.0.1

Данная команда возвращает настройки назад, если необходимо:

netsh interface portproxy reset

Настройки для IPv6

В некоторых случаях рабочие станции могут использовать современный протокол IP6, это можно увидеть с помощью команды:

netstat -an | FINDSTR 34784

В результате будет получен подобный отклик:

Если во втором столбце указан адрес 127.0.0.1:34784, значит на сервере используется IP адреса версии 4 (старый, наиболее часто используемый вариант), в этом случае используем следующие команды:

netsh interface portproxy add v4tov4 listenport=34784 listenaddress=0.0.0.0 connectport=34784 connectaddress=127.0.0.1

netsh interface portproxy add v4tov4 listenport=8041 listenaddress=0.0.0.0 connectport=8041 connectaddress=127.0.0.1

netsh interface portproxy add v4tov4 listenport=8112 listenaddress=0.0.0.0 connectport=8112 connectaddress=127.0.0.1

Если во втором столбце НЕ указан адрес 127.0.0.1:34784, при этом указан адрес в формате IP версии 6:

[::1]:34784

то это означает, что на сервере используется современный протокол IP и нужно использовать следующие команды:

netsh interface portproxy add v4tov6 listenport=34784 listenaddress=0.0.0.0 connectport=34784 connectaddress=::1

netsh interface portproxy add v4tov6 listenport=8041 listenaddress=0.0.0.0 connectport=8041 connectaddress=::1

netsh interface portproxy add v4tov6 listenport=8112 listenaddress=0.0.0.0 connectport=8112 connectaddress=::1

Результат выполнения данной команды можно проверить с помощью команды

netsh interface portproxy show all

Должно быть написано, что слушает порт IP4 и переносит на IP6: