Como os clientes X sabem que precisarão se conectar à porta TCP 6000 + número de exibição?

5

Quando solicito o encaminhamento X do servidor SSH, o servidor SSH define uma variável $DISPLAY com o valor localhost:10.0 . Além disso, ele começa a escutar 127.0.0.1 port 6010 (e também ::1 port 6010 para IPv6):

Netid  State      Recv-Q Send-Q                                     Local Address:Port                                                      Peer Address:Port                
LISTEN     0      128                                               127.0.0.1:6010                                                                    *:*                     users:(("sshd",pid=11405,fd=10))

Como os clientes X sabem que precisam se conectar à porta TCP 6010? Isso funciona de uma forma que, por padrão, eles se conectam à porta TCP 6000 + <display number> e como o número de exibição está neste exemplo 10, então eles se conectarão à porta TCP 6010 ?

    
por Martin 31.12.2016 / 14:35

2 respostas

16

Faz parte do protocolo X11 (procure por "6000") e está documentado por exemplo em Xorg(1) :

Xorg listens on port 6000+n, where n is the display number. This connection type can be disabled with the -nolisten option (see the Xserver(1) man page for details).

    
por 31.12.2016 / 15:06
2

Sim.

Assim como os navegadores sabem se conectar a um servidor na porta 80 (a menos que especificado de outra forma), os clientes X sabem falar com os servidores X na porta 6000 + número de exibição (a menos que especificado de outra forma).

Essas expectativas são o que os padrões (e, mais amplamente, a documentação) nos dão - caso contrário, a interação entre os computadores seria extremamente incômoda.

    
por 31.12.2016 / 18:39