Розуміння змінної середовища X Windows DISPLAY під час тунелювання


9

Я хочу ssh на віддалені сервери, обидва CentOSз X11Forwardingвключеними.

Однак програма X не може працювати належним чином на одному з них - на хості B він працює чудово. Але на AI хоста я отримую помилку "не вдалося підключитися до відображення", кожного разу запускаючи X-додаток.

Перевіривши DISPLAYзмінну середовища на хості A, яка, на мою думку, пов'язана з вікном X, я знайшов її значення localhost:10.0. Дотримуючись тут порад , я змінююсь, DISPLAY=0:10.0і це працює. Однак DISPLAYна хості В все ще є localhost:10.0і працює добре.

Моє запитання: що являє собою значення DISPLAY? У чому різниця між localhost:10.0і 0:10.0?

Кажуть, що localhostвизначає ім'я хоста. Тоді який хост він ідентифікує, сервер (хост A / B), на якому працює моя програма X, або мій локальний клієнт, де я хочу відобразити вікно X?

Будь-які підказки чи покажчики до документації будуть вдячні.

Відповіді:


5

Частину відповіді можна знайти тут: /programming/746119/how-do-you-use-display-specifications

Змінна DISPLAY - це в основному 3 компоненти:

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

Що стосується localhost aka 127.0.0.1 проти 0.0.0.0 aka 0, ви можете поглянути на цю публікацію:

/server/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, що зазвичай є першим інтерфейсом у списку.


1
Спасибі спочатку Я знаходжу справжню проблему з дотриманням ваших порад. Справжня проблема полягає в тому, що localhostпов'язано 192.168.1.200(якийсь конкретний ip подібний. Я не хочу виставляти реальну конфігурацію.) На хост A. Він також працює при експорті DISPLAY=127.0.0.1:10.0. Чи працює переадресація X лише в інтерфейсі зворотного зв'язку?
Summer_More_More_Tea

localhostце спеціальне ім'я, яке пов'язується з інтерфейсом зворотного зв'язку (lo0) в Linux, він ніколи не повинен прив'язуватися до реальної IP-адреси. Ви дійсно можете перевірити прив'язку, запустивши sudo netstat -apn | grep 6010ваш SSH, слід слухати на цьому порту для підключення до дисплея. Наскільки я можу сказати, це 127.0.0.1тільки.
Карлсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.