Por que o DISPLAY não pode ser configurado para um nome de host?

3

No CentOS 6.7 quando eu ssh de uma estação de trabalho local em um host remoto e defino a variável DISPLAY env para a estação de trabalho usando o nome do host ou o endereço IP, não consigo abrir nenhum X exibido.

Exemplo:

$ ssh -Y host1
$ export DISPLAY=ws1:0.0    # workstation hostname=ws1
$ xeyes
Can't not open display 

No entanto, os seguintes trabalhos.

$ ssh -Y host1
$ echo $DISPLAY
localhost:10.0
$ xeyes           # works as expected

O que está impedindo o funcionamento do X-display quando eu configuro $ DISPLAY usando um hostname?

    
por BigBrownBear00 12.05.2017 / 03:01

1 resposta

2

O acesso remoto a servidores X é geralmente proibido hoje em dia devido a sérios problemas de segurança.

Os firewalls e / ou as configurações do servidor X impedem que essas conexões sejam bem-sucedidas.

Somente soquetes de domínio local e Unix podem ser conectados, portanto, apenas localhost: servidor [.display] ou nenhum host : server [.display] são configurações utilizáveis.

Para descobrir se o seu servidor X está escutando uma porta TCP, você pode executar este comando e ver se o servidor X (ou ssh no caso de tunelamento) aparece usando portas no intervalo 6000+:

$ sudo netstat -anp|grep -w LISTEN

Se o seu servidor escutar apenas soquetes unix, isso será mostrado usando lsof :

$ sudo lsof -p $(pgrep Xorg)

Esse tipo de linha representa soquetes unix:

Xorg    1874 root   21u     unix 0xffff8800d5db4000      0t0      21169 @/tmp/.X11-unix/X0 type=STREAM

Para identificar todos os processos que escutam em uma porta TCP, você pode executar este comando:

$ sudo lsof -P | grep -w LISTEN

Por exemplo, aqui está o daemon ssh escutando na porta TCP 22:

sshd       1032              root    4u     IPv6              22727      0t0        TCP *:22 (LISTEN)
    
por 12.05.2017 / 03:18

Tags