Compreendendo a variável de ambiente X Windows DISPLAY ao tunelar

9

Eu quero ssh para servidores remotos, ambos executando CentOScom X11Forwardingativado.

No entanto, o aplicativo X não pode ser executado corretamente em um deles - no host B, ele funciona bem. Mas na IA do host, obtenha o erro "não foi possível conectar à exibição", sempre que inicio o aplicativo X.

Depois de verificar a DISPLAYvariável de ambiente no host A, que eu acho que está relacionada à janela X, achei seu valor localhost:10.0. Seguindo as dicas aqui , eu mudo DISPLAY=0:10.0e funciona. No entanto, DISPLAYno host B ainda está localhost:10.0e funciona bem.

Minha pergunta é: o que o valor DISPLAYrepresenta? Qual é a diferença entre localhost:10.0e 0:10.0?

Diz-se que localhostidentifica um nome de host. Então, qual host ele identifica, o servidor (host A / B) no qual meu aplicativo X está sendo executado ou meu cliente local onde eu quero que a janela X seja exibida?

Quaisquer dicas ou sugestões para a documentação serão apreciadas.

Summer_More_More_Tea
fonte

Respostas:

5

Parte da resposta pode realmente ser encontrada aqui: /programming/746119/how-do-you-use-display-specifications

A variável DISPLAY é basicamente 3 componentes:

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

No que diz respeito ao localhost, também conhecido como 127.0.0.1 vs. 0.0.0.0, aka 0, você pode dar uma olhada neste post:

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

O que explica a diferença.

No seu caso particular, 0.0.0.0:10.0 e localhost: 10.0 teriam o mesmo efeito, mas basicamente significariam:

  1. conectar em qualquer interface que tenha o monitor 10 configurado
  2. conecte em lo0 ao ouvinte da tela 10.

Praticamente não haveria diferença, pois no primeiro caso a varredura de todas as interfaces começaria com lo0, que normalmente é a primeira interface da lista.

Karlson
fonte
11
Obrigado em primeiro lugar. Acho que o verdadeiro problema segue suas dicas. O problema real é que ele localhostestá vinculado 192.168.1.200(algum ip específico como esse. Não quero expor minha configuração real.) No host A. Também funciona na exportação DISPLAY=127.0.0.1:10.0. O encaminhamento X funciona apenas na interface de loopback?
Summer_More_More_Tea
localhosté um nome especial que se liga a uma interface de loopback (lo0) no Linux, nunca deve ser associado a um endereço IP real. Você pode realmente verificar a ligação executando sudo netstat -apn | grep 6010o SSH, que deve estar escutando nessa porta a conexão do monitor. Até onde eu sei, é 127.0.0.1só.
precisa