Reencaminhamento X mais eficiente?

3

Eu abro programas remotos GUI por SSHing com o sinalizador -X (ou -Y ), por exemplo,

$ ssh -Y [email protected]

Recentemente, descobri que há uma maneira muito mais eficiente de fazer isso apenas com a navegação na Web:

$ ssh -DNNNN [email protected]

em que NNNN é um número de porta de quatro dígitos. Então eu configuro meu navegador local para conectar através de um proxy através da porta NNNN. Isso é muito mais eficiente do que o primeiro método SSH porque todas as informações da GUI não precisam ser transportadas pelo túnel, apenas os dados da web que estou solicitando.

Minha pergunta é: existe uma maneira mais eficiente de o SSH ser encaminhado para X em geral ? Talvez algum esquema que utiliza bibliotecas locais ou renderização ou algo para auxiliar na operação de um programa GUI hospedado remotamente?

    
por user1717828 31.05.2016 / 16:38

3 respostas

8

Você está misturando termos. A primeira coisa é o encaminhamento do X11 e ele é ineficiente por definição e você não pode fazer quase nada sobre isso (ele não é feito para conexões de alta latência e décadas atrás). Em comparação com o outro método, ele é ineficiente, porque está transferindo gui inteiro (de broswer?) sobre o newtwork.

O outro é o proxy SOCKS (coisa completamente diferente) e transfere apenas os dados de rede que você está interessado (encapsulados no protocolo SOCKS e SSH), o que é obviamente mais eficiente.

Sua pergunta é feita da maneira que não é possível responder. O que você está tentando alcançar? Executar programas GUI? Conexões de rede proxy? Algo totalmente diferente?

    
por 31.05.2016 / 22:06
5

Experimente o Xpra. É o melhor aplicativo de encaminhamento X11 e mais seguro. Suporta muitos codecs e formatos de compressão, inclusive x264. Eu usei-o para executar o Skype no lado remoto, quando o forcei a fazer isso por negócios e queria manter minha máquina apenas com o código-fonte aberto. O aplicativo está sendo executado com persistência, portanto, você pode reconectar-se a ele se perder a conexão, assim como a tela do GNU.

Veja também a X2GO, a implementação do NX de código aberto, sendo ativamente desenvolvida.

    
por 27.03.2017 / 17:31
3

O encaminhamento do X é geralmente lento, mesmo em uma rede relativamente rápida. Ela sofre de largura de banda e latência: muitos aplicativos geralmente esperam por uma resposta do servidor e isso pode se traduzir em atrasos perceptíveis.

Você pode melhorar a largura de banda comprimindo. O SSH pode fazer compactação com a opção -C . Você também pode usar o dxpc , que é um programa de compactação para propósitos especiais que entende o protocolo X e, portanto, pode funcionar melhor do que a compactação generalista . No entanto, isso não ajudará se o fator limitante for latência. Normalmente, o dxpc faz muita diferença com aplicativos leves em links lentos, mas não melhora muito com aplicativos pesados em links rápidos.

NX é uma alternativa mais avançada ao dxpc. Ao contrário do dxpc, ele não apenas compacta, mas também armazena alguns dados em cache, para que possa contrabalançar a latência.

Uma coisa que pode fazer muita diferença é o uso de fontes renderizadas pelo servidor (renderização de texto X11 clássica) em vez de renderizado pelo cliente (fontconfig). Eles são muito mais rápidos em um link remoto. Mas as fontes renderizadas pelo servidor têm suas desvantagens: são mais feias (sem suavização), são gerenciadas pelo servidor em vez de pelo aplicativo (não intrinsecamente uma desvantagem, mas muitos aplicativos querem controle total sobre suas fontes) e muitos aplicativos modernos simplesmente não os apoie mais.

    
por 01.06.2016 / 01:52