Introduction

En este artículo vamos a explicar cómo desplegar un MTProto Proxy de Telegram, software usado principalmente para evitar el bloqueo de la aplicación en cierto países.

Telegram soporta dos tipos de servidores Proxy: el SOCKS5 estándar y el MTProto, del que hablareemos a continuación.

¿Qué es Telegram?

Telegram es una aplicación de mensajería con foco en la velocidad y la seguridad. Es gratuita y es usada por más de 700 millones de usuarios cada mes. Una de sus mejores funcionalidades es que se puede utilizar en varios dispositivos a la vez.

Desde mi punto de vista es la mejor alternativa de WhatsApp debido a sus múltiples funcionalidades. Sin embargo, WhatsApp tiene más popularidad en España, donde vivo.

Prerrequisitos

Para esta configuración necesita un servidor (puede ser una Raspberry Pi, o un VPS…) con Linux y acceso root. En mi caso yo voy a utilizar un VPS de DigitalOcean con Ubuntu. Además, es opcional pero recomendable tener un dominio apuntando al servidor.

Configurar el Firewall de tu servidor

Para este tutorial utilizaremos el puerto 3128/TCP para tener el proxy escuchando. Debes de abrir este puerto en el servidor. En caso de que tengas el Firewall UFW, este sería el comando para abrir el puerto:

sudo ufw allow 3128/tcp

En caso de ser otro firewall, consulta su documentación.

Instalar Go and Git

Ahora necesitamos tener Go y Git instalados antes de instalar el Proxy de Telegram.

Actualizar el sistema

La primera tarea que hacer es tener el sistema actualizado:

sudo apt update && sudo apt upgrade -y

Instalar Go

sudo apt install -y golang-go

Instalar Git

sudo apt install -y git

mtg

Instalar mtg

Ahora ya podemos instalar mtg, el software que utilizaremos para correr el Proxy de Telegram. Este software está en un repositorio de Github, y con Git, podemos descargar el software:

git clone https://github.com/9seconds/mtg.git

Y ahora lo tenemos que compilar:

cd mtg
go build

Finalmente tenemos que copiar el binario compliado en el directorio bin del sistema.

sudo cp mtg /usr/local/bin

Configuración de mtg

Crear la secret

El parámetro más importe de la configuración de mtg es la secret, que necesitaremos para compartirla con los usuarios que van a utilizar este Proxy de Telegram.

mtg generate-secret myhost.mydomain.com

Guarda en un lugar seguro la secret generada.

Fichero de configuración

El fichero de configuración de mtg es un fichero TOML. Está localizado en el directorio /etc:

sudo vi /etc/mtg.toml

Y es necesario añadir las siguientes líneas (Cambia la secret por la generada en el paso anterior):

secret = "7pVoP5GAKIYq2MasbaeySiNteWhvc3QubXlkb21haW4uY29t"
bind-to = "0.0.0.0:3128"

Iniciar mtg

Para este software necesitarás crear el servicio systemd, que se realiza así:

sudo vi /etc/systemd/system/mtg.service
[Unit]
Description=mtg - MTProto proxy server
Documentation=https://github.com/9seconds/mtg
After=network.target

[Service]
ExecStart=/usr/local/bin/mtg run /etc/mtg.toml
Restart=always
RestartSec=3
DynamicUser=true
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

Y ahora hay que recargar la configuración y habilitar el arranque de mtg en el arranque del sistema:

sudo systemctl daemon-reload
sudo systemctl enable mtg
sudo systemctl start mtg

Cómo usar el Proxy con Telegram

mtg facilita un comando para generar las URLs a configurar en el cliente de Telegram de una forma sencilla.

mtg access /etc/mtg.toml

Ejecutando el comando anterior, verás que genera un enlace similar a éste:

tg://proxy?port=3128&secret=7pVoP5GAKIYq2MasbaeySiNteWhvc3QubXlkb21haW4uY29t&server=1.2.3.4

Este enalce puede ser compartido en una conversación de Telegram, con lo que será fácilmente instalable.