Comprensione della variabile di ambiente DISPLAY di Windows X durante il tunneling


9

Voglio ssh su server remoti, entrambi in esecuzione CentOScon X11Forwardingabilitato.

Tuttavia l'applicazione X non può essere eseguita correttamente su uno di essi: sull'host B funziona correttamente. Ma sull'intelligenza artificiale dell'host viene visualizzato l'errore "impossibile connettersi al display", ogni volta che avvio l'applicazione X.

Dopo aver verificato la DISPLAYvariabile di ambiente sull'host A che penso sia correlata a X window, ho trovato il suo valore localhost:10.0. Seguendo i suggerimenti qui , cambio DISPLAY=0:10.0e funziona. Tuttavia, DISPLAYsull'host B è ancora localhost:10.0e funziona bene.

La mia domanda è: cosa DISPLAYrappresenta il valore in ? Qual è la differenza tra localhost:10.0e 0:10.0?

Si dice che localhostidentifica un nome host. Quindi quale host identifica, il server (host A / B) su cui è in esecuzione la mia applicazione X o il mio client locale in cui si desidera visualizzare la finestra X?

Qualsiasi suggerimento o suggerimento alla documentazione sarebbe apprezzato.

Risposte:


5

Parte della risposta può essere effettivamente trovata qui: /programming/746119/how-do-you-use-display-specifications

La variabile DISPLAY è sostanzialmente 3 componenti:

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

Per quanto riguarda localhost aka 127.0.0.1 vs. 0.0.0.0 aka 0 puoi dare un'occhiata a questo post:

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

Il che spiega la differenza.

Nel tuo caso particolare 0.0.0.0:10.0 e localhost: 10.0 avrebbe lo stesso effetto ma sostanzialmente significano:

  1. connettersi su qualsiasi interfaccia che abbia il display 10 impostato
  2. connettersi su lo0 all'ascoltatore del display 10.

Praticamente non ci sarebbero differenze dal momento che nel primo caso la scansione di tutte le interfacce inizierebbe con lo0, che normalmente è la prima interfaccia nell'elenco.


1
Grazie all'inizio. Trovo che il vero problema segua i tuoi consigli. Il vero problema è che localhostè associato 192.168.1.200(un IP specifico come quello. Non voglio esporre la mia vera configurazione.) Sull'host A. Funziona anche durante l'esportazione DISPLAY=127.0.0.1:10.0. L'inoltro X funziona solo sull'interfaccia di loopback?
Summer_More_More_Tea

localhostè un nome speciale che si lega a un'interfaccia di loopback (lo0) su Linux e non dovrebbe mai essere associato a un indirizzo IP reale. Puoi effettivamente controllare l'associazione eseguendo il sudo netstat -apn | grep 6010tuo SSH dovrebbe essere in ascolto su quella porta per la connessione del display. Per quanto ne so, è 127.0.0.1solo.
Karlson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.