Перейти к содержимому
Обновлено

Справка пока не актуальна. Приложение развивается быстрее, чем мы успеваем его описывать. Страницы описывают Watchpost 0.1.0 alpha (сборка 444) и могут быть неполными или устаревшими. Подробнее

Лимиты и отказы

Порт релея открыт в интернет, поэтому релей защищается сам. Значения по умолчанию рассчитаны на одно приложение и один регистратор до 32 каналов.

Меняются они в объекте limits файла /etc/watchpost/relay.json, а применяются командой:

Окно терминала
sudo systemctl reload watchpost-relay

Открытые туннели при этом остаются и продолжают считаться.

Настройка По умолчанию Что ограничивает
deviceConnections 48 Одновременные туннели к одному устройству, по всем портам и всем токенам вместе
devices нет Свои лимиты для выбранных устройств, по адресу, каким его видит хаб (10.77.N.x)
clientConnections 32 Одновременные TCP-соединения с одного адреса клиента (IPv6 – на /64). Лишние закрываются до TLS
freeFailures 5 Неверные токены с одного адреса, после которых начинаются паузы
pauseSeconds 1 Первая пауза. Каждая следующая вдвое длиннее
maxPauseSeconds 300 Самая длинная пауза

Старый регистратор отказывает, когда приложение открывает слишком много соединений. Один NVR 2019 года после двух воспроизведений потерял и DVRIP, и RTSP. Лимит считается на устройство, потому что падает устройство целиком, а не отдельный порт.

Для такого регистратора с одной-двумя камерами задайте низкий лимит на его адрес:

"limits": {
"devices": { "10.77.1.9": 6 }
}

Второе приложение теперь получит отказ уже при входе и до воспроизведения не дойдёт.

После пяти неверных токенов с одного адреса все запросы с него отклоняются на секунду. Следующая пауза – две секунды, потом четыре и так до пяти минут. В паузу не пропускают и верный токен, иначе она не замедлила бы подбор. Когда пауза кончилась, верный токен обнуляет счёт, а адрес без ошибок в течение 15 минут забывается.

Клиенты за одним NAT оператора делят общий счёт.

В каждом отказе есть заголовок Watchpost-Refusal с причиной.

Запрос Статус Watchpost-Refusal Что это значит
Туннель, токена нет или он неверный 407 token Токен доступа объекта неверен, или объекта уже нет на хабе. Повторите настройку объекта
Туннель, адрес или порт вне токена 403 target Устройства нет в списке объекта, либо порт не служебный (80, 443, 554, 8000, 8899, 34567). После добавления устройства создайте скрипт заново
Туннель, туннели токена заняты 429 token-limit Объект исчерпал свои туннели
Туннель, туннели устройства заняты 429 device-limit Закройте другой просмотр или поднимите лимит для этого устройства
Туннель, адрес клиента на паузе 429 client-paused Слишком много неверных токенов. Подождите Retry-After секунд
Туннель, устройство не ответило 502 или 504 unreachable Устройство не отвечает хабу. Проверьте туннель объекта и само устройство
API, неверный токен администратора 401 token Токен администратора не подходит к этому хабу
API, смена токена объекта 409 нет Токен объекта менять нельзя. Удалите объект и добавьте заново