9

Я хочу использовать 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 ответ1

5

Часть ответа можно найти здесь: 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, который обычно является первым интерфейсом в списке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .