MTProxy na jediném portu 443 s routováním podle SNI
Vývojáři MTProxy pro Telegram se často potýkají s rychlým blokováním podle IP adres a portů. Řešením je organizace více proxy na jednom portu 443 s využitím nginx stream a routování podle SNI. To umožňuje maskovat provoz pod oblíbené domény a škálovat síť bez změny IP.
Přístup je rozdělen na řídicí panel a agenta na serveru. Panel generuje konfigurace, agent nasazuje Docker kontejnery. Každá proxy získá jedinečné SNI z fondu domén (wikipedia.org, netflix.com atd.). Nginx analyzuje SNI a přesměruje TLS spojení do příslušného kontejneru.
Výhody schématu:
- Všechny proxy na standardním HTTPS portu
- Maskování pod legitimní provoz
- Škálování na více kontejnerů bez změny portů
- Automatická správa přes webové rozhraní
Konfigurace nginx pro stream routování
Klíčový prvek je modul ssl_preread v nginx stream bloku. Ten extrahuje SNI bez dešifrování TLS, což zajišťuje nulové zpoždění a plnou transparentnost pro klienta.
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 4096;
}
stream {
resolver 127.0.0.11 valid=10s;
log_format proxy '$remote_addr [$time_local] $ssl_preread_server_name $status';
access_log /dev/stdout proxy;
map $ssl_preread_server_name $backend {
en.wikipedia.org mtproto-proxy-3d9d46ba:443;
netflix.com mtproto-proxy-475ecb29:443;
assets.msn.com mtproto-proxy-3f8875a4:443;
default mtproto-proxy-3d9d46ba:443;
}
server {
listen 443;
proxy_pass $backend;
ssl_preread on;
proxy_connect_timeout 10s;
proxy_timeout 300s;
}
}
Důležité parametry:
resolver 127.0.0.11— DNS uvnitř Docker sítěworker_connections 4096— vysoký limit pro souběžnost- Časové limity optimalizované pro mobilní připojení
- Logování SNI pro ladění blokování
Architektura panelu a agenta
Řídicí panel (Node.js/Go) pracuje nezávisle na proxy serveru. Agent na serveru přijímá API příkazy a spravuje Docker kontejnery na základě image telemt/telemt.
Proces vytvoření proxy:
- Panel vygeneruje tajný klíč a vybere SNI z fondu
- Odešle konfiguraci agentovi
- Agent spustí
docker runs jedinečnými volume - Nginx se reload'uje s novým map blokem
Fond domén se aktualizuje ručně, s vyloučením blokovaných CDN. Každá doména je použita striktně jednou proxy.
Škálování a odolnost vůči blokování
Testování ukázalo, že proxy na nestandardních portech (4443+) jsou blokovány za 3-4 dny při 15-20 uživatelích. Schéma s portem 443 a SNI routováním zajišťuje životnost >7 dní při 50+ zařízeních.
Doporučení pro provoz:
- Používejte VDS v jurisdikcích bez DPI (Německo, Nizozemsko)
- Rotace SNI každých 7-10 dní
- Monitorování logů nginx pro vzorce blokování
- Omezení uživatelů na proxy (max 20-30)
Pro odolnost proti výpadkům nasazujte agenty na více VDS s jednou doménou panelu.
Co je důležité
- Jediný port 443: Maskuje MTProxy pod HTTPS provoz
- SNI routování: Umožňuje 10+ proxy na jedné IP bez konfliktů
- Automatizace: Panel + agent minimalizují ruční práci
- Odolnost: >7 dní životnosti při 50+ připojeních
- Škálovatelnost: Snadné přidávání nových uzlů
— Editorial Team
Zatím žádné komentáře.