Um MTProto Proxy para Telegram é uma aplicação executada no servidor, projetada para permitir acesso seguro e ofuscado ao serviço de mensagens Telegram, usada principalmente para contornar a censura na internet e reforçar a privacidade roteando o tráfego por um servidor intermediário.
O que é o MTProto Proxy?
O MTProto Proxy é um tipo específico de servidor proxy feito sob medida para o protocolo de mensagens do Telegram (MTProto). Diferente dos proxies SOCKS5 ou HTTP comuns, um MTProto Proxy implementa o protocolo MTProto diretamente, o que permite integração nativa com os clientes do Telegram. Sua função principal é ofuscar o tráfego do Telegram, tornando-o indistinguível do tráfego HTTPS comum para sistemas de deep packet inspection. Esse recurso é essencial em ambientes onde o Telegram é bloqueado ou restrito.
Características principais:
* Específico do protocolo: lida diretamente com o protocolo MTProto do Telegram.
* Ofuscação: criptografa e disfarça o tráfego do Telegram para escapar da censura.
* Do lado do servidor: exige implantação em um servidor dedicado (VPS).
* Integração no cliente: os clientes do Telegram têm suporte nativo a proxies MTProto.
Pré-requisitos para a instalação
Configurar um MTProto Proxy exige um servidor virtual privado (VPS) e conhecimento básico de administração Linux.
- Servidor: um VPS com acesso root.
- Sistema operacional: distribuições Debian ou Ubuntu Linux são as mais usadas e têm bom suporte. CentOS também é viável.
- Recursos: CPU e RAM mínimos são suficientes para um proxy básico. 512MB de RAM e 1 vCPU costumam bastar para centenas de usuários simultâneos.
- Rede: uma porta aberta para conexões de entrada (443 ou 80 são muito usadas por questão de ofuscação, mas qualquer porta pode ser configurada).
- Permissões: privilégios de root ou sudo no servidor.
- Ferramentas: utilitários básicos de linha de comando do Linux (por exemplo,
ssh,curl,aptouyum,systemctl,ufwouiptables).
Como configurar um servidor MTProto Proxy
Dois métodos comuns de implantação de um MTProto Proxy são usar o utilitário oficial de proxy do Telegram ou um contêiner Docker.
Método 1: proxy oficial do Telegram (recomendado)
Esse método consiste em compilar e executar a aplicação oficial de servidor proxy do Telegram.
1. Atualizar o sistema e instalar as dependências
sudo apt update && sudo apt upgrade -y
sudo apt install -y git build-essential libssl-dev zlib1g-dev
Para CentOS/RHEL:
sudo yum update -y
sudo yum install -y git make gcc openssl-devel zlib-devel
2. Clonar e compilar o proxy
git clone https://github.com/TelegramMessenger/MTProxy.git
cd MTProxy
make && cd objs/bin
3. Gerar o secret
Um secret é necessário para a autenticação do cliente e a ofuscação do tráfego.
head -c 16 /dev/urandom | xxd -ps
Esse comando gera uma string hexadecimal de 32 caracteres. Ela será o seu SECRET.
Por exemplo: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
4. Executar o proxy (teste inicial)
./mtproxy -p <PORT> -H <HOST_IP> -S <SECRET> --aes-pwd <PATH_TO_PROXY_SECRET_FILE> -M <WORKER_THREADS>
<PORT>: a porta à qual os clientes vão se conectar (por exemplo,443).<HOST_IP>: o endereço IP público do seu servidor.<SECRET>: o secret hexadecimal de 32 caracteres gerado antes.<PATH_TO_PROXY_SECRET_FILE>: normalmente/etc/mtproxy/proxy-secret(crie esse arquivo com um secret aleatório de 64 bytes para a comunicação interna).<WORKER_THREADS>: número de threads de trabalho (por exemplo,1).
Por exemplo:
mkdir -p /etc/mtproxy
head -c 64 /dev/urandom > /etc/mtproxy/proxy-secret
./mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1
0.0.0.0 faz o bind em todas as interfaces de rede disponíveis.
5. Configurar como serviço systemd
Para operação persistente, crie uma unit de serviço do systemd.
Crie /etc/systemd/system/mtproxy.service:
[Unit]
Description=MTProto Proxy for Telegram
After=network.target
[Service]
Type=simple
ExecStart=/root/MTProxy/objs/bin/mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1
WorkingDirectory=/root/MTProxy/objs/bin
User=root
Restart=on-failure
[Install]
WantedBy=multi-user.target
Substitua os parâmetros do ExecStart pela sua porta, secret e caminhos de arquivo. Ajuste o WorkingDirectory se você clonou o MTProxy em outro local.
Recarregue o systemd, habilite e inicie o serviço:
sudo systemctl daemon-reload
sudo systemctl enable mtproxy
sudo systemctl start mtproxy
sudo systemctl status mtproxy
6. Configuração do firewall
Abra a porta escolhida (por exemplo, 443) no firewall do servidor.
UFW (Ubuntu/Debian):
sudo ufw allow 443/tcp
sudo ufw enable # if not already enabled
IPTables (CentOS/RHEL, ou sem UFW):
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo service iptables save # or use firewalld
Firewalld (CentOS/RHEL 7+):
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
Método 2: Docker (alternativa)
Usar Docker simplifica a implantação e o gerenciamento de dependências.
1. Instalar o Docker
Siga os guias oficiais de instalação do Docker para o seu sistema operacional.
2. Gerar o secret
head -c 16 /dev/urandom | xxd -ps
Esse é o seu SECRET.
3. Executar o proxy com Docker
docker run -d --name mtproxy-server -p 443:443 --restart=always \
telegrammessenger/proxy:latest \
-S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 \
--aes-pwd /etc/mtproxy/proxy-secret -M 1
-d: executa em modo detached.--name mtproxy-server: atribui um nome ao contêiner.-p 443:443: mapeia a porta 443 do host para a porta 443 do contêiner.--restart=always: garante que o contêiner reinicie junto com o daemon do Docker.telegrammessenger/proxy:latest: a imagem Docker oficial.-S <SECRET>: o secret que você gerou.--aes-pwd /etc/mtproxy/proxy-secret: um placeholder. A imagem Docker gera esse valor internamente.-M 1: número de threads de trabalho.
Garanta que o firewall do host (UFW/Firewalld/IPTables) permita tráfego na porta 443. O Docker cuida da rede interna.
Obter uma tag (opcional)
A tag é um parâmetro opcional que permite ao operador do proxy vincular um canal patrocinado ao seu proxy. Quando os usuários se conectam por um proxy com tag, o canal patrocinado aparece no topo da lista de conversas.
Para obter uma tag:
1. Envie mensagem para @MTProxybot no Telegram.
2. Envie /newproxy para o bot.
3. Informe o endereço IP público e a porta do seu proxy.
4. O bot vai devolver um valor de tag.
Integre a tag ao comando ExecStart do serviço systemd ou ao comando do Docker:
# Systemd (adicione --tag <YOUR_TAG>)
ExecStart=/root/MTProxy/objs/bin/mtproxy -p 443 -H 0.0.0.0 -S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 --aes-pwd /etc/mtproxy/proxy-secret -M 1 --tag <YOUR_TAG>
# Docker (adicione -T <YOUR_TAG>)
docker run -d --name mtproxy-server -p 443:443 --restart=always \
telegrammessenger/proxy:latest \
-S a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 -M 1 -T <YOUR_TAG>
Reinicie o serviço/contêiner do MTProto Proxy depois de adicionar a tag.
Como se conectar ao MTProto Proxy
Com o servidor proxy em execução, os usuários podem se conectar por um link direto ou por configuração manual.
Formato do link de proxy
A forma mais prática de compartilhar o proxy é por meio de um link tg://:
tg://proxy?server=<SERVER_IP>&port=<PORT>&secret=<SECRET>
Exemplo: tg://proxy?server=192.0.2.1&port=443&secret=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
Ao clicar nesse link em um dispositivo com o Telegram instalado, o usuário recebe o aviso para adicionar o proxy.
Configuração manual no aplicativo Telegram
- Abra as configurações do Telegram.
- Vá para "Dados e Armazenamento" (ou "Privacidade e Segurança" em alguns clientes).
- Selecione "Configurações de Proxy".
- Ative "Usar Proxy" ou "SOCKS5/MTProto Proxy".
- Escolha "MTProto Proxy".
- Informe o endereço IP público do servidor no campo "Servidor".
- Informe a porta configurada (por exemplo, 443) no campo "Porta".
- Informe o
SECRETno campo "Secret". - Salve as configurações.
Os clientes do Telegram passarão a tentar a conexão pelo MTProto Proxy configurado.
Considerações de segurança
- Mantenha o sistema atualizado: atualize regularmente o sistema operacional e os pacotes instalados no servidor para corrigir vulnerabilidades.
- Secrets fortes: use um secret forte e gerado aleatoriamente. Evite padrões previsíveis.
- Firewall: restrinja o acesso à porta do proxy usando um firewall. Permita apenas as conexões de entrada necessárias.
- Monitore os logs: verifique com regularidade os logs do proxy (
journalctl -u mtproxy.serviceno systemd) em busca de atividade incomum ou erros. - Privilégios mínimos: embora o proxy oficial costume rodar como root por simplicidade, considere executá-lo com um usuário de menos privilégios sempre que possível, ainda que isso aumente a complexidade das permissões de arquivo.
Solução de problemas comuns
- A conexão falha:
- Firewall: confirme que a porta do proxy está aberta no firewall do servidor.
- Dados incorretos: revise o IP do servidor, a porta e o secret informados no cliente do Telegram.
- Proxy não está rodando: verifique o status do serviço do proxy (
sudo systemctl status mtproxyoudocker ps). - Problemas de rede: confirme que o servidor tem conectividade com a internet.
- Desempenho lento:
- Recursos do servidor: monitore CPU, RAM e uso de rede no seu VPS. Faça upgrade se os recursos estiverem esgotados.
- Latência de rede: latência alta entre o cliente e o servidor proxy pode afetar a velocidade.
- Banda: garanta que o seu VPS tenha banda suficiente para o número de usuários.
- O proxy não inicia:
- Logs: revise os logs do systemd (
journalctl -u mtproxy.service) ou do Docker (docker logs mtproxy-server) em busca de mensagens de erro. - Dependências: confirme que todas as dependências de build necessárias estão instaladas.
- Conflito de porta: verifique se nenhum outro serviço está usando a porta escolhida para o proxy.
- Logs: revise os logs do systemd (
Comparação: MTProto Proxy vs. proxy SOCKS5/HTTP
| Recurso | MTProto Proxy | Proxy SOCKS5/HTTP |
|---|---|---|
| Protocolo | Protocolo MTProto nativo do Telegram | Protocolos genéricos SOCKS5 ou HTTP/HTTPS |
| Ofuscação | Nativa, feita para contornar DPI | Mínima ou nenhuma; os padrões de tráfego costumam ser identificáveis |
| Censura | Muito eficaz contra o bloqueio do Telegram | Menos eficaz; pode ser bloqueado por análise de protocolo |
| Segurança | Tráfego criptografado, específico do Telegram | Criptografado se usado com TLS (HTTPS); caso contrário, em texto puro |
| Configuração | Exige um "Secret" específico; nativo nos apps do Telegram | Servidor, porta, (opcional) usuário/senha; configurações genéricas de proxy |
| Caso de uso | Principalmente acesso ao Telegram em regiões com restrições | Tráfego geral de internet, diversas aplicações |
| Desempenho | Otimizado para o tráfego do Telegram | Uso geral; o desempenho depende da implementação |
