76 lines
4.5 KiB
Markdown
76 lines
4.5 KiB
Markdown
# 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 и выполните:
|
|
|
|
```bash
|
|
sudo bash install-with-panel.sh
|
|
```
|
|
|
|
Установщик спросит домен, email, логин и пароль панели. Адрес панели создаётся случайным и сохраняется в `/root/telegram-web-panel-address.txt`.
|
|
|
|
Для варианта без панели скопируйте `install.sh` и выполните:
|
|
|
|
```bash
|
|
sudo bash install.sh --hostname proxy.example.com --email admin@example.com
|
|
```
|
|
|
|
Аргументы можно не указывать — скрипт спросит домен и email сам:
|
|
|
|
```bash
|
|
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.
|
|
|
|
## Проверка после установки
|
|
|
|
```bash
|
|
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.
|