DISPLAY=127.0.0.1:0.0
говорит об использовании TCP / IP для подключения к дисплею 0.0
. Распределения не настроили X-серверы на прослушивание TCP в течение пяти и более лет, потому что это ненужная угроза безопасности; вам нужно удалить -nolisten
из того, что вы выполняете X
, если вы действительно хотите использовать TCP, а не доменные сокеты Unix.
Но действительно ли он нужен для прослушивания TCP-соединений? Кажется маловероятным - доменные сокеты Unix (например, /tmp/.X11-unix/X0
) встречаются гораздо чаще, просто используйте DISPLAY=:0.0
, чтобы запросить сокет домена Unix. Возможно, вам понадобится связать сокет с вашей средой chroot, в зависимости от того, откуда начинаются клиент и сервер.
После того, как вы сможете связаться с X-сервером с вашего X-клиента, вам также необходимо аутентифицировать его, используя xauth(1)
. Это раздражает :) и является единственной самой популярной причиной, почему все просто используют SSH X11 forwarding (ssh -X
), а не имеют дело с прослушиванием TCP и xauth
вручную (Кстати, можете ли вы просто запустить sshd «внутри» chroot на другом порту, чтобы вы могли легко получить всю эту магию бесплатно?)