Servidor VNC sem sistema X Window

Servidor VNC sem sistema X Window

Um servidor VNC funcionará sem o X Server instalado? Eu sei que o vnc funciona com o X Server, mas e sem ele?

Responder1

Não, você normalmente precisará do X instalado no servidor para o qual você está remotamente usando o VNC, pois ele apenas exibe uma área de trabalho X deste servidor.

Na computação, Virtual Network Computing (VNC) é um sistema gráfico de compartilhamento de área de trabalho que usa o protocolo Remote Frame Buffer (RFB) para controlar remotamente outro computador. Ele transmite os eventos do teclado e do mouse de um computador para outro, retransmitindo as atualizações da tela gráfica na outra direção, por meio de uma rede.

Esta parte pode ser o que confunde as pessoas:

Observe que a máquina em que o servidor VNC está sendo executado não precisa ter um display físico. No método normal de operação, um visualizador se conecta a uma porta no servidor (porta padrão 5900).

Quando mencionam “Display”, estão falando de um monitor físico. O servidor remoto ainda requer que o X seja instalado e configurado para que as áreas de trabalho GUI possam ser executadas.

E quanto ao Xvnc, X11vnc e vncserver?

Xvnc

Xvncé um servidor X11 que você pode executar de forma independente, mas ainda exigirá um desktop para operá-lo; caso contrário, ao iniciá-lo, você verá apenas uma janela preta. Portanto, o Xvnc não requer tecnicamente a instalação do X, pois contém seu próprio servidor X.

Portanto, o Xvnc é na verdade dois servidores em um. Para as aplicações é um servidor X, e para os usuários VNC remotos é um servidor VNC. Por convenção, combinamos que o número de exibição do servidor VNC será igual ao número de exibição do servidor X, o que significa que você pode usar, por exemplo. snoopy:2 para se referir ao display 2 na máquina 'snoopy' tanto no mundo X quanto no mundo VNC.

Normalmente você iniciará o Xvnc usando o script vncserver, que foi projetado para simplificar o processo e é escrito em Perl. Provavelmente você desejará editá-lo de acordo com suas preferências e condições locais. Recomendamos usar o vncserver em vez de executar o Xvnc diretamente, mas o Xvnc tem essencialmente as mesmas opções de um servidor X padrão, com algumas extensões. Executar Xvnc -h exibirá uma lista.

$ export DISPLAY=localhost:1.0
$ /usr/bin/Xvnc :1 -ac -auth "/root/.Xauthority" \
    -geometry "1200x700" -depth 8 -rfbwait 120000 \
    -rfbauth /root/.vnc/passwd 2> /root/.vnc/ServerDaemon.log &
$ /bin/sleep 10
$ /usr/bin/fvwm 2> /root/.vnc/fvwm.log &
x11vnc

Onde o Xvnc contém seu próprio servidor X,x11vncnão. É um servidor VNC que se integra a um servidor X já em execução, Xvnc ou Xvfb. Ele tem a característica única de ser capaz de se conectar a coisas que possuem um framebuffer.

excerto

x11vnc mantém uma cópia do buffer de quadros do servidor X na RAM. A interface de programação X11 XShmGetImage é usada para recuperar os dados de pixel do buffer de quadro. x11vnc compara o buffer de quadros do servidor X com sua cópia para ver quais regiões de pixels foram alteradas (e, portanto, precisam ser enviadas aos visualizadores VNC).

excerto

Ele permite o acesso remoto de um cliente remoto a um computador que hospeda uma sessão X Window e ao software x11vnc, pesquisando continuamente o buffer de quadros do servidor X em busca de alterações. Isso permite ao usuário controlar seu desktop X11 (KDE, GNOME, XFCE, etc.) a partir de um computador remoto na própria rede do usuário ou pela Internet, como se o usuário estivesse sentado na frente dele. O x11vnc também pode pesquisar dispositivos de buffer de quadros não X11, como webcams ou placas sintonizadoras de TV, iPAQ, Neuros OSD, o console Linux e a tela gráfica do Mac OS X.

O x11vnc não cria uma tela extra (ou área de trabalho X) para controle remoto. Em vez disso, ele usa a exibição X11 existente mostrada no monitor de um computador semelhante ao Unix em tempo real, ao contrário de outras alternativas do Linux, como o TightVNC Server. No entanto, é possível usar Xvnc ou Xvfb para criar uma exibição extra 'virtual' e conectar o x11vnc a ela, permitindo o acesso do X-11 a servidores headless.

servidor vnc

vncserveré apenas um script Perl de front-end que ajuda a aliviar a complexidade de configuração do VNC + X em servidores remotos aos quais você usará o VNC para se conectar.

vncserver é usado para iniciar um desktop VNC (Virtual Network Computing). vncserver é um script Perl que simplifica o processo de inicialização de um servidor Xvnc. Ele executa o Xvnc com opções apropriadas e inicia um gerenciador de janelas na área de trabalho do VNC.

Referências

Responder2

Se você não estiver executando o X11 (X), mas usando o framebuffer, existe o framebuffer-vncserver.https://github.com/ponty/framebuffer-vncserver Isso funciona bem, com a exceção de que não suporta entrada. Isso é fácil de contornar, injetando entrada diretamente no lado do servidor.

informação relacionada