Как настроить рабочую пересылку X11 на WSL2 - PullRequest
0 голосов
/ 09 апреля 2020

При переходе с WSL1 на WSL2 многое меняется; очевидно, это относится и к пересылке X11.
Какие шаги мне нужно сделать, чтобы использовать пересылку X11 с WSL2 на Windows 10, как я это делал с WSL1?

1 Ответ

0 голосов
/ 09 апреля 2020

TL; DR:

Добавьте к своему ~/.bashrc следующее:

export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=1

Включите Publi c Доступ на вашем сервере X11 для Windows. *

И запускайте Set-NetFirewallProfile -DisabledInterfaceAliases 'vEthernet (WSL)' из повышенного Powershell на каждом запуске системы.


Как указано WSL_subreddit_mod для reddit и, как вы можете прочитать в Документация Microsoft по WSL2 , архитектура WSL2 использует виртуализированные сетевые компоненты. Это означает, что WSL2 имеет другой IP-адрес, чем хост-машина. Это объясняет, почему настройки пересылки X11 WSL1 нельзя просто перенести в WSL2.

На странице Wiki Ubuntu о WSL вы уже можете найти конфигурацию, адаптированную для WSL2, в разделе Запуск графических приложений . Аналогичная конфигурация также предлагается вышеупомянутым пользователем Reddit, который также вносит свой вклад в другую часть решения: Включить доступ Publi c на сервере X11 в Windows.

Это означает, что добавьте следующее к вашему ~/.bashrc:

export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export LIBGL_ALWAYS_INDIRECT=1

И Включить Publi c Доступ на вашем сервере X11 для Windows. *

Самая важная часть для включения пересылки X11 для WSL2 на Windows 10 по-прежнему отсутствует: брандмауэр Windows блокирует соединения через сетевой интерфейс, настроенный по умолчанию для WSL.
Отдельное правило входящих для TCP-порт 6000 требуется, чтобы разрешить доступ WSL к X-серверу. После того, как правило было создано, как описано wsl- windows -toolbar-launcher people, диапазон IP-адресов может быть ограничен WSL su bnet в настройках вновь созданного правила под Scope : 172.16.0.0 / 12 .

*: если вы используете VcXSrv , вы можете включить доступ publi c для вашего X-сервер, отключив Контроль доступа в дополнительных настройках:
Disable access control VcXSrv
Или позвонив по номеру vcxsrv.exe напрямую с флагом ac: vcxsrv.exe -ac, как указано ameeno о выпуске github.

...