Este artículo lo ha escrito uno de los miembros de nuestro grupo de Telegram
Autor: L1Cafe
Blog: https://www.l1cafe.blog/2024/03/24/set-up-your-own-telegram-proxy.html
Configura un proxy Telegram MTProto en una Raspberry Pi con Alpine Linux y Docker en unos pocos minutos y comunícate libremente.
Si quieres evadir las restricciones impuestas a Telegram en España usando MTProxy, puedes usar este mismo procedimiento que se describe a continuación, pero debes hacerlo en un servidor que no se encuentre en España. Es recomendable que uses un VPS en algún proveedor en Internet, Digital Ocean suele ser una buena opción.
Al lío.
Vas a necesitar:
Antes de empezar, algunas cosas a tener en cuenta:
Descarga la imagen de Alpine Linux para Raspberry Pi de https://www.alpinelinux.org/downloads/. Yo he seleccionado aarch64
en formato img.gz
para mi Raspberry Pi 3B+.
Inserta una tarjeta microSD en tu lector de tarjetas microSD. El método más sencillo para grabar la imagen en la tarjeta es utilizar Raspberry Pi Imager: https://www.raspberrypi.com/software/. Hay versiones para macOS, Windows, y Ubuntu. En muchos sistemas operativos basados en Linux que soportan Flatpak, como Fedora, puedes encontrarlo en tu centro de software simplemente buscando «Raspberry».
.img.gz
de todas formas), y la tarjeta microSD donde quieres grabar la imagen.Inserta la tarjeta microSD preparada en tu Raspberry Pi, y conéctala a tu monitor con un cable HDMI. Conecta también un teclado USB (no necesitas ratón), y por último, conecta la fuente de alimentación microUSB, o lo que corresponda en su lugar. Tu Raspberry Pi debería arrancar automáticamente en la pantalla de inicio de sesión de Alpine Linux.
Inicia sesión con root
, no necesitas escribir una contraseña. Escribe setup-alpine
para comenzar el proceso de instalación, y responde a las preguntas según aparecen. La distribución de teclado española se llama es
, que es una de las primeras preguntas.
Para el nombre de host, puedes introducir lo que prefieras, no tiene por qué ser idéntico al nombre de dominio que le vas a dar para compartir tu proxy.
Para la configuración de red (se recomienda ethernet), tu router proveerá un servicio DHCP, pero es mala idea utilizarlo a largo plazo, porque si la dirección IP de tu LAN cambia, cosa que puede suceder cada pocas horas o días, el redireccionamiento de puertos dejaría de funcionar. Se recomienda configurar una IP estática fuera del rango DHCP, para evitar colisiones.
Una alternativa es que algunos routers ofrecen emparejamiento de dirección MAC y dirección IP. De esta manera, el servidor DHCP de tu router recordará tu MAC y siempre asignará la dirección IP que tú configures. En cuyo caso, deberías seleccionar DHCP en el instalador. En cualquier caso, anota tu dirección IP porque la vas a necesitar más adelante.
Ctrl + Alt + F2
.ip a show eth0
para obtener la dirección MAC de tu Raspberry Pi. Puedes utilizar esta MAC para asignarle la dirección IP que prefieras en los ajustes de tu router. Esto se suele llamar «IP estática» o «DHCP static IP».Ctrl + Alt + F1
.Para la zona horaria yo he elegido Europe/Amsterdam
.
El cliente NTP por defecto es suficiente, pulsa intro para aceptar esta elección por defecto.
Para los espejos (mirrors), puedes usar f
para seleccionar el más rápido, cercano a ti.
No necesitas configurar un usuario. Aunque no se recomienda utilizar root
para actividades rutinarias, esta Raspberry Pi va a funcionar exclusivamente como una máquina proxy que configurarás una vez y te puedes olvidar de ella.
Si quieres acceder a esta Raspberry Pi remotamente sin necesidad de cable HDMI o USB, configurar SSH es buena idea. De otro modo, desactivar SSH es una mejor elección por seguridad, especialmente considerando que esta máquina va a estar expuesta a Internet.
Si quieres activar SSH, lo más sencillo es establecer una contraseña larga y compleja que puedas recordar, pero es buena práctica utilizar claves SSH. No explicar cómo funcionan las claves SSH porque hay cientos de artículos que lo explican al máximo detalle, pero incluso en este caso, seguramente quieras establecer una contraseña al menos temporalmente, y luego puedes configurar acceso con claves SSH y prohibir contraseñas. Para ello, cuando el instalador pregunta si quieres habilitar acceso root, tienes que introducir yes
. De lo contrario, prohibit-password
sólo permitirá acceso si has configurado claves SSH.
Como la Raspberry Pi sólo tiene una tarjeta microSD y no tiene almacenamiento interno, tendrás que sobreescribir esta tarjeta microSD. No hay ningún problema. Te sugerirá probar el medio de arranque (boot media). De otro modo, si reinicias la RPi o pierdes electricidad durante unos segundos, todos tus ajustes se borrarán y RPi arrancará de nuevo con el instalador.
Tendrá un aspecto como /media/mmcblk0
. Indica yes
para utilizar esta tarjeta microSD, y luego escribe mmcblk0
cuando el instalador pregunta qué disco utilizar.
Con respecto a modos de instalación, sys
es lo más sencillo. Para instalaciones cifradas o configuraciones más avanzadas, por favor consulta el manual de instalación de Alpine Linux.
Reinicia, e introduce root
como usuario, y tu contraseña.
Instala las herramientas básicas:
apk add vim nano
Puedes elegir otro editor de texto. Únicamente vi
está disponible por defecto, pero nano
es el más recomendable para principiantes.
Para instalar Docker, necesitamos activar los repositorios community
. Edita /etc/apk/repositories
. A mí me gusta Vim. Simplemente mueve el cursor al carácter #
en frente del repositorio community
, y pulsa x
para borrarlo. Para guardar, pulsa :wq
.
Mi lista de repositorios tiene este aspecto tras los cambios:
/media/mmcblk0/apks
http://alpine.mirror.wearetriple.com/v3.19/main
http://alpine.mirror.wearetriple.com/v3.19/community
apk update && apk add docker
rc-update add docker && rc-service docker start
docker run --rm nineseconds/mtg:2 generate-secret tgproxy.0x7.io > config.toml
Puedes elegir otro nombre de dominio, hay más detalles en la documentación: https://github.com/9seconds/mtg. Has escrito un secreto a config.toml
. Ahora, puedes editar este archivo para que tenga el siguiente aspecto:
secret = "Y0uRS3cr37"
bind-to = "0.0.0.0:7104"
El secreto ya está en el archivo. Simplemente rodéalo con "
dobles comillas, y puedes elegir otro puerto si prefieres. Es recomendable configurar el mismo puerto para configuración, contenedor, host, y redireccionamiento en tu router por razones de simplicidad.
docker run -d -v $PWD/config.toml:/config.toml -p 7104:7104 --name mtg-proxy --restart=unless-stopped nineseconds/mtg:2
Nótese aquí el «unless-stopped». Esto indica a Docker que este contenedor debe iniciarse a menos que se detenga manualmente. Así que tu proxy debería arrancar automáticamente siempre y cuando hayas configurado el servicio de Docker para que arranque con el sistema.
Si todo ha ido bien, puedes conectar con tu proxy utilizando cualquier cliente de Telegram. Puedes mostrar la configuración con el siguiente comando:
docker exec mtg-proxy /mtg access /config.toml
Si estás conectado a través de SSH, ahora puedes copiar esta configuración y mantenerla segura para dársela a amigos y familiares. Finalmente, reenvía el puerto 7104
en la configuración de su router al puerto 7104
en su IP Raspberry Pi (consulte la parte superior del artículo sobre cómo configurar una IP estática o configurar DHCP).
Si deseas verificar que todo funciona correctamente, reinicia tu Raspberry Pi escribiendo reboot
y, si agregaste tu proxy a Telegram, debería conectarse correctamente después de unos segundos.
Si has configurado un servicio DNS dinámico, puedes reemplazar su dirección IP desde los enlaces generados con tu nombre de host DNS dinámico.
Si necesitas un proxy para Telegram, tengo uno aquí. Puede que no dure para siempre, pero siempre que esté disponible, siéntete libre de utilizarlo. Simplemente haz click en ese enlace o agrégalo a Telegram con los siguientes detalles:
MTPROTO
tgproxy.0x7.io
6122
7kc85dSVjrX5aMh2gKI4VKBnb29nbGUuY29t