In einem privaten Netzwerk befindet sich ein Windows-Remoteserver, zu dem ich über eine Remotedesktopverbindung eine Verbindung herstellen kann. Ich möchte TCP / IP-Verbindungen von meinem Computer zu anderen Computern im Netzwerk dieses Servers herstellen können.
Remotedesktopverbindung ermöglicht die Freigabe von Druckern, Laufwerken und anderen lokalen Ressourcen über die Verbindung. Gibt es eine Möglichkeit, eine TCP / IP-Verbindung über RDC zu "tunneln"?
Ich hätte gerne etwas Ähnliches wie die von SSH bereitgestellte Portweiterleitung. Ich sehe keine Möglichkeit, dies über RDC zu tun, aber ich hoffe, dass die Fähigkeit vorhanden ist und ich weiß einfach nichts darüber.
quelle
Wenn Sie rdesktop auf dem Client ausführen (anstelle des nativen Windows-Clients), können Sie rdp2tcp verwenden .
Hiermit können Sie die Weiterleitung von TCP-Ports über eine RDP-Verbindung verwalten.
quelle
Ich habe nichts Besseres als rdp2tcp für einen Windows-Server gefunden, der keinen Administratorzugriff oder kein Netzwerkrouting von Schnittstelle zu Schnittstelle zuließ. Sie müssen den OOP-Patch auf Ihrem rdesktop ausführen, damit dies funktioniert (auf den letzten Seiten finden Sie diejenige, die einer aktuellen Version von rdesktop entspricht). Ich habe den MinGW-Compiler verwendet, um das Windows-Ende des Tunnels zu kompilieren.
Die Dokumentation ist auch hervorragend und prägnant.
Was als kleiner Punkt erscheinen mag: Wenn Sie einen 'Add-In'-Namen mit' - 'verwenden, kann rdesktop die Befehlszeile nicht korrekt analysieren. Dies könnte ein Bashismus gewesen sein, der eine ordnungsgemäße Flucht erforderte, aber ich bin mir nicht sicher.
Beachten Sie, dass dies meines Wissens kein "echter" TCP-Tunnel ist, der die TCP-Protokoll-Dateneinheiten "sieht", da dies ohne Administratorrechte auf der Windows-Seite nicht möglich wäre. Es ist eher ein Socks-Proxy mit einem vorkonfigurierten Endpunkt (allerdings nicht sehr folgenreich). Es verfügt auch über einen tatsächlichen Socken-Proxy, wenn Sie das möchten.
Ich habe damit leicht eine interaktive SSH-Sitzung verwaltet, aber sie hielt nicht für SSH-Dateiübertragungen aus (gab an, dass der virtuelle Kanal in der rdesktop-Konsole getrennt wurde (rdp2tcp wird als untergeordneter Prozess mit stdout / stdin dup2'ed / piped by rdesktop ausgeführt) , aber ohne Änderung an stderr)). In der Quelle gab es eine Konstante mit dem Namen RDP2TCP_PING_TIMEOUT, die aussah wie ein Keepalive-Timeout für das Halten des Tunnels. Vorausgesetzt, dass das Zwischennetz gedrosselt wird, hat eine Erhöhung von 5 auf 900 Sekunden den Trick vollbracht, und die Übertragung dauerte bis zu 100 MB (dies dauerte in diesem bestimmten Netzwerk etwa 15 Minuten).
Darüber hinaus wurde festgestellt, dass rdp2tcp eine SIGPIPE erhielt, die angeblich aufgrund eines Bruchs in der rdesktop-Pipe empfangen wurde, obwohl ich weder im rdesktop-Code noch in der Ausgabe von ' lsof ', bei dem vor und nach dem SIGPIPE-Trigger keine Änderung der Anzahl der Pipes für rdesktop festgestellt wurde.
In diesem Fall müssen Sie rdesktop und möglicherweise auch die Windows-Seite des Tunnels neu starten. Sie können rsync verwenden und die Dateiübertragung fortsetzen und möglicherweise den gesamten Wiederherstellungsprozess automatisieren.
All dies setzte Linux als Client voraus. Ich habe das gepatchte rdesktop unter Windows nicht ausprobiert, da ich Probleme mit Cygwin / X hatte. Ich denke, es sollte funktionieren.
Auch meine Erfahrung mit SSH war, aber große Dateiübertragungen mit anderen Mitteln werden wahrscheinlich die gleichen Probleme treffen.
quelle
Ich denke, Sie können die lokale Portweiterleitung an RDP verwenden:
A ist Windows oder Mac, B ist Linux und C ist Windows. Wenn Sie von A nach C RDP möchten und C von A aus nicht direkt erreichbar ist, wählen Sie A
Öffnen Sie den RD-Client, und geben Sie unter 127.0.0.1:7777 den Benutzernamen und das Kennwort von C ein. Ich habe dies auf einem Mac versucht, sollte jedoch für Windows funktionieren.
quelle