-probe flag for selecting between fast and deep probing modes. Update README and Docker documentation to reflect this change, including details on timeout handling and exit codes for improved clarity.
mtproxy_checker
Проверка MTProto MTProxy на Go: не ICMP ping, а TCP + протокол (для ee — Fake-TLS, затем первый кадр MTProxy; для dd — сразу MTProxy Randomized Intermediate).
Сборка
go build -o mtproxy_checker.exe ./cmd/mtproxy_checker
Запуск
.\mtproxy_checker.exe "tg://proxy?server=HOST&port=PORT&secret=HEX"
или
.\mtproxy_checker.exe --server HOST --port PORT --secret HEX
Флаги: -timeout (по умолчанию 15s), -dc-id (по умолчанию 2), -probe fast|deep (по умолчанию fast — быстрая проверка; deep — MTProto до DC).
Код выхода: 0 — OK (через прокси получен ответ Telegram DC на MTProto req_pq — resPQ), 1 — ошибка (в т.ч. нет валидного resPQ), 2 — неверные аргументы, 3 — прокси закрыл соединение после проверки, 4 — таймаут.
Docker: docs/docker.ru.md — один образ: с аргументами после образа — CLI; без аргументов — HTTP API (файл со списком tg://, интервал, опциональный whitelist IP).
Если в Telegram прокси «Available», а утилита падает на read server hello
Для ee в TLS SNI должен идти только ASCII hostname из хвоста секрета; в коде это SNIDomain. Ответ сервера читается по схеме из Telegram Desktop (mtproto_tls_socket), а не по старому фиксированному формату telethon.