Túnel de una conexión TCP / IP a través de la conexión de escritorio remoto

34

Hay un servidor remoto de Windows en una red privada al que me puedo conectar a través de Conexión a Escritorio remoto. Me gustaría poder hacer conexiones TCP / IP desde mi computadora a otras computadoras en la red de ese servidor.

Remote Desktop Connection permite compartir impresoras, unidades y otros recursos locales a través de la conexión. ¿Hay alguna forma de "tunelizar" una conexión TCP / IP a través de RDC?

Me gustaría algo similar al reenvío de puertos proporcionado por SSH. No veo ninguna manera de hacer esto a través de RDC, pero espero que la capacidad esté ahí y simplemente no lo sé.

Kristopher Johnson
fuente

Respuestas:

7

No creo que pueda hacer un túnel sobre RDP, sin embargo, si tuviera que hacer rdp al servidor y luego iniciar un túnel ssh de regreso a su cliente, sus máquinas estarían conectadas por ssh. Puede reenviar puertos remotos y locales para poder hacerlo de manera que todo esté en reversa

EDITAR

Si instala un servidor ssh en su PC cliente y lo configura para aceptar conexiones ssh en el puerto 443, entonces puede conectarse al servidor ssh (su cliente) desde su servidor (usando la conexión de cliente ssh) y no necesitará abrir ningún puerto ( 443 debería estar abierto para https)

Charles Gargent
fuente
1
Sí, parece que necesitaré instalar un servidor SSH. Desafortunadamente, eso requerirá la acción de MIS para abrir el puerto en el firewall, por lo que puede llevar algunos días / semanas.
Kristopher Johnson
Mi PC cliente está detrás de algunas capas de firewalls. No sé si puedo volver a conectarme desde el servidor al cliente. (El mundo era mucho más fácil cuando todos los puertos estaban abiertos.)
Kristopher Johnson
Imagine un caso en el que no hay comunicación viable del servidor al cliente incluso con 443 tcp, lo único que tenemos RDP
carpinchosaurio
19

Si está ejecutando rdesktop en el lado del cliente (en lugar del cliente nativo de Windows), puede usar rdp2tcp .
Le permite administrar el reenvío de puertos TCP a través de una conexión RDP.

Nicolas Collignon
fuente
Para soporte de reenvío de puertos en Windows, los clientes RDP votan por github.com/FreeRDP/FreeRDP/issues/935
Vadzim
1

No encontré nada mejor que rdp2tcp para usar con un servidor de Windows que no permitía acceso de administrador o enrutamiento de red de interfaz a interfaz. Necesitará hacer el parche OOP en su rdesktop para que esto funcione (vaya a las últimas páginas para encontrar el que corresponde a una versión reciente de rdesktop). Usé el compilador MinGW para compilar el extremo del túnel de Windows.

La documentación también es excelente y concisa.

Lo que podría parecer un punto menor: si usa un nombre 'addin' con '-', rdesktop no puede analizar la línea de comando correctamente. Esto podría haber sido un bashism que requirió escapar adecuadamente, pero no estoy seguro.

Tenga en cuenta que, por lo que puedo entender, este no es un túnel TCP 'verdadero' que 've' las unidades de datos del Protocolo TCP, ya que eso no sería posible sin privilegios de administrador en el lado de Windows. Es más como un proxy de calcetines con un punto final preconfigurado (aunque no muy consecuente). También cuenta con un proxy de calcetines real si te apetece.

Fácilmente administré una sesión SSH interactiva con él, pero no aguantó las transferencias de archivos SSH (dio 'canal virtual desconectado' en la consola rdesktop (rdp2tcp se ejecuta como su proceso hijo con stdout / stdin dup2'ed / piped por rdesktop , pero sin cambios en stderr)). Había una constante en la fuente llamada RDP2TCP_PING_TIMEOUT que parecía un tiempo de espera de keepalive para sostener el túnel. Asumiendo algún tipo de estrangulamiento en la red intermedia, aumentar esto de 5 a 900 parecía haber funcionado, y aguantó transferencias de hasta 100 MB (tomó alrededor de 15 minutos en esa red en particular).

Más allá de eso, sin embargo, se encontró que rdp2tcp recibió un SIGPIPE, que afirmó haber recibido debido a una ruptura en la tubería rdesktop, aunque no pude encontrar ninguna evidencia de que eso ocurriera ni en el código rdesktop ni en la salida de ' lsof 'que no mostró cambios en el número de tuberías para rdesktop antes y después del disparador SIGPIPE.

Si esto sucede, deberá reiniciar rdesktop, y posiblemente también el lado de Windows del túnel. Puede usar rsync y reanudar las transferencias de archivos, y tal vez pueda automatizar todo el proceso de recuperación.

Todo esto suponía que Linux era su cliente. No he probado el parche rdesktop en Windows debido a algunos problemas no relacionados que tuve con Cygwin / X. Supongo que debería funcionar.

Además, mi experiencia fue con SSH, pero es probable que grandes transferencias de archivos por cualquier otro medio tengan los mismos problemas.

lobo
fuente
cómo configurar los elementos anteriores en Windows 7
Thangamani Palanisamy
0

Creo que puede usar el reenvío de puerto local a RDP:

A -> B -> C

A es Windows o Mac, B es Linux y C es Windows. Si desea RDP a C desde A y C no es directamente accesible desde A, entonces en A

ssh username@B -L 7777:C:3389

Abra el cliente RD, luego punto 127.0.0.1:7777 use el nombre de usuario y la contraseña de C. Intenté esto desde Mac pero debería funcionar para Windows.

Srinivas Nukala
fuente