SSH Tunnel — иконка приложения

SSH Tunnel

Сервис обратных SSH-туннелей с поддержкой множества туннелей, GUI (системный трей), TUI и headless-режимов.

Что такое 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 ───────│◀──── данные ───────────────│
  1. Клиент устанавливает одно SSH-соединение с сервером.
  2. Для каждого туннеля создаётся обратный проброс порта.
  3. При подключении к 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
×