Частый кейс: сервис крутится на удалённой машине, но слушает только localhost (например, база, админка, dev-сервер). Напрямую к нему не подключиться — но можно аккуратно протянуть порт к себе.
Команда:
ssh -L 8080:localhost:3000 user@remote-server
Что происходит:
8080 — локальный порт на твоей машине; localhost:3000 — адрес сервиса на удалённой машине; всё, что ты открываешь на localhost:8080, идёт через SSH на localhost:3000 на удалённой машине.Теперь просто открываешь в браузере:
http://localhost:8080И видишь сервис с удалённой машины, даже если он не доступен извне.
Чтобы не держать терминал:
ssh -f -N -L 8080:localhost:3000 user@remote-server
Остановить можно, например:
pkill -f "ssh -L 8080"
Практический пример: PostgreSQL на сервере слушает только localhost:
ssh -L 5432:localhost:5432 user@remote-server
Теперь локально можно подключаться как будто база у тебя:
psql -h localhost -p 5432 -U user dbname
Если локальный порт уже занят — просто меняешь его:
ssh -L 9000:localhost:3000 user@remote-server
Важно: трафик шифруется через SSH, не нужно открывать порты на сервере; работает для любых TCP-сервисов (HTTP, DB, Redis и т.д.).
🔥 Это базовый приём: быстро получить доступ к любому закрытому сервису без изменения конфигурации сервера.
🚪 Linux Ready | #практика