Tunneln einer TCP / IP-Verbindung über eine Remotedesktopverbindung


34

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.

Antworten:


7

Ich denke nicht, dass Sie über RDP tunneln können, aber wenn Sie zum Bediener rdp und einen ssh Tunnel zurück zu Ihrem Klienten dann einleiten würden, würden Ihre Maschinen durch ssh angeschlossen. Sie können sowohl Remoteports als auch lokale Ports weiterleiten, sodass alles in umgekehrter Reihenfolge abläuft

BEARBEITEN

Wenn Sie einen SSH-Server auf Ihrem Client-PC installieren und ihn so einstellen, dass er SSH-Verbindungen auf Port 443 akzeptiert, können Sie von Ihrem Server aus eine Verbindung zum SSH-Server (Ihrem Client) herstellen und müssen keine Ports öffnen ( 443 sollte offen sein für https)


1
Ja, ich muss wohl einen SSH-Server installieren. Leider erfordert dies eine Aktion von MIS, um den Port in der Firewall zu öffnen, sodass dies einige Tage / Wochen dauern kann.
Kristopher Johnson

Mein Client-PC befindet sich hinter einigen Firewalls. Ich weiß nicht, ob ich eine Verbindung vom Server zurück zum Client herstellen kann. (Die Welt war so viel einfacher, als alle Häfen geöffnet waren.)
Kristopher Johnson

Stellen Sie sich einen Fall vor, in dem selbst mit 443 tcp keine Kommunikation vom Server zum Client möglich ist. Dies ist das einzige, was wir über RDP verfügen
carpinchosaurio


1

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.



0

Ich denke, Sie können die lokale Portweiterleitung an RDP verwenden:

A -> B -> C

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

ssh username@B -L 7777:C:3389

Ö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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.