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

Я хочу, чтобы SSH к удаленным серверам, оба работают CentOS с X11Forwarding включен.

Однако приложение X не может работать должным образом на одном из них - на хосте B оно работает нормально. Но на AI хоста появляется сообщение об ошибке "Не удается подключиться к дисплею" при каждом запуске приложения 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-окно отображалось?

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

1 ответ

Решение

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

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

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

Что касается localhost aka 127.0.0.1 против 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, который обычно является первым интерфейсом в списке.

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