web-development-kb-pt.site

Diferenças entre VNC e ssh -X

Por que você usaria o VNC (ou, nesse caso, o NX) em vez de apenas usar ssh -X (-Y). Eu li que o VNC usa menos largura de banda, mas existem outras diferenças/vantagens com a respectiva ferramenta?

29
The Silent Boatman

Além dos problemas de largura de banda e latência (que podem variar um pouco), as grandes diferenças são a funcionalidade que ele fornece.

O VNC exporta uma sessão inteira, desktop e tudo, enquanto o ssh executa um único programa e mostra suas janelas na estação de trabalho.

O servidor VNC exporta uma sessão que sobrevive mesmo quando você desconecta a tela e você pode reconectá-la posteriormente com todas as janelas abertas etc. Isso não é possível com um túnel X ssh, pois quando o servidor X morre, as janelas desaparecem. .

30
dkagedal

ssh -X redireciona os comandos do X11 para o servidor X local. Portanto, é como se você estivesse executando o programa localmente, quando ele realmente está sendo executado no computador do outro lado. É muito lento porque usa muita largura de banda. (É disso que as pessoas estão falando quando dizem que o X11 é "transparente à rede".)

O VNC e outros aplicativos de área de trabalho remota permitem que o outro computador processe todos os desenhos gráficos e assim por diante e captura, em essência, uma captura de tela e a envia de volta ao seu computador. Pode parecer muito mais rápido, porque é necessária muito menos informação para exibir tudo. No entanto, ele também envia toda a área de trabalho, em vez de um único aplicativo.

Eu não recomendo usar ssh -X na Internet, por um simples motivo: will use toda a largura de banda disponível. É bastante útil em uma LAN, na minha opinião, portanto, se você só precisa de um aplicativo e não deseja executar uma área de trabalho inteira, este é um bom caminho a percorrer. Caso contrário, basta usar o VNC.

9
greyfade

O VNC compartilhará uma área de trabalho inteira de um sistema remoto. Requer uma área de trabalho completa no sistema remoto.

o ssh -X permite executar um único aplicativo X a partir de um servidor remoto. O sistema remoto não precisa estar executando uma área de trabalho completa, e muitas vezes você só precisa de alguns pacotes para instalar no sistema remoto.

ssh -X pode ser útil ao instalar pacotes de software complexos em uma conexão remota. Alguns produtos de software podem usar um instalador da GUI (Oracle Database, etc). Não quero instalar e uma área de trabalho do Gnome completa no meu servidor remoto. Portanto, você instala um ou dois pacotes X11 (Xauth?) No servidor remoto e permite que o DBA execute o instalador do Oracle remotamente usando algo simples como 'ssh -X/media/cdrom/Oracle-installer'.

4
Stefan Lasiewski

Há também uma vantagem de segurança ao usar o VNC ou o NX (X2Go). Um aplicativo mal-intencionado não pode capturar capturas de tela ou usar um keylogger para registrar as chaves da área de trabalho real, enquanto é possível usar o SSH com encaminhamento X11, mesmo que o aplicativo mal-intencionado seja executado em segundo plano.

Se você usa SSH -X (ou -Y), deve confiar no aplicativo (por exemplo, aplicativo de código aberto que vem de um pacote de distribuição oficial do Linux) ou evitar realizar trabalhos confidenciais enquanto o executa.

Consegui verificar isso com essas ferramentas de plataforma cruzada e de código aberto (testadas em um contêiner LXC):

https://github.com/lxqt/screengrab

https://github.com/GiacomoLaw/Keylogger

1
baptx