Files
mtproxy_checker/README.md
T

1.8 KiB
Raw Blame History

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 — как Telethon TcpMTProxy после init; deepreq_pq/resPQ до DC).

Код выхода: 0 — OK (fast: рукопожатие + init, прокси не рвёт TCP сразу; deep: плюс resPQ от DC), 1 — ошибка (в deep в т.ч. нет валидного 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.