Вопрос Понимание переменной среды X Windows DISPLAY при туннелировании


Я хочу ssh для удаленных серверов, работающих CentOS с X11Forwarding включен.

Однако приложение X не может работать должным образом на одном из них - на хосте B он работает нормально. Но на хосте A я получаю сообщение об ошибке «не удалось подключиться к показу» при каждом запуске приложения X.

После проверки DISPLAY переменная среды на хосте A, которая, как я думаю, связана с окном X, я нашел ее значение localhost:10.0, Следуя советам Вот, Я меняю DISPLAY=0:10.0 и это работает. Однако, DISPLAY на хосте B все еще localhost:10.0 и отлично работает.

Мой вопрос: каково значение в DISPLAY представлять? В чем разница между localhost:10.0 а также 0:10.0?

Он сказал, что localhost идентифицирует имя хоста. Затем какой хост он идентифицирует, сервер (хост A / B), на котором работает мое приложение X, или мой локальный клиент, где я хочу, чтобы окно X отображалось?

Любые намеки или указатели на документацию будут оценены.


9
2017-12-16 05:30


происхождения




ответы:


Часть ответа действительно может быть найдена здесь: https://stackoverflow.com/questions/746119/how-do-you-use-display-specifications

Переменная DISPLAY состоит в основном из трех компонентов:

<host>:<display>[.<screen>]

Что касается localhost aka 127.0.0.1 vs. 0.0.0.0 aka 0, вы можете посмотреть этот пост:

https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

Это объясняет разницу.

В вашем конкретном случае 0.0.0.0:10.0 и localhost: 10.0 будут иметь такой же эффект, но в основном означают:

  1. подключайтесь к любому интерфейсу, на котором настроен дисплей 10
  2. подключитесь на lo0 к слушателю дисплея 10.

Практически не было никакой разницы, поскольку в первом случае сканирование всех интерфейсов начиналось бы с lo0, который обычно является первым интерфейсом в списке.


5
2017-12-19 16:32



Спасибо, сначала. Я считаю, что настоящая проблема следует вашим советам. Реальная проблема заключается в том, что localhost привязана 192.168.1.200(какой-то конкретный ip вроде этого. Я не хочу раскрывать свою реальную конфигурацию.) на хосте A. Он также работает при экспорте DISPLAY=127.0.0.1:10.0, Передает ли X пересылка только на интерфейс обратной петли? - Summer_More_More_Tea
localhost это специальное имя, которое привязывается к интерфейсу loopback (lo0) в Linux, оно никогда не должно привязываться к реальному IP-адресу. Вы можете проверить привязку, выполнив sudo netstat -apn | grep 6010 ваш SSH должен прослушивать этот порт для подключения к дисплею. Насколько я могу судить, это 127.0.0.1 только. - Karlson
Задача решена. Большое спасибо. - Summer_More_More_Tea