установка и настройка MTProxy на Ubuntu 24.04
MTProxy - lightweight proxy для Telegram с поддержкой Fake TLS camouflage. Прокси разрабатывается командой Telegram и используется как официальный proxy-протокол для Telegram clients. Работает только поверх TCP и предназначен только для Telegram clients.
Инструкция собиралась и проверялась на Ubuntu 24.04.
По итогу получаем:
- MTProxy server для Telegram
- Fake TLS camouflage
- Telegram sponsored channel
- systemd сервис
- автозапуск
00. подготовка сервера
Подключаемся:
ssh root@123.45.67.89
Создаем пользователя:
adduser deployuser
Даем sudo:
usermod -aG sudo deployuser
01. настройка SSH ключей
На локальном ПК:
ssh-keygen
Копируем ключ:
ssh-copy-id deployuser@123.45.67.89
Проверяем вход без пароля:
ssh deployuser@123.45.67.89
02. обновление системы
sudo apt update && sudo apt full-upgrade -y
Перезагружаем:
sudo reboot
03. отключение root login
Редактируем:
sudo nano /etc/ssh/sshd_config
Меняем:
PermitRootLogin no
Рекомендуется также отключить password authentication:
PasswordAuthentication no
Перезапускаем SSH:
sudo systemctl restart ssh
Info
На Ubuntu service может называться ssh или sshd.
04. подключение
ssh deployuser@123.45.67.89
sudo -i
05. установка зависимостей
apt install -y git build-essential libssl-dev zlib1g-dev curl
06. установка MTProxy
cd /opt
git clone https://github.com/TelegramMessenger/MTProxy.git
mkdir -p /opt/MTProxy/data
chmod 755 /opt/MTProxy
cd MTProxy
Warning
Репозиторий MTProxy обновляется. Поведение и параметры могут изменяться между версиями.
07. сборка
make
Проверяем бинарник:
test -f objs/bin/mtproto-proxy && echo OK
Проверяем зависимости:
ldd objs/bin/mtproto-proxy
08. конфиги Telegram
curl -s https://core.telegram.org/getProxySecret -o proxy-secret
curl -s https://core.telegram.org/getProxyConfig -o proxy-multi.conf
Назначаем права:
chown -R nobody:nogroup /opt/MTProxy
09. генерация base secret
head -c 16 /dev/urandom | xxd -ps
Secret должен содержать ровно 32 hex символа.
Пример результата:
a1b2c3d4e5f60718293a4b5c6d7e8f90
10. Fake TLS домен
echo -n "example.com" | xxd -ps
Для Fake TLS обычно используют:
- существующий домен
- HTTPS сайт
- правдоподобный TLS endpoint
Пример результата:
6578616d706c652e636f6d
Warning
Не используйте домены Telegram, Google или Cloudflare без понимания возможных последствий DPI/filtering.
11. пробный запуск
В примерах используется 777/tcp.
MTProxy может работать практически на любом TCP порту, но некоторые провайдеры могут фильтровать нестандартные порты.
./objs/bin/mtproto-proxy -p 8888 -H 777 -S a1b2c3d4e5f60718293a4b5c6d7e8f90 -D example.com --aes-pwd proxy-secret proxy-multi.conf --http-stats --allow-skip-dh -M 1
12. регистрация MTProxy server в MTProxyBot
Открываем:
@MTProxyBot
Команды:
/start
/newproxy
Бот попросит:
1. IP:PORT
123.45.67.89:777
2. Secret
a1b2c3d4e5f60718293a4b5c6d7e8f90
Важно:
- отправляется только base secret
- без
ee
После этого бот выдаст:
- proxy tag (
-P) - ссылку подключения
- информацию о MTProxy server
13. Telegram sponsored channel
В боте:
/myproxies
Выбираем MTProxy server → Set Channel
Отправляем:
@your_channel
или:
t.me/your_channel
Важно:
- канал должен быть публичный
- изменения применяются не сразу
- иногда обновление занимает до часа
14. systemd сервис
Создаем файл:
/etc/systemd/system/mtproxy.service
Содержимое:
[Unit]
Description=MTProto Proxy
After=network.target
[Service]
User=nobody
Group=nogroup
WorkingDirectory=/opt/MTProxy
ExecStart=/opt/MTProxy/objs/bin/mtproto-proxy -p 8888 -H 777 -S a1b2c3d4e5f60718293a4b5c6d7e8f90 -P abcdef1234567890abcdef1234567890 -D example.com --aes-pwd proxy-secret proxy-multi.conf --http-stats --allow-skip-dh -M 1
Restart=always
RestartSec=3
LimitNOFILE=65535
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
15. запуск
systemctl daemon-reload
systemctl enable --now mtproxy
Проверяем:
systemctl status mtproxy
Для применения изменений:
systemctl restart mtproxy
16. firewall
Warning
Перед включением UFW убедитесь, что разрешен OpenSSH, иначе можно потерять SSH доступ.
ufw allow OpenSSH
ufw allow 777/tcp
ufw enable
17. Fake TLS secret
Формула:
ee + base_secret + hex(domain)
Fake TLS secret всегда начинается с ee.
Secret чувствителен к регистру и должен передаваться без пробелов.
Пример:
eea1b2c3d4e5f60718293a4b5c6d7e8f906578616d706c652e636f6d
18. ссылка для пользователей
tg://proxy?server=123.45.67.89&port=777&secret=eea1b2c3d4e5f60718293a4b5c6d7e8f906578616d706c652e636f6d
19. диагностика
systemctl status mtproxy
journalctl -u mtproxy -n 50 --no-pager
journalctl -u mtproxy -f
ss -tnlp | grep :777
20. как это работает
- MTProxy server работает на base secret
@MTProxyBotрегистрирует этот же secret- proxy tag связывает MTProxy server с Telegram sponsored channel
- пользователи подключаются через Fake TLS ee-secret
- домен в Fake TLS secret используется для TLS camouflage
Info
MTProxy не шифрует весь интернет traffic пользователя и не заменяет VPN.
полезные ссылки
Official MTProxy
https://github.com/TelegramMessenger/MTProxy/
@MTProxyBot
https://t.me/MTProxyBot/