Zurück zum Blog

Was ist ein SSH Tunnel? Anleitung zur Portweiterleitung

Was ist ein SSH Tunnel und wie nutzen Sie ihn? Lokale, entfernte und dynamische Portweiterleitung, sicherer Datenbankzugriff, ~/.ssh/config und autossh.

Nodesty-Team5 Min. LesezeitSicherheit
Der Schriftzug SSH Tunnel mit -L, -R und -D auf dunklem Nodesty-Hintergrund

Ein SSH Tunnel ist eine Methode, mit der Sie eine Verbindung durch eine verschlüsselte SSH-Verbindung leiten und so sicher einen anderen Port oder Server erreichen. Dienste wie eine Datenbank, ein Verwaltungspanel oder ein Monitoring-Werkzeug können Sie nutzen, ohne sie überhaupt ins Internet zu öffnen, allein mit Ihrem SSH-Zugang. Sie müssen keine zusätzliche Software installieren; jeder Server, mit dem Sie sich per SSH verbinden können, ist auch für Tunnel bereit.

In dieser Anleitung erklären wir die lokale, entfernte und dynamische Portweiterleitung, häufige Anwendungsfälle, dauerhafte Tunnel und die Sicherheitseinstellungen. Die Grundlagen von SSH finden Sie in unserem Artikel Was ist SSH?.

Drei Arten von SSH Tunneln

ArtParameterWas macht sie?
Lokale Weiterleitung-LVerbindet einen Port auf Ihrem Computer mit einem Dienst auf der Serverseite
Entfernte Weiterleitung-RVerbindet einen Port auf dem Server mit einem Dienst auf Ihrem Computer
Dynamische Weiterleitung-DÖffnet auf Ihrem Computer einen SOCKS-Proxy und leitet den Traffic über den Server

Am häufigsten wird die lokale Weiterleitung verwendet.

Lokale Weiterleitung (-L)

Sie dient dazu, von Ihrem eigenen Computer aus einen Dienst auf Ihrem Server zu erreichen, der nur auf der Adresse 127.0.0.1 lauscht. Die Syntax:

ssh -L [lokaler_port]:[zieladresse]:[zielport] benutzer@server

Beispiel: Sicherer Zugriff auf die Datenbank. MariaDB lauscht auf dem Server nur auf der Adresse 127.0.0.1:3306, und Port 3306 ist zum Internet hin geschlossen:

ssh -L 3307:127.0.0.1:3306 benutzer@203.0.113.10

Solange diese Verbindung offen ist, verbinden Sie sich mit HeidiSQL, DBeaver oder einem anderen Werkzeug mit der Adresse 127.0.0.1:3307 auf Ihrem eigenen Computer; die Verbindung wird verschlüsselt an die Datenbank auf dem Server weitergeleitet. Die Datenbankeinstellungen erklären wir in unseren Anleitungen MySQL und MariaDB installieren und PostgreSQL installieren.

Beispiel: Zugriff auf eine Weboberfläche. Um ein Monitoring-Panel, das auf dem Server auf Port 19999 läuft und das Sie nicht nach außen öffnen möchten, in Ihrem eigenen Browser zu öffnen:

ssh -L 19999:127.0.0.1:19999 benutzer@203.0.113.10

Anschließend öffnen Sie im Browser die Adresse http://127.0.0.1:19999.

Einen anderen Server dahinter erreichen: Die Zieladresse muss nicht der Server selbst sein. Sie können auch einen Tunnel zu einer anderen Maschine aufbauen, die Ihr Server über ein privates Netzwerk erreicht:

ssh -L 5433:10.8.0.20:5432 benutzer@203.0.113.10

Entfernte Weiterleitung (-R)

Sie arbeitet in umgekehrter Richtung: Ein Port auf dem Server wird mit einem Dienst auf Ihrem eigenen Computer verbunden. Um zum Beispiel eine Anwendung, die Sie auf Ihrem Computer auf Port 3000 entwickeln, vorübergehend über Port 8080 des Servers zu zeigen:

ssh -R 8080:127.0.0.1:3000 benutzer@203.0.113.10

Standardmäßig wird der entfernte Port nur auf der Adresse 127.0.0.1 des Servers geöffnet. Damit er von außen erreichbar ist, muss die Einstellung GatewayPorts in der Datei sshd_config auf dem Server geändert werden; tun Sie das nur, wenn Sie wissen, was Sie tun, und nur vorübergehend.

Dynamische Weiterleitung (-D): SOCKS-Proxy

ssh -D 1080 benutzer@203.0.113.10

Dieser Befehl öffnet auf Ihrem eigenen Computer einen SOCKS-Proxy unter der Adresse 127.0.0.1:1080. Tragen Sie diese Adresse in die Proxy-Einstellungen Ihres Browsers ein, geht Ihr Browser-Traffic verschlüsselt über Ihren Server ins Internet. Das ist in nicht vertrauenswürdigen WLAN-Netzen nützlich oder bei Diensten, die nur Zugriffe von der IP-Adresse Ihres Servers erlauben. Für den Traffic, der Ihren Server verlässt, sind Sie verantwortlich; prüfen Sie bei intensiver und dauerhafter Nutzung die Nutzungsbedingungen Ihres Anbieters.

Nützliche Parameter

ParameterWas macht er?
-NFührt keinen entfernten Befehl aus; öffnet nur den Tunnel
-fWechselt nach dem Verbindungsaufbau in den Hintergrund
-vGibt eine ausführliche Ausgabe aus; dient zur Suche nach Verbindungsproblemen
-p 2222Gibt den Port an, wenn SSH auf einem anderen Port läuft

Für eine Verbindung, die im Hintergrund läuft und nur den Tunnel öffnet:

ssh -f -N -L 3307:127.0.0.1:3306 benutzer@203.0.113.10

Dauerhafte Tunnel mit ~/.ssh/config

Statt jedes Mal lange Befehle einzutippen, speichern Sie häufig genutzte Tunnel in der Datei ~/.ssh/config auf Ihrem eigenen Computer:

Host db-tunnel
    HostName 203.0.113.10
    User benutzer
    IdentityFile ~/.ssh/id_ed25519
    LocalForward 3307 127.0.0.1:3306
    LocalForward 19999 127.0.0.1:19999
    ServerAliveInterval 30

Jetzt öffnet ein einziger Befehl beide Tunnel auf einmal:

ssh -N db-tunnel

ServerAliveInterval verhindert, dass eine inaktive Verbindung vom Router oder von der Firewall geschlossen wird.

Dauerhaft offene Tunnel: Muss ein Server dauerhaft per Tunnel mit einem anderen Server verbunden bleiben, können Sie das Werkzeug autossh, das sich nach einem Verbindungsabbruch automatisch neu verbindet, als systemd-Dienst betreiben. Um mehrere Server dauerhaft miteinander zu verbinden, ist ein VPN wie WireGuard meist die sauberere Lösung.

Sicherheit

  • Verwenden Sie die Anmeldung per Schlüssel. Tunnel sind so sicher wie Ihr SSH-Zugang. Deaktivieren Sie die Anmeldung per Passwort und melden Sie sich nur noch per Schlüssel an; die Schritte finden Sie in unserem Artikel Was ist SSH?.
  • Verwenden Sie die lokale Adresse. Belassen Sie Tunnel wie voreingestellt auf der Adresse 127.0.0.1; so können andere Geräte im selben Netzwerk Ihren Tunnel nicht nutzen.
  • Deaktivieren Sie unnötige Weiterleitungen. Für Benutzer, die keine Tunnel verwenden, können Sie die Weiterleitung auf dem Server deaktivieren. In der Datei sshd_config für einen bestimmten Benutzer oder eine Gruppe:
    Match User nur-sftp
        AllowTcpForwarding no
    
  • Öffnen Sie Dienste nicht nach außen. Der eigentliche Nutzen eines Tunnels liegt darin, Dienste wie Datenbanken und Panels überhaupt nicht ins Internet zu öffnen. Stellen Sie sicher, dass diese Dienste nur auf der Adresse 127.0.0.1 lauschen; die Sicherheit von Ports erklären wir in unserem Artikel Was ist ein Port?.

Nodesty Server für SSH Tunnel

Mit den Paketen AMD Ryzen 9 9950X vServer und AMD EPYC 7763 vServer von Nodesty erhalten Sie per SSH Root-Zugang zu Ihrem Linux-Server; Ihre Datenbanken, Verwaltungspanels und Monitoring-Werkzeuge nutzen Sie sicher über SSH Tunnel, ohne sie ins Internet zu öffnen. Wird Ihr SSH-Zugang unterbrochen, erreichen Sie Ihren Server jederzeit über die Webkonsole in Ihrem Panel.

Häufig gestellte Fragen

Ersetzt ein SSH Tunnel ein VPN?

Für den sicheren Zugriff auf einen bestimmten Dienst reicht er oft aus und erfordert keinerlei zusätzliche Installation. Wenn Sie den gesamten Traffic Ihres Geräts über den Server leiten oder dauerhaft auf mehrere Dienste und Geräte zugreifen möchten, ist ein echtes VPN wie WireGuard besser geeignet.

Ich habe einen Tunnel eingerichtet, kann mich aber nicht verbinden. Warum?

Die häufigsten Gründe sind, dass der lokale Port bereits von einer anderen Anwendung belegt ist, die Zieladresse falsch geschrieben wurde oder die Option AllowTcpForwarding in den SSH-Einstellungen des Servers deaktiviert ist. Mit -v am ssh-Befehl erhalten Sie eine ausführliche Ausgabe und sehen, bei welchem Schritt der Fehler auftritt.

Kann ich unter Windows einen SSH Tunnel einrichten?

Ja. Der in aktuellen Windows-Versionen mitgelieferte OpenSSH-Client führt die ssh-Befehle aus dieser Anleitung unverändert aus. Wenn Sie PuTTY verwenden, legen Sie lokale und dynamische Tunnel unter Connection → SSH → Tunnels an. Auch Werkzeuge wie HeidiSQL und DBeaver bieten in ihren Einstellungen eine fertige Option für SSH Tunnel.

Können andere den Tunnel nutzen, solange er offen ist?

Standardmäßig nicht. Lokale Tunnel lauschen nur auf der Adresse 127.0.0.1 Ihres eigenen Computers; andere Geräte im selben Netzwerk haben keinen Zugriff. Um den Tunnel für andere Geräte zu öffnen, müssten Sie die Bind-Adresse ausdrücklich angeben, was in den meisten Fällen nicht empfehlenswert ist.

Die Tunnelverbindung bricht ständig ab. Was kann ich tun?

Inaktive Verbindungen können von Routern und Firewalls geschlossen werden. Halten Sie die Verbindung am Leben, indem Sie der Datei ~/.ssh/config die Zeile ServerAliveInterval 30 hinzufügen. Für Tunnel, die dauerhaft offen bleiben müssen, verwenden Sie das Werkzeug autossh, das sich nach einem Verbindungsabbruch automatisch neu verbindet.

Kann ich über einen SOCKS-Proxy mit der IP-Adresse meines Servers ins Internet gehen?

Ja, mit einem dynamischen Tunnel können Sie den Traffic Ihres Browsers über Ihren Server leiten. Das ist in nicht vertrauenswürdigen Netzwerken und bei Diensten nützlich, die einen Zugriff von einer festen IP-Adresse verlangen. Für den gesamten Traffic, der Ihren Server verlässt, sind Sie verantwortlich; halten Sie sich an die Nutzungsbedingungen Ihres Anbieters.

Nodesty

Über den Autor

Nodesty-Team · Infrastruktur und Support

Das Nodesty-Team betreibt unsere Server, unser Netzwerk und unseren DDoS-Schutz im Alltag und beantwortet Support-Anfragen rund um die Uhr. Diese Ratgeber entstehen aus dieser Arbeit.

Verwandte Artikel

Starte deinen Server jetzt.

Erstellen, wachsen und skalieren Sie Ihre Projekte grenzenlos auf der Premium-Infrastruktur von Nodesty.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································