Sieci8 min czytaniaZaktualizowano:

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 N3XShell

Najczę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.