Met SSH port forwarding kun je een versleutelde tunnel maken naar diensten die normaal niet van buitenaf bereikbaar zijn — zoals een database, een beheerinterface of een interne webserver.
De tunnel loopt van je lokale machine via een SSH-verbinding naar de server. De server maakt dan intern verbinding met de doeldienst. Verkeer tussen jou en de server is volledig versleuteld.
De meestgebruikte variant: een poort op je eigen machine wordt doorgestuurd via de server.
ssh -L 8080:localhost:5432 gebruiker@mijnserver.nl
| Onderdeel | Betekenis |
|---|---|
8080 | Lokale poort op je eigen machine |
localhost:5432 | Doeladres vanuit de server gezien |
gebruiker@mijnserver.nl | SSH-verbinding |
Na dit commando kun je op je eigen machine verbinden met localhost:8080 en bereik je de PostgreSQL-database op de server.
Database beheren via pgAdmin
ssh -L 5432:localhost:5432 gebruiker@dbserver.nl
Open daarna pgAdmin en verbind met localhost:5432 — alsof de database lokaal draait.
Interne webinterface bekijken
ssh -L 8080:192.168.1.10:80 gebruiker@jumpserver.nl
Hier wordt het verkeer niet naar localhost op de server gestuurd maar naar een ander intern adres (192.168.1.10). Handig als de server een springplank is naar een intern netwerk.
ssh -fNL 8080:localhost:5432 gebruiker@mijnserver.nl
-f — ga naar de achtergrond-N — voer geen commando uit, alleen de tunnelAfsluiten doe je daarna met:
pkill -f "ssh -fNL 8080"
Het omgekeerde: een poort op de server wordt doorgestuurd naar je lokale machine. Nuttig als je iemand anders tijdelijk toegang wil geven tot een dienst op je laptop.
ssh -R 9090:localhost:3000 gebruiker@mijnserver.nl
Nu is poort 9090 op de server bereikbaar en stuurt het verkeer door naar je lokale poort 3000.