Всё описанное ниже — результат технического эксперимента. Материал не является рекламой, не призывает к каким-либо действиям, носит исключительно ознакомительный характер и подготовлен в рамках исследования.
Официальный заброшенный репозиторий на GitHub
Основной источник информации форк официального репозитория на GitHub
Подготовка
Устанавливаем зависимости
apt install git curl build-essential libssl-dev zlib1g-dev xxd
Клонируем репозиторий и переходим в него
git clone https://github.com/GetPageSpeed/MTProxy && cd MTProxy
Компилируем и переходим в каталог к исполняемому файлу
make && cd objs/bin
Скачиваем служебные данные от Telegram
curl -s https://core.telegram.org/getProxySecret -o ./proxy-secret && curl -s https://core.telegram.org/getProxyConfig -o ./proxy-multi.conf
Запуск
Наиболее устойчивым к блокировкам считается режим Fake-TLS, по этому трафик маскируется под него. В данном примере в качестве домена используется “google.com”, но подставить можно любой, например домен популярного мессенджера, который не заблокирован или вообще свой сайт.
Генерируем ключ
DOMAIN="google.com" && RAW_HEX=$(head -c 16 /dev/urandom | xxd -ps) && HEX_DOMAIN=$(echo -n "$DOMAIN" | xxd -p) && FULL_SECRET="ee${RAW_HEX}${HEX_DOMAIN}" && echo -e "\n1. Raw key\n$RAW_HEX\n\n2. HEX domain ($DOMAIN):\n$HEX_DOMAIN\n\n3. Full key:\n$FULL_SECRET\n"
В результате получаем:
- Чистый ключ:
- HEX-домен (google.com):
- Полный secret для Systemd и Telegram App:
Опциональный шаг для регистрации спонсорского канала (можно пропустить):
- переходим в MTProxybot
- отправялем команду
/newproxy - отправялем ip адрес сервера и порт в формате
ip_address:port - отправялем чистый ключ для @MTProxybot
- получаем тэг и пару линков для прокси, нужен только тэг.
Далее правим конфингурацию
micro /etc/systemd/system/MTProxy.service
и вставляем в неё информацию (порт 443 можно заменить):
[Unit]
Description=Telegram MTProxy
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/MTProxy
# Configuration update
ExecStartPre=/usr/bin/curl -s https://core.telegram.org/getProxySecret -o ./objs/bin/proxy-secret
ExecStartPre=/usr/bin/curl -s https://core.telegram.org/getProxyConfig -o ./objs/bin/proxy-multi.conf
# Proxy start
ExecStart=/home/MTProxy/objs/bin/mtproto-proxy -u nobody -H 443 -S raw_key -D googel.com -P tag_from_MTProxybot_optional --aes-pwd ./objs/bin/proxy-secret ./objs/bin/proxy-multi.conf -M 1
Restart=on-failure
[Install]
WantedBy=multi-user.target
Если используется свой сайт, то следует указать порт прослушки, то есть -D example-site.com:443
Добавляем в автозагрузку и рестартуем сервис
systemctl daemon-reload && systemctl enable MTProxy.service && systemctl restart MTProxy.service && systemctl status MTProxy.service
Добавляем перезапуск сервиса раз в сутки
crontab -e
b добавляем строку для перезагрузки, например в 3:00
0 3 * * * /bin/systemctl restart MTProxy.service
Для удобства можно воспользоваться сервисом формирования расписания
Ссылка proxy
Для того чтобы собрать рабочую ссылку, вам понадобятся три параметра:
- IP-адрес
- порт (который указан после -H)
- полный ключ (тот, что начинается на “ee”)
В итоге ссылка формируется как
https://t.me/proxy?server=IP_ADDRESS&port=PORT&secret=FULL_KEY
Сформированная ссылка добавляет прокси автоматически при клике на неё.