Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
7.4 KiB
| date | tags | aliases | link | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 2026-07-11 |
|
|
https://v2.hysteria.network/docs/advanced/Traffic-Stats-API/ |
🦎 Hysteria 2 — Traffic Stats API
[!info] О чём заметка Как включить и использовать HTTP-API статистики Hysteria 2: посмотреть трафик по пользователям, кто сейчас онлайн, и отключить (kick) клиента. Полезно тем, кто раздаёт сервер нескольким людям. Включается в Hysteria/config-server. Обзор протокола — Hysteria/00-overview.
TL;DR
- Traffic Stats API — встроенный в сервер HTTP-интерфейс: сколько кто накачал (
/traffic), кто онлайн (/online), плюс возможность отключить пользователя (/kick). - Работает по именам пользователей (id), которые задаются аутентификацией:
userpass, HTTP-бэкенд или другой способ из Hysteria/config-server. - Включается секцией
trafficStatsсlistenиsecret. Всегда задавайтеsecret— иначе любой, кто достучится до порта API, увидит статистику и сможет кикать пользователей. - Kick сам по себе не блокирует навсегда: клиент переподключится. Чтобы отключить насовсем, надо ещё забанить пользователя в вашем бэкенде аутентификации.
Зачем это нужно
Если сервер используете только вы — API, скорее всего, не понадобится. Он полезен, когда сервером пользуется несколько человек (userpass или свой бэкенд аутентификации): можно смотреть, кто сколько трафика израсходовал, кто сейчас подключён, и точечно отключать нарушителей — всё через простые HTTP-запросы, которые легко дёрнуть из скрипта или панели.
Включение
Добавьте в Hysteria/config-server:
trafficStats:
listen: :9999
secret: some_secret
listen— адрес и порт, где поднимется API.secret— ключ доступа. Прикладывается к запросам в заголовкеAuthorization.
[!danger] Без secret API открыт всем Если не задать
secret, любой, у кого есть доступ к адресу API, сможет посмотреть статистику трафика и отключать ваших пользователей. Всегда задавайтеsecret, а лучше — ещё и закройте порт API через Hysteria/acl-outbounds или фаервол, чтобы он не торчал наружу. Не вешайте API на публичный интерфейс без крайней необходимости.
Запрос с ключом делается так:
curl -H 'Authorization: some_secret' http://ip:9999/traffic
Эндпоинты
GET /traffic — трафик по пользователям
Возвращает JSON: id пользователя → сколько байт передано. tx — отдача клиента (upload), rx — приём клиента (download).
{
"wang": { "tx": 514, "rx": 4017 },
"joe": { "tx": 7790, "rx": 446623 }
}
Параметр ?clear=1 обнуляет счётчики после выдачи — удобно для периодического снятия статистики (например, раз в сутки): GET /traffic?clear=1.
GET /online — кто онлайн
Возвращает JSON: id пользователя → число подключений. Важно: считаются экземпляры клиента (устройства), а не активные проксируемые соединения. Значение 2 у пользователя означает, что он подключён с двух устройств.
{ "wang": 2, "joe": 1 }
POST /kick — отключить пользователей
Принимает JSON-массив id для отключения:
["wang", "joe"]
[!warning] Kick не блокирует навсегда У клиента встроена логика переподключения — после kick он попытается подключиться снова. Чтобы отключить пользователя насовсем, недостаточно kick: нужно ещё заблокировать его в вашем бэкенде аутентификации (или убрать из списка
userpass). Kick полезен как «сбросить сессию здесь и сейчас», а не как «забанить».
GET /dump/streams — детали соединений
Возвращает JSON с информацией по каждому QUIC-потоку активных TCP-прокси-соединений: пользователь, запрошенный адрес, «пронюханный» протоколом домен (если включён sniffing), счётчики трафика, время создания и последней активности. Если добавить заголовок Accept: text/plain, вывод будет человекочитаемым, похожим на ss -atn. Полезно для отладки — увидеть, куда именно ходят соединения конкретного пользователя.
📚 См. также
- Hysteria/config-server — где включается
trafficStatsи настраивается аутентификация (id пользователей). - Hysteria/acl-outbounds — как закрыть порт API от посторонних.
- Hysteria/00-overview — общая картина.
- 🔗 Traffic Stats API — официальная документация
[!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.