Не удается установить пересылку X11 с WSL-машины

Я установил следующие параметры в мои удаленные машины с поддержкой SSH, надеясь, что смогу запускать программы с графическим интерфейсом через сеансы SSH.

# These settings shall go to `/etc/ssh/sshd_config`.
X11Forwarding yes
X11UseLocalhost no
AllowAgentForwarding yes
X11DisplayOffset 10

Я использую машины Windows 10 с Xming и WSL, локально. На всех локальных + удаленных машинах я установил export DISPLAY=0:0 в моем ~/.bashrc, что соответствует настройке по умолчанию для Xming, которые работают локально.


Тем не менее, он делает разные вещи в зависимости от хоста:

  • Если хост является машиной Linux, когда я использую ssh -X user@host подключиться и затем выстрелить gvim GUI выведен на локальную машину и все хорошо;
  • Если хост является машиной Windows 10 под управлением WSL, в то время как ssh -X user@host действительно ли я получаю доступ к командной строке удаленного компьютера, gvim вместо этого запустит сеанс GUI на удаленной машине.
    • Если я продолжу закрывать Xming на удаленной машине с Windows 10, Gvim будет жаловаться, что он "cannot open display", Это то же самое сообщение об ошибке при попытке выстрелить gvim на удаленной машине локально (Remote Desktop Connecting to the machine).
    • На удаленном компьютере с Windows 10 я использую эту команду для размещения сервера: sudo service ssh start,

Вопрос: посоветуйте, пожалуйста, правильные настройки для машины с Windows 10, чтобы я мог подключать программы с графическим интерфейсом через X11. Спасибо!


Больше отладочной информации

Выдержки из ssh -v -X user@remote_server:

  • С удаленной машины Linux:
Warning: No xauth data; using fake authentication data for X11 forwarding.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LANG = C.UTF-8
Welcome to Linux Mint 18.1 Serena (GNU/Linux 4.4.0-53-generic x86_64)
:: >>Linux-remote<< ::~>>echo $DISPLAY  
localhost:12.0

После дальнейшего тестирования это число будет увеличиваться по мере открытия новых сеансов SSH с удаленным Linux.

  • С удаленного компьютера WSL-Windows-10:
Warning: No xauth data; using fake authentication data for X11 forwarding.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LANG = C.UTF-8
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.4.0-17763-Microsoft x86_64)
:: >>WIn-WSL-Machine<< ::~>>echo $DISPLAY 
0:0

Повторное "эхо" $DISPLAY в сеансе SSH с удаленной машиной WSL-Windows продолжал показывать то же самое 0:0,

PS: я тестировал X-forwaring на той же локальной машине, где сервер Xming работал на локальном порту 0:0, Такой сервер Xming с радостью размещает графический интерфейс своей "локальной" оболочки / системы Windows WSL, а также машины Linux. Теперь мне кажется, что удаленный компьютер с Linux должен использовать порт localhost:12.0

2 ответа

Я столкнулся с той же проблемой и решил ее, установив "DISPLAY=localhost:0.0" вместо "DISPLAY=:0.0" в WSL. См. https://unix.stackexchange.com/questions/57138/why-does-my-x11-forwarding-attempt-fail-with-connect-tmp-x11-unix-x0-no-such

Я видел много примеров использованияresolv.confно у меня это никогда не работало.

я установилDISPLAYв моем.bashrcкакexport DISPLAY="$(/sbin/ip route | awk '/default/ { print $3 }'):0"и он работает отлично.

Теперь я также могу получать цветные приложения x11: РЕШЕНО: приложения x11 в WSL/ubuntu являются только черно-белыми.

Обратите внимание, что это касается WSL 2, WSL 1 может отличаться.

Другие вопросы по тегам