---
date: 2026-07-11
tags:
  - hysteria
  - api
  - мониторинг
  - трафик
aliases:
  - Hysteria Traffic Stats API
  - Hysteria API трафика
  - Hysteria kick пользователя
link: 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|серверный config.yaml]]:

```yaml
trafficStats:
  listen: :9999
  secret: some_secret
```

- **`listen`** — адрес и порт, где поднимется API.
- **`secret`** — ключ доступа. Прикладывается к запросам в заголовке `Authorization`.

> [!danger] Без secret API открыт всем
> Если не задать `secret`, любой, у кого есть доступ к адресу API, сможет посмотреть статистику трафика и отключать ваших пользователей. Всегда задавайте `secret`, а лучше — ещё и закройте порт API через [[Hysteria/acl-outbounds|ACL]] или фаервол, чтобы он не торчал наружу. Не вешайте API на публичный интерфейс без крайней необходимости.

Запрос с ключом делается так:

```shell
curl -H 'Authorization: some_secret' http://ip:9999/traffic
```

## Эндпоинты

### GET `/traffic` — трафик по пользователям

Возвращает JSON: id пользователя → сколько байт передано. `tx` — отдача клиента (upload), `rx` — приём клиента (download).

```json
{
  "wang": { "tx": 514, "rx": 4017 },
  "joe":  { "tx": 7790, "rx": 446623 }
}
```

Параметр `?clear=1` обнуляет счётчики после выдачи — удобно для периодического снятия статистики (например, раз в сутки): `GET /traffic?clear=1`.

### GET `/online` — кто онлайн

Возвращает JSON: id пользователя → число подключений. Важно: считаются **экземпляры клиента (устройства)**, а не активные проксируемые соединения. Значение `2` у пользователя означает, что он подключён с двух устройств.

```json
{ "wang": 2, "joe": 1 }
```

### POST `/kick` — отключить пользователей

Принимает JSON-массив id для отключения:

```json
["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|ACL и маршрутизация]] — как закрыть порт API от посторонних.
- [[Hysteria/00-overview|Hysteria 2 — обзор]] — общая картина.
- 🔗 [Traffic Stats API — официальная документация](https://v2.hysteria.network/docs/advanced/Traffic-Stats-API/)

---

> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: [исходник этой заметки](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/Hysteria/traffic-stats-api.md) · [весь репозиторий](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main).
