Déploiement d'un proxy MTProto avec Fake TLS : Guide complet pour un accès stable à Telegram
À l'ère de la censure et du blocage croissants d'Internet, assurer un accès stable et sécurisé aux applications de messagerie est devenu une priorité absolue pour de nombreux utilisateurs. Un proxy MTProto, amélioré par la technologie Fake TLS, offre une solution efficace pour contourner ces restrictions. Ce guide détaille le processus de déploiement de votre propre serveur proxy à l'aide de Docker et d'un VPS en quelques minutes seulement. Cette configuration vous permet de masquer le trafic Telegram en tant que trafic HTTPS régulier, ce qui le rend beaucoup plus difficile à détecter et à bloquer.
Comment fonctionnent le proxy MTProto et le Fake TLS
Le proxy MTProto est un serveur proxy spécialisé développé par l'équipe Telegram pour fournir une connexion sécurisée et chiffrée. Il utilise le protocole MTProto, optimisé pour le fonctionnement des messageries, garantissant une vitesse élevée et une résilience face aux interruptions. Son objectif principal est d'acheminer le trafic Telegram via un serveur intermédiaire, contournant ainsi les blocages directs d'adresses IP ou de domaines imposés à la messagerie.
Le Fake TLS (Transport Layer Security) est un ajout crucial au proxy MTProto, augmentant considérablement son efficacité dans les environnements soumis à des blocages actifs. Cette technologie permet de masquer le trafic MTProto en tant que trafic HTTPS standard, qui est généralement utilisé pour les connexions sécurisées aux sites web. Un serveur proxy configuré avec Fake TLS simule une connexion HTTPS régulière à un domaine légitime (par exemple, ya.ru ou google.com). Pour les systèmes de surveillance externes, ce trafic apparaît comme une navigation web ordinaire, ce qui le rend extrêmement difficile à détecter et à filtrer. Un préfixe spécial ee dans la clé secrète du proxy MTProto indique au client Telegram d'utiliser le mode Fake TLS, offrant une couche d'obfuscation supplémentaire.
Préparation au déploiement
Pour un déploiement réussi d'un proxy MTProto avec Fake TLS, plusieurs composants sont nécessaires. Le choix d'un fournisseur de serveur privé virtuel (VPS) fiable est d'une importance capitale, car la stabilité et la vitesse de votre proxy en dépendent.
Configuration minimale requise pour le VPS :
- Système d'exploitation : Ubuntu 20.04, 22.04 ou 24.04 LTS (Long Term Support) est recommandé pour sa stabilité et ses paquets à jour. Cependant, le script est compatible avec d'autres distributions Linux qui prennent en charge Docker.
- RAM : 512 Mo ou plus. Cette quantité est suffisante pour le fonctionnement de base du conteneur Docker du proxy MTProto.
- Espace disque : 5 Go ou plus. Nécessaire pour le système d'exploitation, Docker et les journaux des conteneurs.
- Docker installé : Le système de conteneurisation Docker est fondamental pour exécuter le proxy MTProto dans un environnement isolé.
Installation de Docker sur Ubuntu
Si Docker n'est pas encore installé sur votre VPS, exécutez les commandes suivantes. Elles mettront à jour la liste des paquets, installeront les dépendances nécessaires et le moteur Docker lui-même.
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io -y
Après l'installation de Docker, il est recommandé de vérifier son statut avec la commande sudo systemctl status docker pour s'assurer que le service est en cours d'exécution et actif.
Déploiement automatisé du proxy MTProto
Pour simplifier le processus de déploiement, un script Bash est fourni qui automatise toutes les étapes : de la génération du secret au lancement du conteneur Docker et à l'affichage des informations de connexion. Cette approche minimise les risques d'erreurs et réduit le temps de configuration à quelques minutes seulement.
Création et exécution du script d'installation
- Créer le fichier de script : Sur votre VPS, créez un nouveau fichier, par exemple,
start-mtproxy.sh, à l'aide de l'éditeur de textenano:
```bash
nano start-mtproxy.sh
```
- Insérer le code du script : Copiez le code suivant et collez-le dans le fichier créé. Enregistrez les modifications (Ctrl+O, Entrée, Ctrl+X).
```bash
#!/bin/bash
Couleurs pour un affichage esthétique
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" # Domaine fixe pour Fake TLS
echo "🚀 Lancement du proxy MTProto avec Fake TLS"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo -e "📌 Domaine utilisé : ${BLUE}${FAKE_DOMAIN}${NC}"
Génération du secret Fake TLS
echo -n "🔑 Génération du secret Fake TLS... "
Obtention de l'hexadécimal du domaine ya.ru
DOMAIN_HEX=$(echo -n $FAKE_DOMAIN | xxd -ps | tr -d '\n')
echo -e "\n Hex du domaine : ${DOMAIN_HEX}"
Compléter avec des caractères aléatoires jusqu'à 30 caractères
DOMAIN_LEN=${#DOMAIN_HEX}
NEEDED=$((30 - DOMAIN_LEN))
RANDOM_HEX=$(openssl rand -hex 15 | cut -c1-$NEEDED)
Assemblage du secret
SECRET="ee${DOMAIN_HEX}${RANDOM_HEX}"
echo -e " Complément aléatoire : ${RANDOM_HEX}"
echo -e " Secret : ${YELLOW}${SECRET}${NC}"
echo " Longueur : ${#SECRET} caractères"
Vérification de la disponibilité du port 443
echo -n "🔍 Vérification du port ${PORT}... "
if ss -tuln | grep -q ":${PORT} "; then
echo -e "${YELLOW}port occupé${NC}"
# Recherche d'un port alternatif
for alt_port in 8443 8444 8445; do
if ! ss -tuln | grep -q ":${alt_port} "; then
PORT=$alt_port
echo " Utilisation du port : ${PORT}"
break
fi
done
else
echo -e "${GREEN}libre${NC}"
fi
Arrêt de l'ancien conteneur, s'il existe
echo -n "🛑 Arrêt de l'ancien conteneur... "
sudo docker stop ${CONTAINER_NAME} >/dev/null 2>&1
sudo docker rm ${CONTAINER_NAME} >/dev/null 2>&1
echo -e "${GREEN}terminé${NC}"
Lancement du proxy officiel de Telegram
echo -n "📦 Lancement du conteneur... "
sudo docker run -d \
--name ${CONTAINER_NAME} \
--restart unless-stopped \
-p ${PORT}:443 \
-e SECRET="${SECRET}" \
telegrammessenger/proxy > /dev/null 2>&1
Vérification du résultat
sleep 3
if sudo docker ps | grep -q ${CONTAINER_NAME}; then
SERVER_IP=$(curl -s ifconfig.me)
echo -e "${GREEN}✅ SUCCÈS${NC}"
echo ""
echo "📊 INFORMATIONS DE CONNEXION :"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🌐 Serveur : ${SERVER_IP}"
echo "🔌 Port : ${PORT}"
echo "🔑 Secret : ${SECRET}"
echo "🌐 Domaine Fake TLS : ${FAKE_DOMAIN}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🔗 Lien Telegram (cliquez pour connexion automatique) :"
echo -e "${GREEN}tg://proxy?server=${SERVER_IP}&port=${PORT}&secret=${SECRET}${NC}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Sauvegarde de la configuration
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 "✅ Configuration enregistrée dans ~/mtproto_config.txt"
# Affichage des derniers journaux
echo ""
echo "📋 Journaux du conteneur :"
sudo docker logs --tail 5 ${CONTAINER_NAME}
else
echo -e "${RED}❌ ERREUR${NC}"
sudo docker logs ${CONTAINER_NAME}
fi
```
- Rendre le script exécutable et l'exécuter :
```bash
chmod +x start-mtproxy.sh
./start-mtproxy.sh
```
Analyse du script
Le script exécute une séquence d'actions visant à configurer rapidement et correctement le proxy :
- Définition du domaine Fake TLS : Par défaut,
ya.ruest utilisé. Ce domaine sera simulé par le serveur proxy pour masquer le trafic. Les utilisateurs expérimentés peuvent modifierFAKE_DOMAINpour un autre ressource populaire si désiré. - Génération du secret : Le script génère une clé secrète unique. Elle commence par le préfixe
ee, qui est obligatoire pour activer le mode Fake TLS dans le client Telegram. Après ce préfixe, la représentation hexadécimale duFAKE_DOMAINchoisi est ajoutée, ainsi que des caractères aléatoires, pour atteindre une longueur totale de 30 caractères. Cela garantit l'unicité et la sécurité du secret. - Vérification de la disponibilité du port 443 : Le port HTTPS standard (443) est préféré pour Fake TLS, car son utilisation rend le trafic encore moins suspect. Le script vérifie si ce port est libre. S'il est occupé, un port alternatif (8443, 8444 ou 8445) est automatiquement sélectionné.
- Gestion du conteneur Docker : Le script arrête et supprime d'abord tout conteneur précédemment exécuté nommé
mtproto-proxypour éviter les conflits. Ensuite, un nouveau conteneur Docker est lancé en utilisant l'image officielletelegrammessenger/proxy. Les paramètres de lancement incluent :
* -d : Exécute le conteneur en mode détaché (arrière-plan).
* --name mtproto-proxy : Attribue un nom au conteneur pour une gestion plus facile.
* --restart unless-stopped : Redémarre automatiquement le conteneur en cas de défaillance ou de redémarrage du VPS.
* -p ${PORT}:443 : Mappe le port externe (déterminé par le script) au port interne 443 du conteneur.
* -e SECRET="${SECRET}" : Transmet le secret généré au conteneur en tant que variable d'environnement.
- Affichage des informations de connexion : Après avoir lancé le conteneur avec succès, le script affiche l'adresse IP du serveur, le port utilisé, le secret généré et un lien prêt à l'emploi pour la connexion automatique au proxy dans Telegram. Un fichier
~/mtproto_config.txtcontenant ces informations est également créé. - Vérification du statut : Le script vérifie si le conteneur Docker est en cours d'exécution et affiche les 5 dernières lignes de ses journaux pour un diagnostic rapide.
Vous pouvez vérifier le statut du conteneur Docker en cours d'exécution à tout moment en utilisant la commande :
sudo docker ps
La sortie devrait afficher le conteneur mtproto-proxy avec un statut Up.
Connexion au proxy dans Telegram
Après avoir déployé le serveur proxy avec succès, vous pouvez facilement vous y connecter depuis le client Telegram. Deux méthodes principales sont disponibles :
Connexion automatique (recommandée)
La méthode la plus simple consiste à utiliser le lien généré par le script. Copiez et ouvrez simplement le lien (par exemple, tg://proxy?server=...) dans votre navigateur ou directement dans Telegram. La messagerie vous invitera automatiquement à ajouter et activer le serveur proxy. Confirmez l'action en appuyant sur « Ajouter un proxy ».
Connexion manuelle
Si la connexion automatique ne fonctionne pas ou si vous préférez une configuration manuelle, suivez ces étapes en utilisant les informations fournies par le script (adresse IP du serveur, port, secret) :
- Sur les appareils mobiles (Android/iOS) :
1. Ouvrez Telegram et allez dans « Paramètres ».
2. Sélectionnez « Données et stockage ».
3. Naviguez vers « Paramètres du proxy ».
4. Appuyez sur « Ajouter un proxy » et choisissez « MTProto » comme type.
5. Saisissez l'adresse IP du serveur, le port et la clé secrète dans les champs correspondants.
- Sur les clients de bureau (Windows/macOS/Linux) :
1. Ouvrez Telegram et allez dans « Paramètres ».
2. Sélectionnez « Avancé » (ou « Paramètres avancés »).
3. Sous « Type de connexion », choisissez « Utiliser un proxy personnalisé ».
4. Cliquez sur « Ajouter un proxy » et sélectionnez « MTProto » comme type.
5. Saisissez l'adresse IP du serveur, le port et la clé secrète.
Points clés à retenir
- Obfuscation du trafic : Fake TLS dissimule efficacement le trafic MTProto en tant que HTTPS régulier, ce qui le rend plus difficile à bloquer.
- Autonomie : Votre propre proxy sur un VPS offre une indépendance vis-à-vis des serveurs publics, améliorant la stabilité et la sécurité.
- Facilité de déploiement : L'utilisation de Docker et d'un script automatisé vous permet de configurer le proxy en quelques minutes.
- Flexibilité : Le script sélectionne automatiquement un port libre et fournit toutes les informations de connexion nécessaires.
- Contrôle : Vous avez un contrôle total sur l'infrastructure et pouvez modifier le script pour l'adapter à vos besoins.
— Editorial Team
Aucun commentaire pour le moment.