Установка и настройка MTProto Fake TLS для Telegram

Установка и настройка MTProto Fake TLS. В настоящее время многие страны блокируют работу Telegram в своих сетях.

Чтобы вопреки всем блокировкам ваш любимый мессенджер работал, добрые люди доработали MTProto, сделали его трафик замаскированным от всякого рода DPI (Deep Packet Inspection) при помощи HTTPS/TLS.

Для запуска своего MTProto Fake TLS нам нужно арендовать (купить) VPS, желательно чтобы данный VPS server находился в той стране в которой Telegram не блокируется, работал на ОС Debian 9 или 10, в системе должен быть установлен Python3, в Debian 10 он уже предустановлен в систему и устанавливать его не нужно.

После покупки в консоли сервера нужно выполнить некоторые действия для установки MTProto Fake TLS, видео по установке можно будет посмотреть в конце записи.

И так начнем подготовку к установке MTProto Fake TLS:

apt update
apt upgrade

Теперь установим нужные компоненты для работы MTProto:

apt install -y python3-pip
apt install git
pip3 install cryptography

Можно установить модуль uvloop — более быструю реализацию основного цикла событий. Производительность должна улучшиться примерно на 30%.

pip3 install uvloop

Теперь давайте скачаем сам MTProto Fake TLS:

git clone -b stable https://github.com/alexbers/mtprotoproxy.git /opt/mtprotoproxy; cd /opt/mtprotoproxy

Теперь настроим файл конфигурации:

nano config.py

В данном файле нужно раскомментировать настройку TLS_DOMAIN (убрать знак решетки) так же в секции USERS = в значение «tg» изменить нули на что-то рандомное (буквы и цифры), но не более 32 символов

Нужно чтобы MTProto после перезагрузки VPS сервера стартовал автоматически и для этого мы создадим условие.

Создадим пользователя:

useradd --no-create-home -s /usr/sbin/nologin tgproxy

После чего создадим файл mtprotoproxy.service:

nano /etc/systemd/system/mtprotoproxy.service

И вставим туда следующее содержимое с группой настроек:

[Unit]
    Description=Async MTProto proxy for Telegram
    After=network-online.target
    Wants=network-online.target

[Service]
    ExecStart=/opt/mtprotoproxy/mtprotoproxy.py
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    LimitNOFILE=infinity
    User=tgproxy
    Group=tgproxy
    Restart=on-failure

[Install]
    WantedBy=multi-user.target

Теперь скажем нашей системе что mtprotoproxy должен выполняться при старте:

systemctl enable mtprotoproxy

Запустим mtprotoproxy:

systemctl start mtprotoproxy

Узнаем ссылку для подключения и работы через MTProto Fake TLS:

journalctl -u mtprotoproxy | cat

Смотреть установку и настройку MTProto Fake TLS для Telegram:

Ссылка на GitHub: alexbers | MTProto Fake TLS