MTProto прокси в Docker: запуск по шагам
Docker превращает установку прокси в одну команду: образ содержит всё, вам остаётся задать секрет, домен и порт. Ниже — путь от пустого VPS до рабочей ссылки tg://proxy. Если своё поднимать не планируете — серверы в таблице выше уже работают.
Инструкция общая для популярных реализаций; конкретные имена переменных смотрите в документации выбранного образа.
Подготовка
На VPS с Ubuntu или Debian установите Docker официальным скриптом. Убедитесь, что порт 443 свободен и открыт в файрволе. Выберите домен-легенду для FakeTLS — крупный сайт с TLS 1.3, не заблокированный.
Сгенерируйте 16 случайных байт и запишите их в hex — это ключ. Полный секрет для клиентов — ee + ключ + hex домена.
Запуск
Одна команда docker run с параметрами: проброс 443:443, переменная с секретом, переменная с доменом FakeTLS, флаг перезапуска always. Контейнер поднимется за секунды. Проверьте логами, что он слушает порт и не ругается на секрет.
Опционально добавьте рекламный тег из @MTProxybot — тогда у пользователей появится спонсорский канал.
Проверка
С телефона на мобильном интернете нажмите ссылку tg://proxy?server=IP&port=443&secret=ee… В настройках прокси должен появиться пинг. Проверьте отправку фото и звонок. Затем — с домашнего Wi-Fi: разные сети, разные фильтры.
Откройте https://IP в браузере с подменой хоста на домен легенды: должен открыться настоящий сайт, а не ошибка.
Обслуживание
Обновление — docker pull и пересоздание контейнера, секрет при этом не меняется. При блокировке IP — смена адреса у хостинга или новый VPS; ссылку придётся раздать заново, если не используете доменное имя с записью A.
Совет: сразу заведите имя вида proxy.ваш-домен и раздавайте ссылку с ним — тогда смена IP сведётся к правке DNS.
Частые ошибки первого запуска
Контейнер поднялся, но Telegram пишет «недоступен»: чаще всего порт 443 закрыт файрволом хостинга или уже занят другим сервисом — проверьте, кто слушает порт, и правила входящих соединений в панели провайдера. Вторая по частоте причина — секрет в переменной окружения указан с префиксом ee и доменом, тогда как образ ждёт голый 32-символьный ключ.
Контейнер перезапускается по кругу: смотрите первые строки логов — обычно там неверный формат домена или отсутствие прав на порт ниже 1024 без нужной capability. Решается запуском с правильным пользователем или пробросом высокого порта наружу через сетевой уровень.
- Установите Docker. Официальный скрипт установки на чистом VPS.
- Сгенерируйте ключ и выберите домен. 16 байт в hex; домен — крупный сайт с TLS 1.3.
- Запустите контейнер на 443. Секрет и домен — переменными, restart=always.
- Проверьте с мобильного интернета. Пинг в Telegram, фото, звонок.
Вопросы и ответы
Нужен ли root внутри контейнера?
Нет, стандартные образы работают от обычного пользователя.
Можно ли запустить два прокси на одном VPS?
Да, на разных IP или портах; на одном 443 — только через мультиплексор.
Сколько трафика съест контейнер сам по себе?
Ничего: расход равен трафику пользователей.