Не удается установить пересылку 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
,
- Если я продолжу закрывать Xming на удаленной машине с Windows 10, Gvim будет жаловаться, что он
Вопрос: посоветуйте, пожалуйста, правильные настройки для машины с 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 может отличаться.