Tunneling uma conexão TCP / IP através da conexão de área de trabalho remota

26

Existe um servidor remoto do Windows em uma rede privada que eu posso conectar via Conexão de Área de Trabalho Remota. Eu gostaria de poder fazer conexões TCP / IP do meu computador para outros computadores na rede desse servidor.

A Conexão de Área de Trabalho Remota possibilita o compartilhamento de impressoras, unidades e outros recursos locais por meio da conexão. Existe alguma maneira de "encapsular" uma conexão TCP / IP via RDC?

Eu gostaria de algo semelhante ao encaminhamento de porta fornecido pelo SSH. Eu não vejo nenhuma maneira de fazer isso via RDC, mas estou esperando que a capacidade esteja lá e eu simplesmente não saiba sobre isso.

    
por Kristopher Johnson 13.04.2010 / 19:56

4 respostas

6

Eu não acho que você pode encapsular o RDP, no entanto, se você fosse o rdp para o servidor e, em seguida, iniciar um túnel ssh de volta ao seu cliente, suas máquinas seriam conectadas pelo ssh. Você pode encaminhar as portas remotas e locais para que você possa fazer isso de forma inversa

EDITAR

Se você instalar um servidor ssh no seu PC cliente e configurá-lo para aceitar conexões ssh na porta 443, então você pode se conectar ao servidor ssh (seu cliente) do seu servidor (usando a conexão cliente ssh) e não precisará abrir quaisquer portas (443 devem estar abertas para https)

    
por 13.04.2010 / 20:18
16

Se você estiver executando o rdesktop no lado do cliente (em vez do cliente nativo do Windows), poderá usar o rdp2tcp .
Ele permite que você gerencie o encaminhamento de portas TCP por meio de uma conexão RDP.

    
por 16.01.2011 / 21:08
1

Não encontrei nada melhor do que rdp2tcp para usar com um Windows Server que não permitisse acesso de administrador ou interface-a-interface roteamento de rede. Você precisará fazer o patch OOP no seu rdesktop para que ele funcione (vá para as últimas páginas para encontre o correspondente a uma versão recente do rdesktop). Eu usei o compilador MinGW para compilar o final do túnel no Windows.

A documentação também é excelente e concisa.

O que pode parecer um ponto menor: Se você usar um nome 'addin' com '-', o rdesktop não consegue analisar a linha de comando corretamente. Este pode ter sido um bashismo que exigiu a fuga adequada, mas não tenho certeza.

Note que, até onde eu entendo, este não é um túnel TCP 'verdadeiro' que 'vê' as unidades de dados do Protocolo TCP, já que isso não seria possível sem privilégios de administrador no lado do Windows. É mais como um proxy de socks com um endpoint que é pré-configurado (embora não seja muito consequencial). Ele também possui um proxy de meias real, se você gosta disso.

Eu facilmente gerenciei uma sessão SSH interativa com ele, mas ele não resistiu a transferências de arquivos SSH (deu 'canal virtual desconectado' no console do rdesktop (o rdp2tcp é executado como seu processo filho com stdout / stdin dup2ed / canalizado por rdesktop, mas sem mudança para stderr)). Havia uma constante na fonte chamada RDP2TCP_PING_TIMEOUT, que parecia um tempo limite para manter o túnel. Assumindo algum tipo de afogamento na rede intermediária, aumentar isso de 5s para 900s parecia ter feito o truque, e resistiu a transferências de até 100MB (demorou cerca de 15 minutos naquela rede em particular).

Além disso, o rdp2tcp recebeu um SIGPIPE, que alegou ter recebido por causa de uma quebra no rdesktop pipe, embora eu não tenha encontrado nenhuma evidência de que isso aconteça a partir do código do rdesktop ou saída de 'lsof' que não mostrou alteração no número de tubos para o rdesktop antes e depois do disparo do SIGPIPE.

Se isso acontecer, você precisará reiniciar o rdesktop e possivelmente o lado do Windows do túnel também. Você pode usar o rsync e retomar as transferências de arquivos, e talvez você possa automatizar todo o processo de recuperação.

Tudo isso estava assumindo o Linux como seu cliente. Eu não tentei o rdesktop com patches no Windows devido a alguns problemas não relacionados que tive com o Cygwin / X. Eu acho que deveria funcionar.

Além disso, minha experiência foi com o SSH, mas grandes transferências de arquivos por qualquer outro meio provavelmente acertarão os mesmos problemas.

    
por 19.11.2015 / 15:01
0

Acho que você pode usar o encaminhamento de porta local para o RDP:

A -> B -> C

A é Windows ou Mac, B é Linux e C é o Windows. Se você quiser RDP para C de A e C não é diretamente acessível de A então em A

ssh username@B -L 7777:C:3389

Abra o cliente RD e, em seguida, aponte para 127.0.0.1:7777 e use o nome de usuário e a senha de C. Eu tentei isso do Mac, mas deve funcionar para o Windows.

    
por 12.10.2017 / 02:45