Erstellen eines weitergeleiteten Ports in einem SSH-Tunnel

8

Ich versuche, SSH.NET zu verwenden, um einen Tunnel von localhost:3306 auf Port 3306 auf einem Remote-Rechner zu erstellen:

%Vor%

Wenn der Haltepunkt erreicht wird, gibt client.IsConnected true zurück, aber telnet localhost 3306 verbindet sich nicht. Wenn ich stattdessen die Verbindung mit Putty erstelle und dort denselben Tunnel einrichte, ist es erfolgreich. Was habe ich verpasst?

    
Adrian Wragg 29.08.2013, 10:04
quelle

2 Antworten

10

Durch Ändern der Parameter von ForwardedPortLocal zu:

%Vor%

(um zu verdeutlichen, an welche Schnittstelle ich gebunden habe) und den folgenden Code direkt vor port.Start(); einfügen:

%Vor%

Ich habe festgestellt, dass folgendes ausgegeben wird:

%Vor%

Der e.OriginatorHost -Teil davon war ::1 , was das IPv6-Äquivalent von localhost ist; Der Zielserver verwendete jedoch IPv4. Ändern der Parameter zu:

%Vor%

zwang den Tunnel dazu, stattdessen über IPv4 zu laufen, und mein Code funktionierte dann genau so, wie ich es erwartet hatte.

    
Adrian Wragg 29.08.2013, 10:40
quelle
0

Nachdem ich das gleiche Problem gefunden und analysiert habe, und wenn ich zu dem Schluss gekommen bin, dass es sich um einen Bug handelt (obwohl es als fraglich betrachtet werden kann, überrascht das Verhalten die Benutzer der SSH.NET API).

Also habe ich es auf Unerwartetes Verhalten (alias Bug) auf lokalem Tunnel gemeldet · Problem # 117 · sshnet / SSH. NET · GitHub .

Bis zur Behebung der Problemumgehung in c # - Erstellen eines weitergeleiteten Ports in einem SSH-Tunnel - Stack Overflow funktioniert.

    
Stéphane Gourichon 16.11.2016 19:37
quelle

Tags und Links