Об этом проекте
stab — это современный, простой и компактный высокопроизводительный инструмент для TCP-туннелей, предназначенный для легкого вывода локальных портов на удаленные серверы. Он написан на Rust, предоставляет интерфейсы командной строки и конфигурационных файлов, а также поддерживает встраивание в другие программы.
Основные особенности:
- Высокая производительность
- Проверка живости (heartbeat)
- Статистика трафика
- Веб-страница администрирования с возможностью ручного разрыва соединений
- Одновременный вывод нескольких локальных портов
- Автоматическое переподключение при обрыве связи (настраиваемо)
- Локальный IPC API: возможность запуска другими программами без конфигурации и динамической загрузки настроек
Способы установки:
- Установка через cargo: `cargo install stab`
- Загрузка предварительно скомпилированных бинарных файлов из GitHub Releases
Способы использования:
1. Запуск серверной части на удаленном хосте: `stab server`, по умолчанию порт управления 5656, порт веб-администрирования 3400. Можно изменить порты, ограничить диапазон портов данных и настроить размер пула соединений.
2. Создание туннеля на локальной машине: `stab local -l 8000=server.com`, что маппит локальный порт на удаленный сервер; удаленный порт может назначаться автоматически или указываться вручную.
3. Поддержка всех параметров через конфигурационный файл (TOML), при этом аргументы командной строки имеют приоритет.
4. Поддержка аутентификации по общему секрету для предотвращения злоупотреблений.
5. Возможность установки пароля для защиты веб-страницы администрирования.
Встраивание в другие программы:
- Запуск через `stab local --api`, предоставляющий IPC API через именованные каналы (Windows) или Unix Domain Socket.
- Протокол представляет собой JSON-кадры с префиксом длины, поддерживающие методы ping, get_status, set_config, add_link, remove_link, list_links, clear_links, shutdown и другие.
- Процесс-хост может динамически добавлять/удалять туннели, обновлять конфигурацию и получать статус.
Примеры конфигурационных файлов:
- Серверный `server.toml`: настройка режима, портов, секретов, логирования, веб-порта, диапазонов портов, размера пула соединений и т.д.
- Локальный `local.toml`: настройка режима, портов, секретов, логирования, хоста по умолчанию, политики переподключения, списка туннелей и т.д.
Список аргументов командной строки:
- `server` / `local`: режим работы
- `-f, --file`: путь к конфигурационному файлу
- `-c, --control-port`: порт управления
- `-s, --secret`: секрет туннеля
- `--log`: уровень логирования
- `--log-path`: каталог для логов
- `-l, --link`: маппинг туннеля
- `--api`: включение IPC API
- `--api-path`: путь к IPC
- `--api-token`: токен IPC
- `-w, --web-port`: порт веб-администрирования
- `-p, --port-range`: диапазон портов данных
- `--pool-size`: размер пула соединений
Проект предоставляет документацию на китайском и английском языках, что делает его подходящим для разработчиков и системных администраторов, которым нужно быстро вывести локальные сервисы наружу.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.