Что такое SSH Tunnel
SSH Tunnel — кроссплатформенное приложение для создания обратных SSH-туннелей. Позволяет безопасно получать доступ к сервисам на домашнем компьютере из любой точки мира — без открытия портов на роутере, без VPN и без сложной настройки сетевого оборудования.
Один бинарник. Одно SSH-соединение. Сколько угодно туннелей.
Кому подходит
- Системным администраторам — удалённый доступ к серверам и оборудованию за NAT/firewall.
- Домашним пользователям — доступ к компьютеру (VNC/RDP) из поездок, с телефона или ноутбука.
- Разработчикам — проброс баз данных, веб-сервисов, API на локальную машину.
- DevOps-инженерам — доступ к внутренним сервисам кластера, базам данных, панелям мониторинга.
Возможности
Desktop-клиент (Windows, Linux, macOS, FreeBSD)
- Системный трей (GUI) — работает в фоне, визуально показывает статус каждого туннеля, переключение ключей, автозапуск.
- TUI (терминальный интерфейс) — для серверов без графики; показывает подключённых клиентов и детали туннелей.
- Headless-режим — для systemd/rc.d служб; управление через сигналы.
- Несколько туннелей — каждый туннель в отдельном потоке, независимый reconnect с экспоненциальной задержкой и jitter.
- SSH-агент — автоматический выбор ключа (по fingerprint, комментарию или первый доступный).
- Автогенерация ключа — при первом запуске генерируется ed25519-ключ, публичный ключ готов для копирования на сервер.
- Daemon + IPC — графический/терминальный интерфейс управляет фоновым процессом: статусы в реальном времени, логи, динамическое меню ключей.
- Логи с ротацией — ежедневная ротация, хранение до 30 дней, метрики по запросу.
- Graceful shutdown — корректное завершение при SIGINT/SIGTERM через меню или сигнал.
Android
- Нативное приложение — интуитивный интерфейс в стиле OneUI:
- Status — одна кнопка запуска/остановки; подробный статус каждого туннеля с трафиком и uptime.
- Config — настройка сервера, портов, ключей; автосохранение.
- Log — логи в реальном времени.
- Foreground Service — туннели работают в фоне, не убиваясь системой.
- Автообновление — кнопка «Check for updates», скачивание и установка APK одной кнопкой.
- Уведомления — мгновенное уведомление о потере соединения.
- Termux — альтернативный вариант через обычный
config.toml, без нативного приложения.
Сервер (ssh-tunnel-server)
- Минимальный SSH-сервер — только обратные туннели; shell, exec, sftp запрещены.
- TUI со списком клиентов — в реальном времени: hostname, ОС, подключённые туннели.
- Безопасность по умолчанию — host key генерируется автоматически, SSH-ключи, ограничение портов и целей.
- Виртуальные сервисы (брокерский режим) — туннели между клиентами без открытия портов на сервере.
- Ограничения — диапазон портов, whitelist подсетей для local forwarding, ограничение пользователей.
- systemd/rc.d — готовые сервисные файлы для Linux, FreeBSD, NetBSD, OpenBSD.
Как это работает
Ваш компьютер SSH-сервер Сервис
(vnc-клиент) (в вашем доме) (localhost:5900)
│ │ │
│──── подключается к порту ────▶│ │
│ remote_port │──── через туннель ────────▶│
│◀─── данные VNC/RDP/SSH ───────│◀──── данные ───────────────│
- Клиент устанавливает одно SSH-соединение с сервером.
- Для каждого туннеля создаётся обратный проброс порта.
- При подключении к
remote_portна сервере трафик передаётся через SSH наlocal_host:local_portклиентской машины.
Сценарии использования
| Сценарий | Порты | Описание |
|---|---|---|
| VNC | 5900 → 5900 | Удалённый доступ к рабочему столу (RealVNC, TightVNC) |
| RDP | 3389 → 3389 | Удалённый рабочий стол Windows (Remote Desktop) |
| SSH | 2222 → 22 | Доступ к серверу или маршрутизатору через SSH |
| Веб | 8080 → 80 | Доступ к веб-серверу или панели управления |
| База данных | 5433 → 5432 | Проброс PostgreSQL/MySQL на локальную машину |
| Внутренний сервис | 9090 → 9090 | Доступ к Prometheus, Grafana, Jenkins за NAT |
Безопасность
- SSH-шифрование — весь трафик зашифрован стандартными средствами SSH.
- SSH-ключи — аутентификация по открытым ключам (ed25519/rsa), без паролей.
- Ограничение shell — сервер не предоставляет shell/exec/sftp; только туннели.
- Ограничение портов — опциональный диапазон портов на сервере.
- Ограничение целей — whitelist подсетей для local forwarding.
- Одно соединение — минимальная поверхность атаки: один сокет, один keepalive, один reconnect.
- Autostart — автоматический запуск при входе в систему (опционально).
- Нет скрытых функций — открытый исходный код (MIT).
Лицензия
MIT — свободное использование, модификация, распространение.
FAQ
В: Обязателен ли внешний белый IP для работы?
О: Нет. Достаточно одного сервера с публичным адресом — сам клиент может находиться в любой сети за NAT: исходящее соединение не требует открытых портов на локальной стороне.
В: Сколько туннелей можно открыть?
О: Произвольное число в рамках одного SSH-соединения. Каждый туннель переподключается независимо, что устойчиво к частичным обрывам.
В: На каких платформах работает?
О: Windows (GUI/headless), Linux (GUI/TUI/headless), macOS, FreeBSD/NetBSD/OpenBSD, Android (нативное приложение и Termux).
В: Безопасно ли держать SSH-сервер открытым в интернете?
О: SSH Tunnel-сервер минимален: без shell, exec и sftp, только обратные туннели и аутентификация по ключу или SSH-агенту. Поверхность атаки сведена к необходимому минимуму.
Где скачать
- Windows / Linux / macOS / BSD — soon
- Android — soon