Bezpieczne tunele SSH: local, remote i dynamic port forwarding
Udostępnij lokalny panel Dockera bez wystawiania go do Internetu. Zrozum różnicę między -L, -R i -D oraz bezpieczne adresy bind.
Tunel SSH pozwala dotrzeć do usługi dostępnej tylko na serwerze lub w jego sieci bez publikowania kolejnego portu. Najczęstszy wariant to local forwarding, czyli ssh -N -L.
Local forwarding: ssh -L
Polecenie ssh -N -L 127.0.0.1:8790:127.0.0.1:3000 user@server tworzy lokalny port 8790 i prowadzi go do portu 3000 widzianego z serwera. Po połączeniu otwierasz http://127.0.0.1:8790 na swoim komputerze.
- -N nie uruchamia zdalnej powłoki.
- Pierwszy 127.0.0.1 ogranicza dostęp do Twojego komputera.
- Host po drugiej stronie dwukropka jest rozwiązywany z perspektywy serwera SSH.
Remote i dynamic forwarding
Opcja -R udostępnia po stronie serwera port prowadzący do klienta, a -D tworzy lokalny proxy SOCKS. Oba warianty są przydatne, lecz wymagają dokładnej kontroli adresu bind i polityki sshd.
Stabilność i diagnostyka
Dodaj ExitOnForwardFailure=yes, aby klient nie wyglądał na połączony, gdy portu nie udało się utworzyć. Keepalive pomaga wykrywać martwe sesje, a jawna lista tuneli ułatwia zamknięcie właściwego procesu.
- Sprawdź konflikt lokalnego portu przed startem.
- Pokazuj kierunek, host źródłowy i docelowy w interfejsie.
- Nie zapisuj haseł w definicji tunelu; użyj klucza i systemowego magazynu.
Bezpieczna definicja tunelu
- Wybierz poprawny kierunek L, R albo D.
- Binduj lokalnie do 127.0.0.1.
- Użyj klucza SSH i weryfikuj host key.
- Włącz wykrywanie błędu przekierowania.
- Zamknij tunel po zakończeniu pracy.
Sprawdź to w praktyce
Zarządzaj tunelami w N3XShell
Zapisuj hosty i tunele, uruchamiaj je jednym kliknięciem i kontroluj ich stan obok terminala SSH oraz SFTP.
Zarządzaj tunelami w N3XShellNajczęstsze pytania
Jak otworzyć panel Dockera dostępny tylko na localhost serwera?
Użyj np. ssh -N -L 127.0.0.1:8790:127.0.0.1:3000 user@server, a potem otwórz lokalnie http://127.0.0.1:8790.
Czy tunel szyfruje ruch?
Ruch pomiędzy klientem i serwerem SSH jest szyfrowany. Odcinek od serwera SSH do docelowej usługi zależy od wskazanego hosta i sieci.
Dlaczego port lokalny nie chce się uruchomić?
Może być zajęty, zastrzeżony lub blokowany. Sprawdź proces nasłuchujący i wybierz inny port lokalny.
