Comments 23
Воу, спасибо
Помимо mtg есть еще реализации:
У mtg есть свои особенности, которые могут не всех устроить:
Только прямое подключение к "ядру" Телеграма
Только один секрет на пользователя
Невозможность шейпить трафик
Если нужны все эти штуки, посмотрите на другие проекты: все, кроме mtg, умеют подключаться к так называемым middle proxies, промежуточным серверам Телеграма. Раньшее такая конструкция была нужна только для adtag: это такая функциональность, когда владелец прокси может "запинить" какой-то канал у всех пользователей этого прокси. Больших преимуществ такая архитектура не дает, однако в случае, если "ядро" сбоит, возможность пойти другим путем - ценная.
походу надо telemt на Windows портировать)))
Да, mtg я выбрал скорее за простоту, актуальность и удобство для приватного сценария “поднять себе и нескольким своим”. Если нужны middle proxies, более гибкая маршрутизация и доп. управление трафиком, то перечисленные вами реализации действительно стоит рассматривать отдельно.
Трафик маскируется под HTTPS — сложно детектировать
Порт 2443
Противоречий не видите?
порт сам по себе ничего не “маскирует”. Я имел в виду, что маскируется именно паттерн трафика за счёт Fake TLS, а 2443 здесь — вынужденный компромисс из-за особенностей Windows/HTTP.sys, где 443 уже занят.
Вы пишите - "трафик сложно детектировать". А его детектировать легче лёгкого, потому что у вас буквально HTTPS-запросы к некоему популярному сайту идут почему-то на отличный от 443-го порт. Для ТСПУ это уже повод такой трафик заблокировать. Или сходить на этот адрес и проверить, а живет ли там сайт, к которому запрос идет. На этом все обходы и закончатся для этого сервера
mtg без проблем собирается в .exe (18730496 bytes) и исполняет командную строку.
Let's take a look:
Usage: mtg simple-run <bind-to> <secret>
Run proxy without config file.
Arguments:
<bind-to> A host:port to bind proxy to.
<secret> Proxy secret.
Flags:
-h, --help Show context-sensitive help.
-v, --version Print version.
-d, --debug Run in debug mode.
-c, --concurrency=8192 Max number of concurrent connection to proxy.
-b, --tcp-buffer="4KB" Size of TCP buffer to use.
-i, --prefer-ip="prefer-ipv6" IP preference. By default we prefer IPv6 with fallback to IPv4.
-p, --domain-fronting-port=443 A port to access for domain fronting.
-n, --doh-ip=1.1.1.1 IP address of DNS-over-HTTP to use.
-t, --timeout=10s Network timeout to use
-a, --antireplay-cache-size="1MB" A size of anti-replay cache to use.
So, if you want to startup a proxy with CLI only, you can do something like
$ mtg simple-run -n 1.1.1.1 -t 30s -a 512kib 127.0.0.1:3128 7hBO-dCS4EBzenlKbdLFxyNnb29nbGUuY29t
Я в статье опирался на конкретный сценарий с run через конфиг, потому что он у меня был воспроизводим на практике, но вы правы: у mtg есть и simple-run, где можно стартовать вообще без конфига. Это как раз хороший вариант для тех, кому удобнее держать всё в одной команде без отдельного toml.
Поделитесь, пожалуйста, инструкцией, как собрать exe. Или самим файлом. Не получилось у меня через докер. Не подключается ТГ.
а как теперь зарегистрировать этот прокси в @MTProxybot?
Никак, просто пользуйтесь. mtg не поддерживает adtag, а следовательно и регистрировать нечего. Если вам принципиально нужна поддержка такого промо, используйте telemt
отбросить первые 2 символа секрета и взять следующие 32
Никак, и в моём сценарии это не требовалось. @MTProxybot в первую очередь нужен для официального MTProxy-сценария Telegram, а mtg обычно используют как самостоятельный прокси без этой регистрации. Если нужна именно интеграция с ботом и его механикой, тогда уже логичнее смотреть в сторону классических реализаций mtproto-proxy.
Наконец-то инструкция для тех, кто не хочет дружить с линуксом, но хочет свой проксик. Единственное, чего не хватает - предупреждения, что после запуска такого прокси трафик начнёт расти, и хостинг-провайдер может прислать письмо с вопросиком "а чем это вы там занимаетесь в моём холодильнике?". Но это уже маловероятная лирика.
А зачем виндовс? Можно взять vps дешевле на линуксе.
Можно, и чаще всего это действительно дешевле и проще. Но статья была именно для сценария, когда сервер уже на Windows и человек не хочет поднимать рядом ещё одну Linux-машину только ради прокси. В моём случае ценность была не в “самом дешёвом варианте”, а в рабочем решении на уже имеющейся инфраструктуре.
Кто-нибудь уже напишет, как веб-клиента заставить работать?
П.С. Автору комментария про Windows 11 — прошу прощения, случайно не ответил, а отменил ваш комментарий.
Если правильно помню, у вас сам порт вроде бы открывался, но Telegram всё равно не цеплялся. Тут я бы первым делом проверил, что адрес был локальный (192.168.x.x) — внутри сети он виден, а снаружи до него без белого IP и проброса порта на роутере Telegram просто не пробьётся.
Спасибо, за статью благодаря вам узнал про nineseconds/mtg:2
До этого у меня несколько дней стоял telegrammessenger/proxy и он вообще не работал в мобильных сетях, что логично учитывая то что он не поддерживает Fake TLS.
Кстати автор nineseconds/mtg:2 все еще поддерживает nineseconds/mtg:1 в которой как раз есть поддержка adtag для регистрации в боте @MTProxybot
MTProto прокси для Telegram на Windows Server + Docker: пошаговое руководство