Многие используют SSH исключительно для подключения к серверу, но не все знают о портфорвардинге — функции, которая позволяет значительно расширить способы взаимодействия с удалённой машиной. Ниже — несколько полезных сценариев:
Пример 1: Доступ к внутренней БД через туннель
Если на сервере работает PostgreSQL, настроенный на прослушивание только localhost, то подключиться к нему снаружи напрямую не получится. В этом случае выручит локальный туннель:
ssh -L 5432:localhost:5432 user@remote_host
Теперь на твоей локальной машине порт 5432 будет связан с портом 5432 на удалённой, и ты сможешь подключаться к базе данных, как будто она работает у тебя локально.
Пример 2: Реверсивный SSH — проброс внутрь NAT’а
Если у тебя домашний сервер, который находится за NAT и не имеет внешнего IP, можно настроить обратный (reverse) туннель через внешний VPS:
ssh -R 2222:localhost:22 user@your-vps.com
После этого с VPS-сервера ты сможешь подключиться обратно к домашнему серверу:
ssh -p 2222 user@localhost
Пример 3: Dynamic SOCKS proxy
Можно превратить SSH-сессию в полноценный SOCKS5-прокси-сервер, через который будут проходить запросы браузера, curl или других инструментов:
ssh -D 1080 user@remote_host
Указав в настройках прокси localhost:1080, ты получишь простой VPN без дополнительного ПО.
LinuxCamp | #utils