119
MTProto.md
Normal file
119
MTProto.md
Normal file
@@ -0,0 +1,119 @@
|
||||
### Устаналвиваем докер
|
||||
```
|
||||
curl -fsSL https://get.docker.com | sh
|
||||
```
|
||||
Далее `nano start_proxy.sh`
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
# Цвета для красивого вывода
|
||||
GREEN='\033[0;32m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
CONTAINER_NAME="mtproto-proxy"
|
||||
PORT="443"
|
||||
FAKE_DOMAIN="ya.ru" # Домен для Fake TLS
|
||||
|
||||
echo "🚀 Запуск MTProto прокси с Fake TLS"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo -e "📌 Используем домен: ${BLUE}${FAKE_DOMAIN}${NC}"
|
||||
|
||||
# Генерируем секрет для Fake TLS
|
||||
echo -n "🔑 Генерация Fake TLS секрета... "
|
||||
|
||||
# Получаем hex домена ya.ru
|
||||
DOMAIN_HEX=$(echo -n $FAKE_DOMAIN | xxd -ps | tr -d '\n')
|
||||
echo -e "\n hex домена: ${DOMAIN_HEX}"
|
||||
|
||||
# Дополняем случайными символами до 30 символов
|
||||
DOMAIN_LEN=${#DOMAIN_HEX}
|
||||
NEEDED=$((30 - DOMAIN_LEN))
|
||||
RANDOM_HEX=$(openssl rand -hex 15 | cut -c1-$NEEDED)
|
||||
|
||||
# Собираем секрет
|
||||
SECRET="ee${DOMAIN_HEX}${RANDOM_HEX}"
|
||||
|
||||
echo -e " Случайное дополнение: ${RANDOM_HEX}"
|
||||
echo -e " Секрет: ${YELLOW}${SECRET}${NC}"
|
||||
echo " Длина: ${#SECRET} символов"
|
||||
|
||||
# Проверяем, свободен ли порт 443
|
||||
echo -n "🔍 Проверка порта ${PORT}... "
|
||||
if ss -tuln | grep -q ":${PORT} "; then
|
||||
echo -e "${YELLOW}порт занят${NC}"
|
||||
# Ищем альтернативный порт
|
||||
for alt_port in 8443 8444 8445; do
|
||||
if ! ss -tuln | grep -q ":${alt_port} "; then
|
||||
PORT=$alt_port
|
||||
echo " Используем порт: ${PORT}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo -e "${GREEN}свободен${NC}"
|
||||
fi
|
||||
|
||||
# Останавливаем старый контейнер, если есть
|
||||
echo -n "🛑 Остановка старого контейнера... "
|
||||
sudo docker stop ${CONTAINER_NAME} >/dev/null 2>&1
|
||||
sudo docker rm ${CONTAINER_NAME} >/dev/null 2>&1
|
||||
echo -e "${GREEN}готово${NC}"
|
||||
|
||||
# Запускаем официальный прокси от Telegram
|
||||
echo -n "📦 Запуск контейнера... "
|
||||
sudo docker run -d \
|
||||
--name ${CONTAINER_NAME} \
|
||||
--restart unless-stopped \
|
||||
-p ${PORT}:443 \
|
||||
-e SECRET="${SECRET}" \
|
||||
telegrammessenger/proxy > /dev/null 2>&1
|
||||
|
||||
# Проверяем результат
|
||||
sleep 3
|
||||
if sudo docker ps | grep -q ${CONTAINER_NAME}; then
|
||||
SERVER_IP=$(curl -s ifconfig.me)
|
||||
|
||||
echo -e "${GREEN}✅ УСПЕШНО${NC}"
|
||||
echo ""
|
||||
echo "📊 ИНФОРМАЦИЯ ДЛЯ ПОДКЛЮЧЕНИЯ:"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "🌐 Сервер: ${SERVER_IP}"
|
||||
echo "🔌 Порт: ${PORT}"
|
||||
echo "🔑 Секрет: ${SECRET}"
|
||||
echo "🌐 Fake TLS домен: ${FAKE_DOMAIN}"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "🔗 Ссылка для Telegram (нажмите для автоподключения):"
|
||||
echo -e "${GREEN}tg://proxy?server=${SERVER_IP}&port=${PORT}&secret=${SECRET}${NC}"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
# Сохраняем конфигурацию
|
||||
cat > ~/mtproto_config.txt << EOF
|
||||
SERVER=${SERVER_IP}
|
||||
PORT=${PORT}
|
||||
SECRET=${SECRET}
|
||||
DOMAIN=${FAKE_DOMAIN}
|
||||
LINK=tg://proxy?server=${SERVER_IP}&port=${PORT}&secret=${SECRET}
|
||||
EOF
|
||||
echo "✅ Конфигурация сохранена в ~/mtproto_config.txt"
|
||||
|
||||
# Показываем последние логи
|
||||
echo ""
|
||||
echo "📋 Логи контейнера:"
|
||||
sudo docker logs --tail 5 ${CONTAINER_NAME}
|
||||
else
|
||||
echo -e "${RED}❌ ОШИБКА${NC}"
|
||||
sudo docker logs ${CONTAINER_NAME}
|
||||
fi
|
||||
```
|
||||
Вешаем `chmod +x start_proxy.sh`
|
||||
И запускаем
|
||||
|
||||
Reference in New Issue
Block a user