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

34

Há um servidor Windows remoto em uma rede privada à qual 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. Não vejo nenhuma maneira de fazer isso via RDC, mas espero que a capacidade esteja lá e simplesmente não sei.

Kristopher Johnson
fonte

Respostas:

7

Eu não acho que você pode encapsular o RDP, no entanto, se você quiser fazer rdp no servidor e iniciar um encapsulamento ssh de volta ao seu cliente, suas máquinas serão conectadas pelo ssh. Você pode encaminhar as portas remotas e locais para poder fazê-lo de forma inversa

EDITAR

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

Charles Gargent
fonte
1
Sim, parece que vou precisar instalar um servidor SSH. Infelizmente, isso exigirá ação do MIS para abrir a porta no firewall; portanto, isso pode levar alguns dias / semanas.
21710 Kristoff Johnson
Meu PC cliente está protegido por algumas camadas de firewalls. Não sei se consigo conectar do servidor ao cliente. (O mundo era muito mais fácil quando todas as portas estavam abertas.)
Kristopher Johnson
Imagine um caso em que não há comunicação viável a partir do servidor para o cliente, mesmo com 443 tcp, a única coisa que temos RDP
carpinchosaurio
19

Se você estiver executando o rdesktop no lado do cliente (em vez do cliente nativo do Windows), poderá usar o rdp2tcp .
Permite gerenciar o encaminhamento de portas TCP através de uma conexão RDP.

Nicolas Collignon
fonte
Para suporte ao encaminhamento de porta no Windows RDP, os clientes votam no github.com/FreeRDP/FreeRDP/issues/935
Vadzim
1

Não encontrei nada melhor do que o rdp2tcp para usar com um Windows Server que não permitia acesso de administrador ou roteamento de rede interface a interface. Você precisará fazer o patch OOP no seu rdesktop para que isso funcione (vá para as últimas páginas para encontrar o que corresponde a uma versão recente do rdesktop). Eu usei o compilador MinGW para compilar o final do túnel do 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 falhará ao analisar a linha de comando corretamente. Isso pode ter sido um basismo que exigia uma fuga adequada, mas não tenho certeza.

Observe que, pelo que entendi, esse não é um túnel TCP 'verdadeiro' que 'vê' as unidades de dados do Protocolo TCP, pois isso não seria possível sem privilégios de administrador no lado do Windows. É mais como um proxy de meias com um ponto de extremidade pré-configurado (embora não seja muito consequencial). Ele também possui um proxy de meias real, se você gosta disso.

Eu gerenciei facilmente uma sessão SSH interativa com ele, mas ele não aguentou transferências de arquivos SSH (deu 'canal virtual desconectado' no console do rdesktop (o rdp2tcp é executado como seu processo filho com stdout / stdin dup2'ed / canalizado pelo rdesktop , mas sem alteração para stderr)). Havia uma constante na fonte chamada RDP2TCP_PING_TIMEOUT que parecia um tempo limite de manutenção permanente para sustentar o túnel. Supondo que algum tipo de limitação na rede intermediária, o aumento de 5s para 900s parecesse ter funcionado e aguentava transferências de até 100MB (levou cerca de 15 minutos nessa rede específica).

Além disso, no entanto, o rdp2tcp recebeu um SIGPIPE, que ele alegou ter recebido devido a uma interrupção no pipe do rdesktop, embora eu não tenha encontrado nenhuma evidência disso acontecendo no código do rdesktop ou na saída de ' lsof 'que não mostrou nenhuma alteração no número de pipes para o rdesktop antes e depois do gatilho SIGPIPE.

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

Tudo isso assumindo o Linux como seu cliente. Não tentei o rdesktop corrigido no Windows devido a algum problema não relacionado 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 atingem os mesmos problemas.

Lobo
fonte
como configurar os itens acima no Windows 7
Thangamani Palanisamy
0

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

A -> B -> C

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

ssh username@B -L 7777:C:3389

Abra o cliente RD e, em seguida, aponte 127.0.0.1:7777, use o nome de usuário e a senha de C. Tentei isso no Mac, mas devo funcionar no Windows.

Srinivas Nukala
fonte