Skip to content

Latest commit

Β 

History

170 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘οΈ MTProto Checker

Read in English | На русском | δΈ­ζ–‡ | فارسی

A powerful tool to verify Telegram MTProto Proxies by performing real protocol handshakes. Unlike simple TCP checkers, this tool attempts to fetch the actual server configuration from Telegram via the proxy, ensuring 100% connectivity and eliminating the "Connecting..." issue.

UI Screenshot

🌟 Features

  • Deep inspection: A real MTProto handshake and a help.getNearestDC call through the proxy β€” not a TCP ping β€” so "working" means Telegram actually connects.
  • Go backend: Powered by gotd/td β€” fast, stable, one ~21MB binary with no dependencies.
  • Paste anything: Dirty lists are cleaned automatically β€” mangled tg:// / https://t.me links are fixed, spam secrets and invalid ports dropped β€” and no phone login is needed (public test keys).
  • Three ways to load a list: Paste it, pick a .txt/.csv/.list file, or drag one onto the input box.
  • Built-in proxy list: One click on "Load list" pulls a list rebuilt nightly from 17 public sources β€” the fresh copy over the network, the copy baked into the binary when the network is blocked. Sources can be added or switched off, they are ranked by how many working proxies they delivered, and the fetch can go through a SOCKS5 proxy.
  • Pause & resume: Interrupt a scan and continue where it left off without rechecking.
  • Results ready to use: Working proxies land in a table sorted by ping, with per-row copy, a plain-text view, and TXT/JSON export.
  • Interface: Dark & light themes, four languages (English, Persian, Russian, Chinese).

πŸš€ Installation

Option 1 β€” Download from Releases

Download the pre-built binary for your platform from Releases.

Platform File
Windows (amd64) mtproto-checker-windows-amd64.exe
Linux (amd64) mtproto-checker-linux-amd64
Linux (arm64) mtproto-checker-linux-arm64
macOS (Intel) mtproto-checker-darwin-amd64
macOS (Apple Silicon) mtproto-checker-darwin-arm64

Run the binary. Once the server is listening, your browser opens automatically at the bound address (default http://127.0.0.1:3000). Set NO_BROWSER=1 to disable the auto-open; it is also skipped automatically when HOST is set to a non-loopback address (e.g. a headless server with HOST=0.0.0.0). If the launch fails, the server keeps running β€” open the printed address manually.

The server listens on 127.0.0.1 only. Set the PORT environment variable to change the port, and HOST=0.0.0.0 to expose it to the network β€” there is no authentication, so opt in deliberately.

Option 2 β€” Build from Source

Requires Go 1.26.3+ (matches the go directive in go.mod). Download Go.

git clone https://github.com/rahgozar94725/MTProto-Checker.git
cd MTProto-Checker
go build -o mtproto-checker .
./mtproto-checker

Binary: ~21MB, no other dependencies.

πŸ“– How to Use

  1. Get Proxies: Copy your list of mixed/dirty MTProto proxies.

    Tip: You can find a huge list of free proxies in this repository.

  2. Load the List: Paste into the "Input List" box, click "File", or drag a file onto the box.
  3. Or Load the Built-in List: Click "Load list" to pull the nightly list built from 17 public sources β€” the network copy first, the copy baked into the binary if that is blocked. Open "List sources" to add your own URLs or turn sources off, and "SOCKS5 proxy (optional)" if the lists themselves are filtered where you are.
  4. Start Check: Click the "Start Check" button.
  5. Wait: Invalid formats are filtered out first, then every proxy is checked concurrently and each result streams back the moment it lands. The four tiles above the input β€” progress, working, best ping, failed/skipped β€” update as it goes.
  6. Collect Results: Working proxies appear in the results table, fastest first β€” copy a single row, click "Copy Working List", or export as TXT/JSON.

πŸ”Œ HTTP API

The UI uses POST /check-stream (Server-Sent Events). For scripts, POST /check is the supported endpoint β€” one proxy per request:

curl -s http://127.0.0.1:3000/check \
  -H 'Content-Type: application/json' \
  -d '{"server":"1.2.3.4","port":443,"secret":"ee...","timeout":10}'
# {"ok":true,"ping":123}  or  {"ok":false}

timeout is in seconds, clamped to 3–30 (default 5). Request bodies are capped at 8 MiB, and batch requests accept at most 10 000 proxies (HTTP 413 beyond either limit).

POST /check-batch is deprecated: it still works but answers with a Deprecation: true header and will be removed in a future release. Use /check for scripting or /check-stream for streaming results.

βš™οΈ How it Works

This tool spins up a real Telegram client in the background and connects exactly like the phone app does β€” if it succeeds, the proxy definitely works. Many proxies respond to TCP pings but fail to encrypt/decrypt Telegram packets (fake proxies).

  1. Parses & Sanitizes: Cleans up broken links (e.g., .&port typos).
  2. Validates Secret: Rejects secrets that are too long (spam padding) or invalid.
  3. Connects: Establishes a secure MTProto connection through the proxy.
  4. Invokes API: Sends a help.getNearestDC request to Telegram Data Centers.
  5. Result: If the server replies, the proxy is marked as Working with its latency.

πŸ›  Tech

  • gotd/td β€” MTProto API client with native MTProxy support
  • Vanilla HTML/CSS/JS frontend β€” no frameworks, no build step
  • Single binary, no external dependencies

β˜• Support

If you found this tool useful, you can support the development:

Crypto donation button by NOWPayments

πŸ“ License

This project is open-source and available under the MIT License.

About

πŸ›‘οΈ Real MTProto proxy checker β€” performs actual Telegram handshake via gotd/td to verify proxy connectivity, not just TCP ping. Go backend, web UI, 4 languages.

Topics

Resources

Stars

73 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages