Aprende a montar tu propio proxy MTProto para conectarte a Telegram

Foto por Christian Wiediger en Unsplash

No hace falta que explique por qué Telegram es tan importante en países donde la censura es real. En la Cuba de estos tiempos (y en otros países), Telegram tiene “problemas” de conexión. La solución a esos problemas es combinar una VPN como la que lancé para cubanos, y un proxy MTProto como este que monté para mí y que puedes utilizar.

Existen miles de proxys allá afuera, pero te puede suceder que de repente se quedan sin conexión porque son eliminados por sus propios creadores, o por cualquier otro motivo, así que siempre es bueno tener uno en tu propio servidor, siempre que te puedas dar ese lujo. En este post te explico cómo montar tu propio proxy en pocos pasos y de forma sencilla.

¿Qué necesitas?

Esto no lleva demasiados recursos, solo esto:

  • Un servidor, te recomiendo un VPS, pero si puede ser uno dedicado, mejor.
  • Alguna distribución de Linux, en este caso te recomiendo Ubuntu.
  • Acceso SSH al servidor y privilegios de administrador.

Instalación del proxy

Hay dos formas de instalar el proxy, puedes hacerlo de la forma larga y difícil o usando Docker. Aquí vamos a cubrir el segundo caso, por cuestiones de comodidad.

  1. Entra al servidor y autentícate como administrador.
  2. Instala Docker, si lo tienes instalado, salta al siguiente paso.
sudo apt-get updatesudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-commoncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo apt-key fingerprint 0EBFCD88sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

3. Ejecuta el contenedor de Docker para levantar el proxy.

Aquí tienes que pensar en varios aspectos, por ejemplo: el puerto por el cual se podrá acceder al proxy, en mi caso fue el 6968, pero puedes usar el que quieras, siempre que no esté ocupado por otro proceso.

docker run -d -p6968:443 --name=mtproto-proxy --restart=always -v proxy-config:/data telegrammessenger/proxy:latest

Puedes cambiar /data por el directorio donde quieras que se almacene la configuración. Una vez que ejecutes el comando, el contenedor estará activo.

4. Busca en los registros del contenedor el secret.

docker logs mtproto-proxy

En la salida, verás algo como esto, copia el secret en la línea que dice algo como Secret 1: 3aafeda568dda405b08d5a508ba66757.

5. Entra a Telegram y añade el proxy, escribe el IP o el dominio de tu servidor, el puerto que seleccionaste y el secret que acabas de copiar. Dale clic en guardar y conectar.

Si todo está bien, te saldrá el proxy como conectado. Walá!

Importante: No olvides permitir el puerto en tu firewall, en mi caso uso UFW.

ufw allow 6968
ufw reload

Registra el proxy dentro de Telegram

En este paso, nos vamos al bot MTProxyBot dentro de Telegram y seguimos las instrucciones:

Una vez dentro del bot, lo inicias y registras el proxy con el comando /newproxy.

Esto te devolverá un mensaje con un tag que deberás guardar para luego y el enlace https del proxy por si quieres compartirlo en redes sociales y uno para dentro de Telegram, que es el que comienza con tg.

Volvemos al servidor y detenemos el contenedor, para volverlo a crear, pero esta vez con el tag que acabaste de obtener. Debes además pasar el secret, para que no genere uno nuevo.

docker container stop mtproto-proxydocker container rm mtproto-proxydocker run -d -p6968:443 --name=mtproto-proxy --restart=always -v proxy-config:/data -e SECRET=3aafeda568dda405b08d5a508ba66757 -e TAG=692d6af88c924556f89a90345e052db0 telegrammessenger/proxy:latest

Si ejecutas docker logs mtproto-proxy, verás en la salida que arrancó con el secret y el tag que le pasaste.

Y si quieres personalizar la cantidad de workers que tendrá el container, puedes añadir el parámetro -e WORKERS=0, que significa un worker master y uno esclavo, o 1 para dos procesos, 2 para tres, y así sucesivamente.

Sopresa, Telegram te deja promocionar un canal 😎

Si como yo, tienes un canal de Telegram, puedes establecerlo como canal sponsor del proxy, y le saldrá en la aplicación a todos los que se conecten por medio de él. Esto es algo opcional, pero muy útil, porque es una forma de premiar a los que de forma altruista montan estos servicios.

Así que de vuelta al bot, ejecutas el comando /myproxies, le das en “Edit promotion” y sigues las instrucciones. Además, puedes ver las estadísticas de uso.

Eso es todo, espero que te sea útil. La próxima vez que experimentes problemas de conexión con Telegram, piensa en esta opción, o busca cualquiera de los que aparecen en este canal:

También te dejo un video explicando esto mismo, en mi canal de YouTube:

https://youtu.be/-6okhsl08HI

Indie maker turning ideas into useful products. Software engineer, writer and podcaster. Building in public.

Indie maker turning ideas into useful products. Software engineer, writer and podcaster. Building in public.