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é.
fuente
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.
fuente
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.
fuente
Creo que puede usar el reenvío de puerto local a RDP:
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
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.
fuente