Zrozumienie zmiennej środowiskowej X Windows DISPLAY podczas tunelowania

9

Chcę ssh na zdalne serwery, oba uruchomione CentOSz X11Forwardingwłączonym.

Jednak aplikacja X nie działa poprawnie na jednym z nich - na hoście B działa dobrze. Ale na hoście AI pojawia się błąd „nie można połączyć się z wyświetlaczem” za każdym razem, gdy uruchamiam aplikację X.

Po sprawdzeniu DISPLAYzmiennej środowiskowej na hoście A, która moim zdaniem jest związana z oknem X, znalazłem jej wartość localhost:10.0. Postępując zgodnie ze wskazówkami tutaj , zmieniam się DISPLAY=0:10.0i to działa. Jednak DISPLAYna hoście B jest nadal localhost:10.0i działa dobrze.

Moje pytanie brzmi: co reprezentuje wartość DISPLAY? Jaka jest różnica między localhost:10.0i 0:10.0?

Mówi się, że localhostidentyfikuje nazwę hosta. Następnie, który host identyfikuje, serwer (host A / B), na którym działa moja aplikacja X lub mój lokalny klient, w którym chcę wyświetlić okno X?

Wszelkie wskazówki lub wskazówki dotyczące dokumentacji będą mile widziane.

Summer_More_More_Tea
źródło

Odpowiedzi:

5

Część odpowiedzi można znaleźć tutaj: /programming/746119/how-do-you-use-display-specifications

Zmienna DISPLAY składa się zasadniczo z 3 elementów:

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

Jeśli chodzi o localhost aka 127.0.0.1 vs. 0.0.0.0 aka 0, możesz spojrzeć na ten post:

/server/78048/whats-the-difference-between-ip-address-0-0-0-0- i-127-0-0-1

Co wyjaśnia różnicę.

W twoim konkretnym przypadku 0.0.0.0:10.0 i localhost: 10.0 miałyby ten sam efekt, ale w zasadzie oznaczają:

  1. podłącz do dowolnego interfejsu, który ma skonfigurowany wyświetlacz 10
  2. podłącz lo0 do detektora wyświetlacza 10.

Praktycznie nie byłoby różnicy, ponieważ w pierwszym przypadku skanowanie wszystkich interfejsów rozpoczynałoby się od lo0, który zwykle jest pierwszym interfejsem na liście.

Karlson
źródło
1
Dziękuję na początku. Uważam, że prawdziwym problemem jest podążanie za wskazówkami. Prawdziwy problem polega na tym, że localhostjest on powiązany 192.168.1.200(niektóre takie IP. Nie chcę ujawniać mojej prawdziwej konfiguracji.) Na hoście A. Działa to również podczas eksportu DISPLAY=127.0.0.1:10.0. Czy przekazywanie X działa tylko na interfejsie sprzężenia zwrotnego?
Summer_More_More_Tea
localhostto specjalna nazwa, która wiąże się z interfejsem pętli zwrotnej (lo0) w systemie Linux i nigdy nie powinna być powiązana z rzeczywistym adresem IP. Możesz sprawdzić powiązanie, uruchamiając sudo netstat -apn | grep 6010SSH, który powinien nasłuchiwać na tym porcie dla połączenia z wyświetlaczem. O ile mogę powiedzieć, to 127.0.0.1tylko.
Karlson,