Гайд: MTProto-прокси на VPS с сайтом-заглушкой (Ubuntu 26.04 LTS)
Проверено на: Ubuntu 26.04 LTS (Resolute Raccoon), достаточно 1CPU, 1GB RAM (для себя поднимал на 2CPU, 4GB RAM с запасом)
Схема: Nginx с реальным SSL-сертификатом слушает порт 443 и отдаёт сайт-заглушку. Telemt (MTProto-прокси) работает на порту 8443. Клиенты Telegram подключаются к proxy.example.com:8443, обычные посетители видят настоящий HTTPS-сайт на порту 443.
⚠️ Нужен свой домен с A-записью на IP VPS. VPS покупал тут. Был вопрос с заменой айпи, тк первый заблокирован был РКНом. Бесплатная замена толкьо в течении 7 дней (через поддержку!). А дальше 150 рублей (не так дорого в целом). Сайт на 443 выступает маскировкой и делает трафик к вашему домену «легитимным» с точки зрения DPI.Цены на ВПС-сервера для понимания (1/2/40 - 189 руб, 2/4/60 - 280 руб):
Схема работы
┌─────────────────────────────┐
│ VPS (ваш сервер) │
│ │
Посетитель ───443──►│ Nginx ──► сайт-заглушка │
│ │
Telegram ───8443───►│ Telemt ──► Telegram DC │
│ │
└─────────────────────────────┘- Порт 443 — Nginx с валидным сертификатом Let's Encrypt. Любой сканер увидит настоящий HTTPS-сайт.
- Порт 8443 — Telemt, MTProto-прокси. Подключаются только Telegram-клиенты с секретом.
Шаг 1. Подготовка VPS
Требования: Ubuntu 26.04 LTS, 1CPU, 1GB RAM.
Все команды ниже без sudo, все что касается bash команд в самом Убунту лучше делать через sudo, к примеру sudo apt update Это не касается содержимого конфигураций (это для новичков!)
# Обновление системы apt update && apt upgrade -y # Установка базовых утилит apt install -y curl wget nano ufw # Настройка файрвола (UFW предустановлен в Ubuntu 26.04) ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw allow 8443/tcp ufw enable
Проверьте DNS: A-запись домена (например, proxy.example.com) должна указывать на IP VPS:
nslookup proxy.example.com
Шаг 2. Установка Nginx и сайта-заглушки
# Установка Nginx (доступен в стандартных репозиториях Ubuntu 26.04) apt install -y nginx # Создание директории для сайта mkdir -p /var/www/proxy.example.com/html
Поместите файл index.html в /var/www/proxy.example.com/html/. Это может быть любой сайт — лендинг, страница «сайт в разработке», корпоративная заглушка. Чем естественнее выглядит — тем лучше для маскировки.
Создайте конфигурацию /etc/nginx/sites-available/proxy.example.com:
server {
listen 80;
listen [::]:80;
server_name proxy.example.com;
root /var/www/proxy.example.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}Активируйте конфигурацию и удалите дефолтную:
ln -s /etc/nginx/sites-available/proxy.example.com /etc/nginx/sites-enabled/ rm -f /etc/nginx/sites-enabled/default nginx -t systemctl reload nginx
Проверьте, что сайт открывается по http://proxy.example.com.
Шаг 3. Выпуск SSL-сертификата для сайта (порт 443)
# Установка Certbot (в Ubuntu 26.04 идёт Certbot 4.0 с плагином Nginx) apt install -y certbot python3-certbot-nginx # Выпуск сертификата и автоматическая настройка Nginx certbot --nginx -d proxy.example.com
Certbot 4.0 автоматически создаёт systemd timer для продления сертификата при установке — отдельно настраивать cron не нужно.
- выпустит сертификат Let's Encrypt
- добавит в конфигурацию Nginx блок
listen 443 sslс путями к сертификатам - настроит редирект с HTTP на HTTPS
После этого ваш сайт доступен по https://proxy.example.com. Убедитесь, что замок в браузере зелёный.
certbot renew --dry-run
Шаг 4. Установка MTProto-прокси (Telemt) на порт 8443
Вариант A: Быстрая установка (MTPROTO_FIX_By_MEKO)
curl -fsSL https://raw.githubusercontent.com/Mekotofeuka/MTPROTO_FIX_By_MEKO/main/install.sh | sudo bash
- Домен для маскировки:
proxy.example.com(на этот домен вы потом будете натягивать заглушку) - Порт:
8443 - Тип фикса: V3 (рекомендуется)
Скрипт выведет tg://proxy? ссылку для подключения клиентов.
Вариант B: Ручная установка Telemt
# Установка curl -fsSL https://raw.githubusercontent.com/telemt/telemt/main/install.sh | sh
git clone https://github.com/telemt/telemt cd telemt cargo build --release mv ./target/release/telemt /bin/ chmod +x /bin/telemt
Создайте конфигурацию /etc/telemt/config.toml:
[general] prefer_ipv6 = false fast_mode = true use_middle_proxy = true [general.modes] classic = false secure = false tls = true [general.links] public_host = "proxy.example.com" public_port = 8443 show = "*" [[server.listeners]] ip = "0.0.0.0" port = 8443 [censorship] tls_domain = "proxy.example.com" tls_emulation = true
port = 8443— Telemt слушает отдельный порт, не конфликтуя с Nginxpublic_hostиpublic_port— по этим данным формируется ссылкаtg://proxy
systemctl enable telemt systemctl start telemt systemctl status telemt
Шаг 5. Проверка
ss -tlnp | grep -E ':443|:8443'
Сайт: откройте https://proxy.example.com — должен открыться сайт-заглушка с валидным сертификатом.
Прокси: получите tg://proxy? ссылку из логов:
journalctl -u telemt -n 50 | grep 'tg://'
Или из меню MTPROTO_FIX_By_MEKO. Отправьте ссылку себе в Telegram и подключитесь. Проверьте соединение — например, через @mtprotoproxybot или в настройках Telegram → Данные и память → Использование прокси.
Возможные проблемы
Certbot не выпускает сертификат
- Порт
80должен быть доступен извне. Проверьте:ss -tlnp | grep ':80'— должен слушать Nginx. - Файрвол:
ufw status - Провайдер VPS: убедитесь, что порты
80и443открыты в панели. - Домен:
nslookup proxy.example.com→ должен вернуть IP VPS. - Если домен на Cloudflare — отключите проксирование (DNS-only), иначе Certbot не пройдёт проверку.
Telemt не запускается
- Порт
8443занят:ss -tlnp | grep ':8443' - Логи:
journalctl -u telemt -f - Проверьте синтаксис конфигурации
config.toml.
Сайт не открывается на 443
- Nginx слушает порт:
ss -tlnp | grep ':443' - Сертификат на месте:
ls /etc/letsencrypt/live/proxy.example.com/ - Логи Nginx:
journalctl -u nginx -fили/var/log/nginx/error.log
Telegram не подключается к 8443
- Убедитесь, что порт
8443открыт в файрволе и у провайдера. - Проверьте, что
public_port = 8443в конфигурации — иначе в ссылкеtg://будет указан неверный порт. - Проверьте актуальность секрета (он генерируется при запуске и виден в логах).
- Если провайдер VPS блокирует нестандартные порты — попробуйте другой порт (например,
9443).
Почему схема «сайт на 443 + прокси на 8443» удобнее
- Nginx получает стандартный порт 443 — Certbot работает штатно, без конфликтов.
- Сайт отвечает как обычный HTTPS-ресурс — DPI видит легитимный сертификат и контент.
- Telemt не мешает Certbot, потому что не занимает порт 80/443.
- Проще отладка — Nginx и Telemt полностью независимы.
Итог
На одном VPS (Ubuntu 26.04 LTS) работают:
- HTTPS-сайт на
443(Nginx + Let's Encrypt, Certbot 4.0 с авто-продлением через systemd) - MTProto-прокси на
8443(Telemt)
Сканеры видят обычный сайт, Telegram-клиенты с секретом — ходят через прокси. Схема проверена на практике и легко воспроизводится.
(c) l0makin про IT