Files
wiki/tasks/mtproxy/setup_mtproxy.sh
2026-04-12 21:55:33 +03:00

68 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
set -e
# ============================================================
# MTProxy (Fake TLS) setup script for Telegram
# Uses: nineseconds/mtg:2 Docker image
# Port: 9443 (proxy), 8889 (stats)
# ============================================================
echo "==> [1/6] Проверка и установка Docker..."
if ! command -v docker &>/dev/null; then
echo " Docker не найден. Устанавливаем..."
curl -fsSL https://get.docker.com | sudo sh
sudo systemctl enable --now docker
echo " Docker установлен и запущен."
else
echo " Docker уже установлен: $(docker --version)"
fi
echo ""
echo "==> [2/6] Генерация секрета (Fake TLS, домен: www.google.com)..."
SECRET=$(sudo docker run --rm nineseconds/mtg:2 generate-secret --hex www.google.com)
echo " Секрет сгенерирован: $SECRET"
echo ""
echo "==> [3/6] Создание конфига mtg.toml..."
printf 'secret = "%s"\nbind-to = "0.0.0.0:3128"\nfake_tls_domain_check = false\n' "$SECRET" > mtg.toml
echo " Файл mtg.toml создан:"
cat mtg.toml
echo ""
echo "==> [4/6] Остановка и удаление старого контейнера (если есть)..."
sudo docker stop mtproto-proxy 2>/dev/null || true
sudo docker rm mtproto-proxy 2>/dev/null || true
echo " Готово (или контейнера не было — это нормально)."
echo ""
echo "==> [5/6] Запуск нового контейнера mtproto-proxy..."
sudo docker run -d \
--name=mtproto-proxy \
--restart=always \
-p 9443:3128 \
-p 8889:3129 \
-v "$(pwd)/mtg.toml:/config.toml:ro" \
nineseconds/mtg:2
echo " Контейнер запущен."
echo ""
echo "==> [6/6] Формирование ссылки для подключения..."
SERVER_IP=$(curl -fsSL https://ifconfig.me 2>/dev/null || hostname -I | awk '{print $1}')
SECRET_B64=$(echo -n "$SECRET" | xxd -r -p | base64 | tr '+/' '-_' | tr -d '=')
TG_LINK="tg://proxy?server=${SERVER_IP}&port=9443&secret=${SECRET_B64}"
echo ""
echo "============================================================"
echo " MTProxy успешно развёрнут!"
echo "------------------------------------------------------------"
echo " Сервер : $SERVER_IP"
echo " Порт : 9443"
echo " Секрет : $SECRET"
echo ""
echo " Ссылка для Telegram:"
echo " $TG_LINK"
echo ""
echo " Также можно открыть в браузере (заменит tg:// на https://):"
echo " https://t.me/proxy?server=${SERVER_IP}&port=9443&secret=${SECRET_B64}"
echo "============================================================"