Qual é a relação entre DISPLAY: 1.0 e porta 5901

7

Quando eu inicio um novo servidor X usando vncserver eu posso conectá-lo usando a porta 5901. De, digamos, um terminal, eu também posso fazer um:

export DISPLAY =: 1.0 xterm

(é apenas um exemplo)

E eu recebo um xterm no Xvncserver.

Qual é a relação entre: 1.0 e porta 5901?

    
por Cedric Martin 20.08.2012 / 18:55

2 respostas

11

A porta 5901, geralmente por convenção Porta 5900 + XDisplaynumber, é a porta TCP na qual o serviço VNC escuta. Essa é a relação deles. Na verdade, você pode usar portas TCP arbitrárias com números de exibição X arbitrários.

O serviço VNC serve para transportar entrada (mouse, teclado) do cliente para o servidor e saída (uma imagem) do servidor para o cliente. Isso não precisa ter nada com o X. Por exemplo, na virtualização, o VNC é frequentemente usado para tornar o terminal "físico" de uma máquina virtual acessível remotamente.

O Sistema X11 é muito mais complexo do que isso e os programas o usam para interagir com o Xserver e entre si. Em palavras no mundo X é um pouco não intuitivo no início, então o significado de saída, sede, tela, display, servidor, cliente precisa ser aprendido e merece alguma consideração.

Para sua pergunta: um Xdisplay é o núcleo lógico de qualquer instância X. Quando você inicia um programa, esse programa é um Xclient e se conecta à exibição fornecida de um Xserver. :1.0 é na verdade uma abreviação e significa "exibir 1 no host local". Você pode fornecer um nome de host ou endereço IP, por exemplo, DISPLAY = 192.168.1.2: 3.0 para ter o programa em que você está prestes a se conectar ao Xdisplay 3 no computador (remoto) com o endereço IP fornecido.

X e VNC são dois serviços totalmente diferentes implementados para diferentes propósitos com objetivos diferentes. (Pode-se argumentar que alguns / mais objetivos do VNC também foram objetivos ao desenvolver o X, mas isso é um tanto acadêmico e muito profundo.)

Ao usar o Xvncserver, ambos os conceitos são combinados de volta para trás. Portanto, há um Xserver com o qual Xclients se comunica "da maneira normal", mas em vez de usar o hardware disponível para interagir com um usuário, o Xvncserverit implementa um servidor VNC, ao qual um cliente VNC pode se conectar.

    
por 20.08.2012 / 19:33
4

Inerentemente, nenhum.

Quando você executa o xvncserver , ele precisa fazer duas coisas.

  1. Abra uma porta de escuta (que para o VNC é 5901
  2. Crie um destino de exibição

O alvo de exibição pode ser qualquer número. Comumente, o login no console via X usará a exibição :0 . Não é necessário fazer login no console primeiro e, em seguida, usar startx :36 . O VNC usa 1.0 por padrão porque é provavelmente a primeira exibição disponível.

Estes dois são escolhidos por convenção , não há magia que os une, exceto o processo em execução anexado a ambos.

    
por 20.08.2012 / 19:02

Tags