SSH — не только про удалённый терминал. Встроенные механизмы port-forwarding позволяют строить туннели, которые часто заменяют отдельный VPN. Ниже — 5 частых сценариев с готовыми командами, без TeamViewer'ов и сторонних сервисов.
1. Local forward: доступ к внутренней БД
PostgreSQL слушает только localhost на боевом VPS (правильно). Нужно подключиться из pgAdmin на ноутбуке.
# на ноутбуке
ssh -L 5432:localhost:5432 [email protected]
# теперь psql / pgAdmin подключается к localhost:5432 — трафик идёт по SSH
psql -h localhost -U postgres2. SOCKS-прокси: обход блокировок и гео-фильтров
SSH умеет работать как SOCKS5-прокси — весь браузерный трафик идёт через VPS.
ssh -D 1080 -N [email protected]
# -D 1080 — открывает SOCKS5 на порту 1080
# -N — без выполнения удалённой команды (только форвардинг)
# в браузере (Firefox → Preferences → Network Settings):
# SOCKS Host: 127.0.0.1 Port: 1080 SOCKS v53. Проброс UI: Grafana / phpMyAdmin через SSH
Grafana слушает 3000 только localhost (безопасно). Доступ через SSH-forward.
ssh -L 3000:localhost:3000 [email protected]
# в браузере: http://localhost:3000
# трафик идёт по SSH, Grafana не публикуется наружу4. Reverse tunnel: доступ к домашней сети
Домашний Raspberry Pi за NAT нужен из офиса. Reverse SSH: сам Pi поднимает туннель на VPS.
# на Pi (за NAT):
ssh -R 2222:localhost:22 [email protected] -N
# теперь на VPS:
ssh pi@localhost -p 2222 # заходит на домашний Pi
# автозапуск при загрузке — systemd unit + autossh5. Проброс порта наружу: временный HTTPS для demo
Локальный dev-сервер на 8000, показать клиенту через публичный URL.
# на локалке
ssh -R 80:localhost:8000 [email protected]
# на VPS nginx:
server {
listen 80;
server_name demo.example.com;
location / {
proxy_pass http://127.0.0.1:80;
}
}
# теперь клиент открывает http://demo.example.comДля регулярной работы удобнее WireGuard: постоянный, быстрее, не рвётся при разрыве сети. SSH-туннели — для быстрых ad-hoc задач.