Свой прокси для Telegram

Давно Telegram запустил свой протокол для прокси MTPROTO, благодаря которому любой желающий может создать свой прокси и монетизировать его используя функцию Promoted Channel.

Вот так выглядит настройки прокси в специальном боте MTProxy Admin Bot

Свой прокси для Telegram Mtproto, Telegram, Длиннопост

Теперь давайте приступим к создание прокси. Первым делом необходимо минимум как VDS/VPS особой разницы нет в аббревиатуре, но все же.

VDS можно купить у hetzner cloud, так как у них имеется аппаратная DDoS защита да и цены низкие.

Инструкция специально под ОС: Debian. Скачиваем putty и вводим IP адрес от сервера и жмем Open.

Свой прокси для Telegram Mtproto, Telegram, Длиннопост

Далее вводим логин: root и вставляем пароль которую вы получили после заказа и жмём Enter.

И вводим следующий команды:

apt-get install git build-essential libssl-dev zlib1g-dev curl

wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz

tar -zxf openssl-1.1.0h.tar.gz

cd openssl-1.1.0h

./config

make

make install

ldconfing /usr/local/lib

echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf


Теперь собираем сам mtproto proxy

git clone https://github.com/TelegramMessenger/MTProxy

cd MTProxy

make

cp objs/bin/mtproto-proxy /usr/local/bin

Теперь создадим пользователя, каталог для конфигов и логов

adduser --system --no-create-home --disabled-login --group mtproxy

mkdir /etc/mtproxy

mkdir /var/log/mtproxy

chown mtproxy:mtproxy /var/log/mtproxy/

cd /etc/mtproxy

wget https://core.telegram.org/getProxySecret -O proxy-secret

wget https://core.telegram.org/getProxyConfig -O proxy-multi.conf


Генерируем  16-ричный secret-key

head -c 16 /dev/urandom | xxd -ps

И далее:

nano /etc/init.d/mtproxy

#!/bin/sh
### BEGIN INIT INFO
# Provides: mtproto-proxy
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: MTProxy service
### END INIT INFO
set -e
# Must be a valid filename
NAME=mtproto-proxy
PIDFILE=/var/run/$NAME.pid
#This is the command to be run, give the full pathname
DAEMON=/usr/local/bin/mtproto-proxy
DIR=/etc/mtproxy
DAEMON_OPTS="-u mtproxy -p 8888 -6 -H 443 -l /var/log/mtproxy/mtproxy.log -d -S <secret> -P <proxy-tag> --aes-pwd /etc/mtproxy/proxy-secret /etc/mtproxy/proxy-multi.conf -M 1"
USER=mtproxy
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
case "$1" in
start)
echo -n "Starting daemon: "$NAME
start-stop-daemon --start --background --pidfile $PIDFILE -d $DIR -m --exec $DAEMON -- $DAEMON_OPTS
echo "."
;;
stop)
echo -n "Stopping daemon: "$NAME
start-stop-daemon --stop --signal TERM --quiet --oknodo --pidfile $PIDFILE
echo "."
sleep 3
;;
restart)
echo -n "Restarting daemon: "$NAME
start-stop-daemon --stop --signal TERM --quiet --oknodo --retry 30 --pidfile $PIDFILE
start-stop-daemon --start --background --pidfile $PIDFILE -d $DIR -m --exec $DAEMON -- $DAEMON_OPTS
echo "."
;;
*)
echo "Usage: "$1" {start|stop|restart}"
exit 1
esac
exit 0

Расшифровка параметров:

-u mtproxy — процесс запускается от пользователя mtproxy

-p 8888 — локальный порт, можно использовать для получения статистики

-6 — включает ipv6

-H 443 — на каком порту ожидать подключение клиентов, 443 подходит идеально, провайдеры и прочие будут думать что это обычный https траффик

-l /var/log/mtproxy/mtproxy.log — лог файл, но как я писал выше, логи почему то не пишутся, может нужно включить verbose или еще чего, разберусь потом

-S <secret-key> — секретный ключ который мы сгенерировали(надеюсь вы поняли что <secret-key>, нужно заменить на сгенерированную строку, например на 575b04f4b28f72263965d1d371707c06)

--aes-pwd /etc/mtproxy/proxy-secret — конфиг с секретом, что там в нем, черт его знает

/etc/mtproxy/proxy-multi.conf — конфиг файл с ip адресами серверов

-M 1 — количество главных процессов, пишут что хватает одного, если у вас там не супер-пупер нагруженный сервер.

Даем права на запуск скрипта chmod +x /etc/init.d/mtproxy

Активируем автозапуск update-rc.d mtproxy defaults

Запускаем службу /etc/init.d/mtproxy start

1. Пишем @MTProxybot /start1.1 Он запросит адрес нашего прокси в формате host:port

1.2 Потом запросит secret, отправляем ему

1.3 Если все окей выведет сообщение об успехе Success и proxy tag его надо прописать в ExecStart сервиса -P <proxy-tag>, описывал выше.

Свой прокси для Telegram Mtproto, Telegram, Длиннопост

2. Добавим канал, пользователи которые будут пользоваться вашим прокси автоматически будут «подписаны» на Promoted канал.

2.1 Командой /myproxies запросим список наших прокси(их может быть несколько)

2.2 Выберем необходимый

Свой прокси для Telegram Mtproto, Telegram, Длиннопост

2.3 И нажмем кнопку Set promotion

2.4 Введем название канала в формате @имя_канала

2.5 Все, примерно через час данные promotion применяться и у пользователей использующих ваши прокси появится ваш канал.

Свой прокси для Telegram Mtproto, Telegram, Длиннопост

Ну собственно и все, все легко и просто.

Вот статистика моего MTPROTO proxy. Правда я его не монетизировал,да и не вижу смысла.

Свой прокси для Telegram Mtproto, Telegram, Длиннопост

P.S. Баянометр ругался на картинки.