Denozordec e3049028cd
Publish mtproxy_checker Docker image / test (push) Successful in 6s
Publish mtproxy_checker Docker image / build-and-push (push) Successful in 51s
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.
2026-04-11 01:35:37 +07:00
2026-04-11 00:38:22 +07:00
2026-04-11 00:38:22 +07:00
2026-04-11 00:38:22 +07:00
2026-04-11 00:38:22 +07:00

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).

Код выхода: 0 — OK (после рукопожатия от прокси получен хотя бы один байт данных), 1 — ошибка (в т.ч. «тишина» после MTProxy-заголовка), 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.

S
Description
No description provided
Readme
234 KiB
Languages
Go 93.5%
JavaScript 5.4%
Dockerfile 0.8%
Shell 0.3%