Docker Compose для Telegram MTProxy (MTProxy) и SOCKS5 на базе microsocks: один docker compose up поднимает оба сервиса, network_mode: host.
-
Клонируйте репозиторий и перейдите в каталог:
git clone https://github.com/GvozdevAD/mtproxy-socks-docker.git cd mtproxy-socks-docker -
Скопируйте окружение и задайте секреты:
cp .env.example .env
Секрет MTProxy для клиентов (32 hex-символа) и при желании учётные данные SOCKS5. Удобно сгенерировать строки для
.env:make secret
Выведет
SECRET=…,SOCKS_USER=…иSOCKS_PASSWORD=…(по 7 символов латиницы и цифр для SOCKS). Либо вручную:head -c 16 /dev/urandom | xxd -psдляSECRET. -
Запуск обоих сервисов:
make up
Или:
docker compose up -d --build.
Порты слушаются на хосте напрямую (см. PORT, TLS_PORT, SOCKS_PORT в .env). Откройте их в файрволе при необходимости.
Конфиг Telegram для MTProxy (proxy-secret, proxy-multi.conf) при первом старте подтягивается в ./data (том в docker-compose.yaml).
make up-mtproxy— только MTProxy;make up-socks— только microsocks (SOCKS5).
Настройки → Данные и память → Прокси — тип SOCKS5, хост и порт из .env (SOCKS_PORT, по умолчанию 1080). Если заданы SOCKS_USER и SOCKS_PASSWORD, включите авторизацию в клиенте; на публичном сервере не оставляйте открытый SOCKS5 без логина/пароля.
Остановка: make down — всё; make down-mtproxy / make down-socks — по отдельности. Перезапуск: make restart, либо make restart-mtproxy / make restart-socks.
Список целей с подсказками по разделам (Common / MTProxy / SOCKS / Utils):
make helpВ том числе: make secret — случайные SECRET, SOCKS_USER, SOCKS_PASSWORD; make link — ссылки tg://proxy; make up / make up-mtproxy / make up-socks; make logs-socks — логи microsocks.
| Переменная | Смысл |
|---|---|
SECRET |
Обязательно — ровно 32 hex-цифры (16 байт), без префикса dd. Префикс dd для random padding указывается в Telegram при добавлении MTProxy, на сервере в .env всегда только «голый» hex. |
WORKERS |
Число воркеров MTProxy (по умолчанию 1) |
PORT |
Локальный порт MTProto (по умолчанию 8888, в т.ч. для /stats с localhost) |
TLS_PORT |
Порт «fake TLS» для клиентов MTProxy (по умолчанию 443) |
SOCKS_PORT |
Порт SOCKS5 (по умолчанию 1080); microsocks в make up или отдельно в make up-socks |
SOCKS_USER |
Логин SOCKS5; если пусто — без авторизации (только для доверенной сети) |
SOCKS_PASSWORD |
Пароль SOCKS5; обязателен, если задан SOCKS_USER |
Подробности по флагам MTProxy — в репозитории MTProxy.