Telegram WEB Proxy на своём VPS
В каталоге есть два варианта:
install-with-panel.sh— рекомендуемый вариант с минимальной веб-панелью, отдельными secrets, QR-кодами и отзывом доступа;install.sh— облегчённый вариант без панели и с одним общим secret.
Оба варианта предназначены для отдельного VPS. Панельный вариант использует зафиксированный релиз WEB PANEL PROXY v2.0.2, проверяет SHA-256 архива до запуска и разворачивает официальный Telegram relay/MTProxy.
Что подготовить
- VPS
x86_64: Ubuntu 22.04/24.04/26.04 либо Debian 12/13; - минимум 1 vCPU, 1 ГБ RAM и 10 ГБ диска; комфортнее 2 vCPU и 2 ГБ RAM;
- отдельный поддомен, например
proxy.example.com; - A-запись поддомена на публичный IPv4 VPS;
- открытые входящие TCP-порты 80 и 443; SSH-порт 22 — только для вашего IP, если это возможно;
- DNS-запись без CDN/проксирования (в Cloudflare — серое облако, режим
DNS only).
Не публикуйте AAAA-запись, если на VPS нет исправно работающего публичного IPv6.
Запуск
Для варианта с панелью скопируйте install-with-panel.sh на VPS и выполните:
sudo bash install-with-panel.sh
Установщик спросит домен, email, логин и пароль панели. Адрес панели создаётся случайным и сохраняется в /root/telegram-web-panel-address.txt.
Для варианта без панели скопируйте install.sh и выполните:
sudo bash install.sh --hostname proxy.example.com --email admin@example.com
Аргументы можно не указывать — скрипт спросит домен и email сам:
sudo bash install.sh
Secret создаётся на сервере и не попадает в историю shell. После установки скрипт выводит:
- hostname;
- 32-символьный secret;
- готовую ссылку
tg://webproxy?...; - альтернативную ссылку
https://t.me/webproxy?....
Копия реквизитов сохраняется с правами 0600 в /root/telegram-web-proxy-access.txt.
Важные ограничения
- WEB Proxy пока имеет статус proof of concept.
- Основной поддерживаемый клиент — Telegram Desktop 7.1.0 или новее: именно в 7.1.0 в настройки подключения добавлен тип WEB Proxy.
- Обычные мобильные релизы Telegram могут не поддерживать этот тип прокси. Экспериментальная Android-реализация существует отдельно; iOS заявлен как план.
- Это прокси только для Telegram, не VPN для всего устройства.
- Один hostname обслуживает один relay; для второго VPS используйте другой поддомен и другой secret.
Проверка после установки
systemctl status caddy tproxy-firewall mtproxy tproxy-server --no-pager
curl -fsS http://127.0.0.1:8081/healthz
curl -fsS http://127.0.0.1:8081/readyz
curl -fsS https://proxy.example.com/
ss -lntp
sudo nft list table inet tproxy_backend
Снаружи должны быть доступны только 80/443 (и ваш SSH-порт). Порты 2398, 8080, 8081 и 8888 наружу открывать нельзя.
Почему скрипт останавливается на занятом 80/443
Официальный автоматический установщик заменяет активную конфигурацию Caddy. Чтобы случайно не сломать существующие сайты, этот wrapper прекращает установку при обнаружении слушателей на 80/443 или существующего /etc/caddy/Caddyfile. Для занятого VPS нужна ручная интеграция с текущим reverse proxy.