Update README and Docker documentation to clarify exit codes and error handling. Introduce new error for no data received after MTProxy header in checker logic.
Publish mtproxy_checker Docker image / test (push) Successful in 6s
Publish mtproxy_checker Docker image / build-and-push (push) Successful in 51s

This commit is contained in:
Denozordec
2026-04-11 01:35:37 +07:00
parent 175136d82a
commit e3049028cd
3 changed files with 10 additions and 5 deletions
+4 -3
View File
@@ -60,7 +60,7 @@ docker run -d --name mtproxy-api --restart unless-stopped -p 8080:8080 `
| GET | `/health` | `200`, `{"status":"ok"}` |
| GET | `/api/v1/proxies` | `200`, JSON с полями `cycle_finished_at`, `next_check_after`, массив `proxies` |
Элемент `proxies[]`: `raw_line`, при успешном разборе — `url`, `ok`, `exit_code` (`0` OK, `1` ошибка проверки, `2` ошибка разбора URL/секрета, `3` прокси закрыл соединение, `4` таймаут), `error`, при необходимости `parse_error`, `checked_at`.
Элемент `proxies[]`: `raw_line`, при успешном разборе — `url`, `ok`, `exit_code` (`0` OK — после отправки MTProxy-заголовка прочитан хотя бы один байт от сервера; `1` ошибка проверки, в т.ч. если за окно ожидания **нет ни одного байта** ответа; `2` ошибка разбора URL/секрета; `3` прокси закрыл соединение; `4` таймаут всего запроса), `error`, при необходимости `parse_error`, `checked_at`.
### Whitelist IP и Docker
@@ -280,8 +280,8 @@ docker run --rm registry.example.com/owner/mtproxy_checker:latest \
| Код | Значение |
|-----|----------|
| 0 | Проверка прошла |
| 1 | Ошибка (сеть, протокол, неверный ответ) |
| 0 | Проверка прошла: после MTProxy-заголовка получен хотя бы один байт от прокси |
| 1 | Ошибка (сеть, протокол, неверный ответ; в т.ч. **нет данных** от прокси после заголовка за окно ожидания) |
| 2 | Неверные аргументы CLI |
| 3 | Прокси закрыл TCP сразу после начального payload |
| 4 | Общий таймаут (`-timeout`) |
@@ -292,6 +292,7 @@ docker run --rm registry.example.com/owner/mtproxy_checker:latest \
- `connection refused` — порт закрыт или фильтр.
- `FAIL: timeout` — нет ответа за `-timeout`.
- `no data from proxy after mtproxy header` — рукопожатие прошло, но прокси не прислал ни одного байта в фазе после заголовка (часто совпадает с «Недоступен» в клиенте Telegram).
- Ошибки чтения/проверки ServerHello — несовместимый ответ или обрыв соединения.
Для отладки без `--rm` можно посмотреть логи контейнера по id; с `--rm` контейнер удаляется сразу после выхода.