Implementación de un proxy MTProto con Fake TLS: Una guía completa para un acceso estable a Telegram
En una era de creciente censura y bloqueo de internet, garantizar un acceso estable y seguro a las aplicaciones de mensajería se ha convertido en una prioridad para muchos usuarios. Un proxy MTProto, mejorado con la tecnología Fake TLS, ofrece una solución eficaz para eludir estas restricciones. Esta guía describe el proceso de despliegue de tu propio servidor proxy utilizando Docker y un VPS en solo unos minutos. Esta configuración te permite disfrazar el tráfico de Telegram como HTTPS regular, lo que dificulta significativamente su detección y bloqueo.
Cómo funcionan el proxy MTProto y Fake TLS
MTProto Proxy es un servidor proxy especializado desarrollado por el equipo de Telegram para proporcionar una conexión segura y cifrada. Utiliza el protocolo MTProto, optimizado para el funcionamiento de mensajería, asegurando alta velocidad y resistencia contra interrupciones. Su propósito principal es enrutar el tráfico de Telegram a través de un servidor intermediario, eludiendo así los bloqueos directos de direcciones IP o dominios impuestos al mensajero.
Fake TLS (Transport Layer Security) es una adición crucial al proxy MTProto, aumentando significativamente su eficacia en entornos con bloqueo activo. Esta tecnología permite que el tráfico MTProto se disfrace como tráfico HTTPS estándar, que se utiliza típicamente para conexiones seguras a sitios web. Un servidor proxy configurado con Fake TLS simula una conexión HTTPS regular a un dominio legítimo (por ejemplo, ya.ru o google.com). Para los sistemas de monitoreo externos, este tráfico aparece como navegación web ordinaria, lo que hace que sea extremadamente difícil de detectar y filtrar. Un prefijo especial ee en la clave secreta del proxy MTProto le indica al cliente de Telegram que use el modo Fake TLS, proporcionando una capa adicional de ofuscación.
Preparación para el despliegue
Para un despliegue exitoso de un proxy MTProto con Fake TLS, se requieren varios componentes. Elegir un proveedor de Servidor Privado Virtual (VPS) fiable es de vital importancia, ya que la estabilidad y velocidad de tu proxy dependen de ello.
Requisitos Mínimos del Sistema para VPS:
- Sistema Operativo: Se recomienda Ubuntu 20.04, 22.04 o 24.04 LTS (Long Term Support) por su estabilidad y paquetes actualizados. Sin embargo, el script es compatible con otras distribuciones de Linux que soporten Docker.
- RAM: 512 MB o más. Esta cantidad es suficiente para el funcionamiento básico del contenedor Docker del proxy MTProto.
- Espacio en Disco: 5 GB o más. Necesario para el sistema operativo, Docker y los registros del contenedor.
- Docker Instalado: El sistema de contenedores Docker es fundamental para ejecutar el proxy MTProto en un entorno aislado.
Instalación de Docker en Ubuntu
Si Docker aún no está instalado en tu VPS, ejecuta los siguientes comandos. Actualizarán la lista de paquetes, instalarán las dependencias necesarias y el propio Docker Engine.
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io -y
Después de la instalación de Docker, se recomienda verificar su estado con el comando sudo systemctl status docker para asegurar que el servicio esté funcionando y activo.
Despliegue automatizado del proxy MTProto
Para simplificar el proceso de despliegue, se proporciona un script Bash que automatiza todos los pasos: desde la generación del secreto hasta el lanzamiento del contenedor Docker y la salida de la información de conexión. Este enfoque minimiza la posibilidad de errores y reduce el tiempo de configuración a solo unos minutos.
Creación y ejecución del script de instalación
- Crear el archivo del script: En tu VPS, crea un nuevo archivo, por ejemplo,
start-mtproxy.sh, usando el editor de textonano:
```bash
nano start-mtproxy.sh
```
- Insertar el código del script: Copia el siguiente código y pégalo en el archivo creado. Guarda los cambios (Ctrl+O, Enter, Ctrl+X).
```bash
#!/bin/bash
Colores para una salida bonita
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" # Dominio fijo para Fake TLS
echo "🚀 Lanzando proxy MTProto con Fake TLS"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo -e "📌 Usando dominio: ${BLUE}${FAKE_DOMAIN}${NC}"
Generando secreto Fake TLS...
echo -n "🔑 Generando secreto Fake TLS... "
Obteniendo hex del dominio ya.ru
DOMAIN_HEX=$(echo -n $FAKE_DOMAIN | xxd -ps | tr -d '\n')
echo -e "\n Hex del dominio: ${DOMAIN_HEX}"
Rellenando con caracteres aleatorios hasta 30 caracteres
DOMAIN_LEN=${#DOMAIN_HEX}
NEEDED=$((30 - DOMAIN_LEN))
RANDOM_HEX=$(openssl rand -hex 15 | cut -c1-$NEEDED)
Ensamblando el secreto
SECRET="ee${DOMAIN_HEX}${RANDOM_HEX}"
echo -e " Relleno aleatorio: ${RANDOM_HEX}"
echo -e " Secreto: ${YELLOW}${SECRET}${NC}"
echo " Longitud: ${#SECRET} caracteres"
Verificando si el puerto 443 está libre
echo -n "🔍 Verificando puerto ${PORT}... "
if ss -tuln | grep -q ":${PORT} "; then
echo -e "${YELLOW}puerto ocupado${NC}"
# Buscando puerto alternativo
for alt_port in 8443 8444 8445; do
if ! ss -tuln | grep -q ":${alt_port} "; then
PORT=$alt_port
echo " Usando puerto: ${PORT}"
break
fi
done
else
echo -e "${GREEN}libre${NC}"
fi
Deteniendo contenedor antiguo, si existe
echo -n "🛑 Deteniendo contenedor antiguo... "
sudo docker stop ${CONTAINER_NAME} >/dev/null 2>&1
sudo docker rm ${CONTAINER_NAME} >/dev/null 2>&1
echo -e "${GREEN}listo${NC}"
Lanzando proxy oficial de Telegram
echo -n "📦 Lanzando contenedor... "
sudo docker run -d \
--name ${CONTAINER_NAME} \
--restart unless-stopped \
-p ${PORT}:443 \
-e SECRET="${SECRET}" \
telegrammessenger/proxy > /dev/null 2>&1
Verificando resultado
sleep 3
if sudo docker ps | grep -q ${CONTAINER_NAME}; then
SERVER_IP=$(curl -s ifconfig.me)
echo -e "${GREEN}✅ ÉXITO${NC}"
echo ""
echo "📊 INFORMACIÓN DE CONEXIÓN:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🌐 Servidor: ${SERVER_IP}"
echo "🔌 Puerto: ${PORT}"
echo "🔑 Secreto: ${SECRET}"
echo "🌐 Dominio Fake TLS: ${FAKE_DOMAIN}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🔗 Enlace para Telegram (haz clic para autoconectar):"
echo -e "${GREEN}tg://proxy?server=${SERVER_IP}&port=${PORT}&secret=${SECRET}${NC}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Guardando configuración
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 "✅ Configuración guardada en ~/mtproto_config.txt"
# Mostrando últimos logs
echo ""
echo "📋 Logs del contenedor:"
sudo docker logs --tail 5 ${CONTAINER_NAME}
else
echo -e "${RED}❌ ERROR${NC}"
sudo docker logs ${CONTAINER_NAME}
fi
```
- Haz el script ejecutable y ejecútalo:
```bash
chmod +x start-mtproxy.sh
./start-mtproxy.sh
```
Análisis del script
El script realiza una secuencia de acciones destinadas a configurar el proxy de forma rápida y correcta:
- Definición del Dominio Fake TLS: Por defecto, se utiliza
ya.ru. Este dominio será simulado por el servidor proxy para disfrazar el tráfico. Los usuarios experimentados pueden cambiarFAKE_DOMAINa otro recurso popular si lo desean. - Generación del Secreto: El script genera una clave secreta única. Comienza con el prefijo
ee, que es obligatorio para activar el modo Fake TLS en el cliente de Telegram. Después de este prefijo, se añade la representación hexadecimal delFAKE_DOMAINelegido, junto con caracteres aleatorios, para alcanzar una longitud total de 30 caracteres. Esto asegura la singularidad y seguridad del secreto. - Verificación de Disponibilidad del Puerto 443: El puerto HTTPS estándar (443) es preferido para Fake TLS, ya que su uso hace que el tráfico sea aún menos sospechoso. El script verifica si este puerto está libre. Si está ocupado, se selecciona automáticamente un puerto alternativo (8443, 8444 o 8445).
- Gestión del Contenedor Docker: El script primero detiene y elimina cualquier contenedor previamente en ejecución llamado
mtproto-proxypara evitar conflictos. Luego, se lanza un nuevo contenedor Docker utilizando la imagen oficialtelegrammessenger/proxy. Los parámetros de lanzamiento incluyen:
* -d: Ejecuta el contenedor en modo separado (segundo plano).
* --name mtproto-proxy: Asigna un nombre al contenedor para una gestión más sencilla.
* --restart unless-stopped: Reinicia automáticamente el contenedor en caso de fallos o reinicios del VPS.
* -p ${PORT}:443: Mapea el puerto externo (determinado por el script) al puerto interno 443 del contenedor.
* -e SECRET="${SECRET}": Pasa el secreto generado al contenedor como una variable de entorno.
- Salida de Información de Conexión: Después de lanzar exitosamente el contenedor, el script muestra la dirección IP del servidor, el puerto utilizado, el secreto generado y un enlace listo para usar para la conexión automática al proxy en Telegram. También se crea un archivo
~/mtproto_config.txtque contiene esta información. - Verificación de Estado: El script verifica si el contenedor Docker está en ejecución y muestra las últimas 5 líneas de sus registros para un diagnóstico rápido.
Puedes verificar el estado del contenedor Docker en ejecución en cualquier momento usando el comando:
sudo docker ps
La salida debería mostrar el contenedor mtproto-proxy con un estado de Up (en funcionamiento).
Conexión al proxy en Telegram
Después de desplegar exitosamente el servidor proxy, puedes conectarte fácilmente a él dentro del cliente de Telegram. Hay dos métodos principales disponibles:
Conexión automática (recomendado)
El método más sencillo es usar el enlace generado por el script. Simplemente copia y abre el enlace (por ejemplo, tg://proxy?server=...) en tu navegador o directamente dentro de Telegram. El mensajero te pedirá automáticamente que añadas y actives el servidor proxy. Confirma la acción tocando "Añadir Proxy".
Conexión manual
Si la conexión automática no funciona o prefieres la configuración manual, sigue estos pasos usando la información proporcionada por el script (dirección IP del servidor, puerto, secreto):
- En Dispositivos Móviles (Android/iOS):
1. Abre Telegram y ve a "Ajustes".
2. Selecciona "Datos y Almacenamiento".
3. Ve a "Ajustes de Proxy".
4. Toca "Añadir Proxy" y elige "MTProto" como tipo.
5. Introduce la dirección IP del servidor, el puerto y la clave secreta en los campos correspondientes.
- En Clientes de Escritorio (Windows/macOS/Linux):
1. Abre Telegram y ve a "Ajustes".
2. Selecciona "Avanzado" (o "Ajustes Avanzados").
3. En "Tipo de conexión", elige "Usar proxy personalizado".
4. Haz clic en "Añadir Proxy" y selecciona "MTProto" como tipo.
5. Introduce la dirección IP del servidor, el puerto y la clave secreta.
Puntos Clave
- Ofuscación del Tráfico: Fake TLS oculta eficazmente el tráfico MTProto como HTTPS regular, dificultando su bloqueo.
- Autonomía: Tu propio proxy en un VPS proporciona independencia de los servidores públicos, mejorando la estabilidad y la seguridad.
- Facilidad de Despliegue: El uso de Docker y un script automatizado permite configurar el proxy en minutos.
- Flexibilidad: El script selecciona automáticamente un puerto libre y proporciona toda la información de conexión necesaria.
- Control: Tienes control total sobre la infraestructura y puedes modificar el script para adaptarlo a tus necesidades.
— Editorial Team
Aún no hay comentarios.