X remoto mais rápido do Windows

12

Eu tenho a seguinte configuração:

|-----------------|                          |---------------|
|   Windows       |     LAN (or VPN)         |    Linux box  |
| (local machine) | <-------------------->   |               |
|-----------------|                          |---------------|

e gostaria de acessar minhas janelas Emacs e Eclipse na caixa Linux da minha máquina Windows com latência mínima .

Minhas opções parecem ser:

  • VNC
  • Virtualização de um convidado Linux no meu host local do Windows usando, por exemplo, Virtualbox com Ubuntu e, em seguida, ssh -Xpara a caixa Linux (aqui está um tópico que discute as configurações para o tunelamento rápido do ssh X )
  • cygwin com um servidor X e ssh -Xna caixa remota.

No momento eu uso o RealVNC, mas notei uma latência notável . Depois de fazer algumas pesquisas, li na Wikipedia o seguinte:

O protocolo VNC é baseado em pixels . Embora isso leve a uma grande flexibilidade (ou seja, qualquer tipo de área de trabalho possa ser exibida), geralmente é menos eficiente do que soluções que compreendem melhor o layout gráfico subjacente, como X11 ou Windows Remote Desktop Protocol

Isso me faz pensar, que opções tenho para obter o acesso mais rápido às janelas X remotas de uma máquina Windows local?

Amelio Vazquez-Reina
fonte
ssh -Xé o que eu uso via massa de vidraceiro, embora alguns colegas usem o xming.
H3rrmiller
O tunelamento ssh vem à mente, mas como você pode controlar a latência introduzida pela rede? A latência da introdução do VNC pode ser significativamente menor do que a introduzida pela rede.
19412 Karlson
Além disso, para o VNC e o ssh-X-forwarding, existe o Spice . Não sei se você pode usá-lo, pois ele é desenvolvido principalmente para máquinas virtuais.
Jofel
Obrigado. @ h3rrmiller Eu pensei que você precisava xming fazer um X remoto com o Putty. Como exatamente você está ssh -Xem Putty? Eu cliquei no Enable X11 forwardingno Putty, mas isso não parece ser suficiente.
Amelio Vazquez-Reina
3
@ user27915816 sim, para o encaminhamento do X11 com massa de vidraceiro, é necessário executar o xming em segundo plano.
Jofel

Respostas:

8

Eu acho que o estado da arte para a largura de banda máxima é o NX , um programa de compressão de protocolo X11. Também deve ter um bom desempenho em relação à latência. Tente usar o cliente Windows NX e o servidor NX gratuito no Linux.

Se possível, use uma conexão TCP direta em vez do SSH. Obviamente, isso só é viável em um ambiente controlado, sem preocupações de segurança.

Eu acho que na maioria das configurações, uma máquina virtual executando localmente fornecerá a melhor latência. Melhor ainda, execute o Emacs e o Eclipse no Windows; faça-os editar arquivos remotos ou (para obter resultados ainda melhores) faça-os editar arquivos locais que você sincroniza com o Unison ou através de um sistema de controle de versão.

Gilles 'SO- parar de ser mau'
fonte
2

A Área de Trabalho Remota do Windows funciona muito bem - desde que você execute o xrdp na caixa Linux (e, na minha experiência, é significativamente menos irritante e mais responsivo que o VNC).

O xrdp executa um servidor X na caixa Linux e conecta-o ao RDP.

De fato, mesmo que eu normalmente tenha Linux nas duas extremidades desse fio, normalmente prefiro o rdesktop ao xrdp sobre o VNC, sempre que o encaminhamento simples do X11 for muito lento. VNC é apenas um acrônimo francês para "não funciona muito bem".

Stabledog
fonte
2

Concordo que o Mobaxterm é rápido no encaminhamento x. Então eu descobri que ele está usando ssh baseado no cygwin, mas ainda é mais rápido que o meu cygwin / ssh. Depois de examinar as informações de depuração, descubro que o segredo do Mobaxterm é usar o aes128-ctr em vez da cifra aes256-cbc mais comum , use o hmac-sha1 e ative a compactação por padrão.

No cygwin,

ssh -m hmac-sha1 -c aes128-ctr -C 

deve fornecer desempenho próximo ao mobaxterm. Se você ainda acredita que o mobaxterm é mais rápido, pode usar diretamente o _ssh.exe, que pode ser encontrado na raiz do mobaxterm.

Alguns blogs / respostas sugeriram cifras como arcfour ou blowfish . Eles devem ser um pouco melhores que o aes128-ctr (para CPU antiga), mas estão desatualizados e não estão necessariamente disponíveis em todas as plataformas. Você pode visualizar todas as cifras e macs suportados

ssh -Q cipher
ssh -Q mac

Este benchmark mostra que o aes128-gcm deve oferecer o melhor desempenho na CPU moderna.

Atualizar:

Alguns sugerem contra compactação. Eu diria que o -C ainda ajuda, a menos que seu teste seja diferente, mesmo que você acredite que sua rede seja perfeita. Como a quantidade de transferência de dados é muito grande e a taxa de compactação é impressionante, por exemplo,

 debug1: compress outgoing: raw data 603154, compressed 141717, factor 0.23 
 debug1: compress incoming: raw data 67841628, compressed 641357, factor 0.01

Na verdade, tentei x encaminhar com tcp direto e ssh com compactação e uma cifra apropriada em uma conexão LAN interna de 100 Mbps com latência <1ms. A opção ssh é obviamente mais rápida.

Haodong Du
fonte
1

Na verdade, fiquei chocado ao descobrir que o Mobaxterm é super rápido.

Sou desenvolvedor de software e uso o IDE chamado Qt Creator. Sabe-se que o Qt Creator é muito, muito rápido, mas o Putty + Xming foi muito lento com isso e eu desisti de usá-lo através de um xserver remoto. Eventualmente, Mobaxterm me chocou com sua velocidade. Tente.

O físico quântico
fonte