Блог
DevOps · сетьVPS и хостинг 7 мин чтения

SSH-туннель через VPS: 5 практических сценариев

5 рабочих сценариев SSH-туннелей: доступ к внутренней БД, обход блокировок, SOCKS-прокси браузера, проброс UI (Grafana), reverse-tunnel для дома. С готовыми командами.

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 postgres

2. 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 v5

3. Проброс 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 + autossh

5. Проброс порта наружу: временный 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 задач.

Частые вопросы

Отвалиться туннель если разорвётся сеть?
Да. Решение — autossh (авто-переподключение) + ServerAliveInterval 30 в ~/.ssh/config.
SSH-туннель безопаснее VPN?
SSH шифруется TLS-подобно (SSH-протокол). Безопасность сравнима. Разница — VPN даёт полный сетевой доступ, SSH — только forwarded порт.
Скорость SSH-tunnel?
На VPS 2 vCPU обычно 300-500 Мбит/с. Bottleneck — CPU на шифровании (aes-cbc медленнее aes-gcm; выбор в ssh_config).