Ich habe zuvor gefragt, wie 2 SSH-Tunnel mithilfe eines Zwischenservers konfiguriert werden sollen, um Remotedesktop über sie auszuführen, und ich habe es geschafft, dass es funktioniert. Jetzt versuche ich, dasselbe mit denselben Maschinen zu tun, aber in umgekehrter Reihenfolge. Hier ist das Setup:
- Windows 7-PC in einem privaten Netzwerk hinter einer Firewall.
- Öffentlicher Linux-Server, der Zugriff auf den PC hat.
- Windows 7-Laptop zu Hause, auf dem ich Remotedesktop vom PC aus ausführen möchte.
Ich verwende Putty auf dem Laptop, um einen umgekehrten Tunnel von dort zum Linux-Server zu erstellen : R60666 localhost:3389
.
Ich benutze Putty auf dem PC, um einen regulären Tunnel von dort zum Linux-Server zu erstellen : L60666 localhost:60666
.
Ich SSH auf den Linux-Server und ich telnet localhost 60666 und es scheint die erwartete Ausgabe zu produzieren, wie in den Debugging-Tipps beschrieben, die ich hier erhalten habe .
Ich versuche, Remotedesktop vom PC mit dem Laptop zu verbinden : localhost:60666
. Es fragt nach meinem Benutzernamen und Passwort, ich klicke auf OK und es sperrt meine aktuelle Sitzung auf dem Laptop (so dass der Begrüßungsbildschirm auf dem Laptop anstelle meines Desktops angezeigt wird), es zeigt die Begrüßungsnachricht auf dem Remotedesktopbildschirm an und dann es wird nur schwarz. Es wird keine Verbindung getrennt, es wird kein Fehler ausgegeben und ich kann keine Aktionen auf dem Remotedesktopbildschirm ausführen. Ich habe das gleiche Setup mit einem Windows XP-Laptop versucht und habe die gleichen Symptome. Ich habe auch versucht, andere Ports als 60666 zu verwenden, aber nichts hat sich geändert. Hat jemand eine Ahnung, was ich falsch mache?
Update : Wie von @jwinders hervorgehoben, kann ich nicht telnet PC 3389
direkt vom Linux-Server ausgeführt werden. Da die Windows-Firewall eine Regel hat, die alle Verbindungen an Port 3389 zulässt, habe ich keine Ahnung, was sie blockiert. Glücklicherweise kann ich einen SSH-Tunnel vom Linux-Computer zum PC erstellen ssh 3389:localhost:3389 'domain\user'@PC
.
quelle
Antworten:
Ich bin heute selbst auf das gleiche Problem mit dem schwarzen Bildschirm und der Trennung gestoßen und habe Kitt als Client verwendet. Ich habe schließlich eine Lösung gefunden .
Ich wechselte von Putty zu Bitvise Tunnelier und stellte eine
S2C
Verbindung mit den folgenden Einstellungen her:Wie es der Zufall wollte, verwende ich auf meinem Server den Bitvise-SSH-Server. Dies ist möglicherweise nur eine gute Kombination für zwei Produkte desselben Herstellers. Es wäre großartig, wenn dies die Probleme für andere lösen würde.
Ich bin in keiner Weise mit diesen Leuten verbunden.
quelle
Ich sehe nichts falsch mit Ihren SSH-Tunneln. Die Verbindung zu localhost: 60666 auf dem PC sollte bei localhost: 3389 auf dem Laptop enden. Die Tatsache, dass Sie einen Anmeldebildschirm erhalten, bestätigt diese Einschätzung.
Ein bisschen googeln auf dem leeren Bildschirm bringt mich zu diesem Microsoft Knowledge Base-Artikel: http://support.microsoft.com/kb/555840 . Es heißt, ein leerer Bildschirm könnte aufgrund möglicher MTU-Größeninkongruenzen auftreten:
Angesichts Ihrer angemessenen Anzahl an Netzwerk-Hops, Firewalls und was Sie haben, ist eine Paketfragmentierung sehr wahrscheinlich :) Die meisten Windows-Computer verwenden standardmäßig eine MTU von 1300, während die meisten Linux-Boxen 1500 haben (der maximal zulässige Wert für LAN, ohne Berücksichtigung von Jumbo-Frames ). Sie können versuchen, diese zu verringern, um die Fragmentierung zu verringern.
Siehe auch:
quelle
netsh interface ipv4 show subinterfaces
) eingestellt undping linux_server -f -l 1472
funktioniert auf beiden Computern. Nur als Test habe ich versucht, die MTU auf dem PC auf 1300 einzustellen, aber es hat nicht geholfen. Ich habe auch versucht, es auf dem Laptop zu ändern, aber ohne Erfolg :( Ich frage mich, ob es eine "intelligentere" Möglichkeit gibt, dieses Problem zu debuggen ...Wäre ein VPN nicht besser geeignet? OpenVPN ist super einfach zu konfigurieren. Hier finden Sie eine Beispielkonfiguration und einige Links, die Sie durch den Prozess der Zertifikaterstellung führen.
Konfigurieren Sie einfach den Vermittler als Host, und die Gäste können sich einwählen und trotzdem miteinander kommunizieren.
Erstellen Sie dann eine neue Datei,
/etc/openvpn/client_server.conf
fügen Sie Folgendes ein und ändern Sie dieSERVER_IP_ADDRESS
entsprechende DateiErstellen Sie dann einen Schlüssel pro Benutzer, der eine Verbindung herstellen soll, und erstellen Sie die Konfigurationsdatei im Verzeichnis ccd
Die IP-Adresse MUSS für ein / 30-Subnetz geeignet sein (siehe http://www.subnet-calculator.com/cidr.php ), da pro Verbindung nur 2 Adressen (Server und Client) verfügbar sind. Ihre nächste verfügbare Client-IP wäre also 192.168.100.6 und so weiter.
Dann haben Sie jetzt statische IPs pro Verbindungsbenutzer.
Geben Sie dann die
the [email protected]
Datei an den Endbenutzer weiter und verwenden Sie die folgende Konfigurationsdateiquelle
Wenn Sie die ssh-Sitzung innerhalb des Benutzerkontos ausführen (mit einem Programm wie putty.exe) und versuchen, sich über rdp anzumelden, wird diese Verbindung unterbrochen, wodurch die rdp-Sitzung unterbrochen wird. Sie müssen den SSH-Tunnel als Dienst ausführen, der nicht unterbrochen wird.
quelle
Ich denke, Sie können alle Conf von Ihrem Laptop aus erledigen
Richten Sie eine Kittverbindung zur Linux-Box auf Ihrem Laptop ein. Geben Sie dann unter 'Verbindung'> 'SSH'> 'Tunnel' 60666 in das Feld 'Quellport' ein und stellen Sie sicher, dass das Optionsfeld Lokal ausgewählt ist. Im 'Ziel' geben Sie win7-box-name-or-ip: 3389 ein.
Speichern Sie all das und es sollte Ihnen ermöglichen, eine Kitt-Sitzung zu Linux-Box zu öffnen, die automatisch einen Tunnel-Weiterleitungsverkehr zu localhost (Ihrem Laptop) erstellt: 60666 zu win7: 3389
Wenn Sie dies in der Befehlszeile tun, sollte es so etwas wie sein
quelle
ssh 3389:localhost:3389 'domain\user'@PC
und danntelnet localhost 3389
auf der Linux-Box einzurichten.Ich stellte fest, dass ich nach Eingabe der Anmeldeinformationen einen leeren Bildschirm erhalten würde, wenn nicht alle Benutzer vollständig vom Computer abgemeldet wären. Stellen Sie also sicher, dass Sie sich immer abmelden.
quelle