Основные исправления:
Интерактивный запрос данных VPS - скрипт теперь явно запрашивает:
IP/домен VPS (обязательное поле)
Порт SSH (по умолчанию 22)
Имя пользователя (root или другой)
Улучшенная SSH конфигурация для локальной сети:
Добавлены параметры TCPKeepAlive, ControlMaster, ControlPersist
Увеличены таймауты соединения
Настроены буферы и компрессия
Добавлены современные шифры для стабильности
Настройка SSH демона:
Автоматическая настройка /etc/ssh/sshd_config
Включение ClientAliveInterval и TCPKeepAlive
Разрешение подключения по паролю (для локальной сети)
Автоматический перезапуск SSH демона
Улучшенная обработка ошибок:
Проверка доступности порта VPS
Несколько методов копирования SSH ключа
Возможность продолжить установку даже если подключение не удалось
Сохраняются настройки VPS в /etc/ssh_tunnel/vps_settings.conf
Автономный менеджер SSH туннелей (VPS SSH Tunnel Manager)
Описание
Автономный менеджер SSH туннелей — это комплексное решение для создания и управления безопасными обратными SSH подключениями к вашему VPS. Система предназначена для работы на мини-ПК или серверах без постоянного мониторинга, с полной автономностью и самовосстановлением при обрывах соединения.
Ключевые возможности
- Полная автономность: автоматический запуск и поддержка туннелей после перезагрузки
- Самовосстановление: автоматическое переподключение при обрывах соединения
- Поддержка различных туннелей:
- Прямые туннели (проброс локальных портов на VPS)
- Обратные туннели (доступ к ресурсам за VPS)
- Двунаправленная маршрутизация
- Автоматическая настройка SSH: генерация ключей, настройка конфигурации
- Поддержка разных дистрибутивов: Debian, Ubuntu, CentOS, RHEL, Fedora
- Цветное меню управления: интуитивный интерфейс с визуализацией статуса
- Systemd интеграция: службы и таймеры для мониторинга
Быстрый старт
Установка одной командой
sudo bash <(curl -s https://git.softuniq.eu/OpenDoor/vps_ssh_tunel/raw/branch/main/install_ssh_tunnel.sh)
Детальная установка
Предварительные требования
- Сервер с ОС Linux (Debian/Ubuntu, CentOS/RHEL или совместимые)
- Права суперпользователя (root/sudo)
- Доступ к удаленному VPS с открытым SSH портом
- Интернет-соединение для загрузки зависимостей
Шаги установки
-
Запустите установочный скрипт:
curl -s https://git.softuniq.eu/OpenDoor/vps_ssh_tunel/raw/branch/main/install_ssh_tunnel.sh | sudo bash -
Следуйте интерактивным подсказкам:
- Введите данные вашего VPS (IP-адрес, порт, пользователь)
- Система автоматически определит дистрибутив и установит зависимости
- Будет сгенерирован SSH ключ и скопирован на VPS
-
Настройте туннели: После установки запустите менеджер туннелей:
tunnel-manager
Управление туннелями
Основные команды
# Запуск менеджера с цветным меню
tunnel-manager
# Проверка статуса служб мониторинга
systemctl status tunnel-monitor
# Просмотр логов в реальном времени
journalctl -u tunnel-monitor -f
# Просмотр логов установки
cat /tmp/ssh_tunnel_install.log
Создание туннелей через меню
- Автономный туннель (опция 1) — полная настройка с мониторингом
- Быстрый SSH туннель (опция 2) — проброс порта 22 для удаленного доступа
- Обратный туннель — доступ к ресурсам, находящимся за VPS
Пример: проброс SSH доступа
При настройке быстрого туннеля система:
- Пробрасывает локальный порт 22 на удаленный порт VPS (например, 10022)
- Создает systemd службу для автономной работы
- Настраивает автоматический мониторинг и восстановление
Для подключения используйте:
ssh -p 10022 ваш_пользователь@vps_ip
Структура системы
Установленные компоненты
| Путь | Назначение |
|---|---|
/opt/ssh_tunnel_manager/ |
Основные скрипты управления |
/etc/ssh_tunnel/ |
Конфигурационные файлы туннелей |
/var/log/ssh_tunnel/ |
Логи работы туннелей и мониторинга |
/root/.ssh/ |
SSH ключи и конфигурация |
/etc/systemd/system/ |
Systemd службы и таймеры |
Systemd службы
- tunnel-monitor.service — мониторинг и восстановление туннелей
- ssh-tunnel-*.service — индивидуальные службы для каждого туннеля
- tunnel-check.timer — периодическая проверка соединений
Настройка SSH
Автоматически настроенные параметры
Система автоматически настраивает:
- Генерацию RSA ключа 4096 бит
- Конфигурацию SSH клиента для автономной работы
- Отключение строгой проверки хостов (для автоматического подключения)
- Настройку keepalive для поддержания соединения
- Поддержку как root, так и обычных пользователей
Ручная настройка ключей
Если автоматическое копирование ключа не удалось, выполните:
# Показать публичный ключ
cat /root/.ssh/id_rsa.pub
# Скопируйте вывод и добавьте в ~/.ssh/authorized_keys на VPS
Устранение неполадок
Проверка подключения
# Проверка доступности порта VPS
timeout 5 nc -z vps_ip 22
# Тестовое SSH подключение
ssh -p порт пользователь@vps_ip "echo 'Тест успешен'"
Просмотр логов
# Логи мониторинга
tail -f /var/log/ssh_tunnel/monitor.log
# Системные логи служб
journalctl -u ssh-tunnel-* --since "1 hour ago"
# Логи конкретного туннеля
journalctl -u ssh-tunnel-имя_туннеля -f
Перезапуск служб
# Перезапуск монитора
systemctl restart tunnel-monitor
# Перезапуск конкретного туннеля
systemctl restart ssh-tunnel-имя_туннеля
# Перезагрузка всех служб
systemctl daemon-reload
Особенности автономной работы
Автозапуск при загрузке
Все службы автоматически:
- Запускаются после загрузки системы
- Проверяют доступность сети
- Восстанавливают туннели при их отсутствии
- Мониторят соединения каждые 30 секунд
Самовосстановление
При обнаружении обрыва соединения система:
- Автоматически перезапускает туннель
- Логирует событие для последующего анализа
- Продолжает попытки подключения до успеха
Безопасность
Рекомендации
- Используйте нестандартные порты для SSH на VPS
- Настройте брандмауэр на VPS для ограничения доступа
- Регулярно обновляйте SSH ключи
- Используйте fail2ban для защиты от bruteforce атак
- Ограничьте пользователей которые могут подключаться через туннель
Конфигурация безопасности
Система автоматически настраивает:
- SSH ключи без парольной фразы (для автономности)
- Отключение strict host checking (только для доверенных VPS)
- Настройку ServerAlive для детектирования обрывов
Поддерживаемые дистрибутивы
- Debian/Ubuntu (apt-based системы)
- CentOS/RHEL 7/8 (yum-based системы)
- Fedora (dnf-based системы)
- Rocky Linux / AlmaLinux
- Другие дистрибутивы (с ручной установкой autossh)
Разработка и вклад
Структура репозитория
vps_ssh_tunel/
├── install_ssh_tunnel.sh # Основной установочный скрипт
├── README.md # Эта документация
└── (дополнительные скрипты) # Утилиты управления
Сборка и тестирование
Для тестирования установки:
# В тестовой среде (Docker/LXC)
chmod +x install_ssh_tunnel.sh
./install_ssh_tunnel.sh
Лицензия
Проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.
Поддержка
Для получения помощи:
- Проверьте логи в
/var/log/ssh_tunnel/ - Убедитесь в доступности VPS и корректности настроек
- Проверьте настройки брандмауэра на VPS
- Убедитесь, что SSH ключ добавлен в authorized_keys на VPS
Примечание: Эта система предназначена для использования в доверенных сетях и требует дополнительной настройки безопасности для использования в production-средах.