Meine Situation: Ich möchte meine C++-Anwendung mit gdbserver und Eclipse remote debuggen. Eclipse läuft auf meiner lokalen Workstation (im Netzwerk 192.168.0.0) und gdbserver läuft auf einer Clustermaschine im Netzwerk 10.0.0.0. Ich habe SSH-Zugriff auf die Clustermaschine über eine Maschine, die sich in beiden Netzwerken befindet.
Wie kann ich einen Tunnel einrichten, damit mein Eclipse auf den GDB-Server zugreifen kann? Ich habe keine Administratorrechte/Root/Sudo-Zugriff.
Alle Maschinen sind Linux/Unix mit OpenSSH.
Antwort1
Ich gehe davon aus, dass Sie bereits per SSH auf ein System im Remote-Privatnetzwerk (10.0.0.0) zugreifen können. Wenn auf Ihrem lokalen System OpenSSH läuft, fügen Sie Folgendes hinzu $HOME/.ssh/config
:
Host gatewaymachine
LocalForward 12080 remote_ip:portnum
Dabei ist „remote_ip“ die IP-Adresse des Remote-Cluster-Computersystems, auf dem der GDB-Server läuft, und Portnum ist der Port, auf dem er lauscht. Stellen Sie per SSH eine Verbindung zum Gateway-Computer her und verbinden Sie Ihre Anwendung dann mit dem lokalen Host, Port 12080. Wenn es sich beispielsweise um eine Webanwendung handelt,
http://localhost:12080
Wenn Sie keine Webanwendung verwenden, müssen Sie Ihre Verbindungsinformationen so einrichten, dass sie widerspiegeln, dass Sie zum „localhost“-Port „12080“ (oder einem beliebigen Port, siehe unten) gehen.
Anstatt Ihre SSH-Konfiguration zu bearbeiten, können Sie auch SSH-Befehlsparameter verwenden:
ssh -L 12080:remote_ip:portnum gatewaymachine
(ändern Sie 12080 in den gewünschten Port über 1024; unter 1024 benötigen Sie Root-Zugriff, um eine Bindung an den Port herzustellen)
Antwort2
Im Grunde das, was jtimberman gesagt hat :). Vielleicht möchten Sie sich das ansehenautosshwenn Sie Probleme haben, Ihren Tunnel über längere Zeit aufrecht zu erhalten.