Retour aux mises à jour
New releaseSep 1, 2026

TrustTunnel v1.1.0

Protocole VPN open source qui tunnelise le trafic TCP, UDP et ICMP via HTTPS, contournant le DPI et la limitation de débit. Fonctionnalités : tunneling fractionné, proxy SOCKS5, DNS personnalisé et clients multiplateformes.

Partager

TrustTunnel

Clients · App Store · Play Store


Table des matières


Introduction

TrustTunnel est un protocole VPN moderne et open-source, initialement développé par AdGuard VPN et désormais disponible pour tous, utilisation et audit compris.

Il offre des connexions VPN rapides, sécurisées et fiables sans les compromis habituels. Par conception, le trafic TrustTunnel est indistinguishable du trafic HTTPS standard, ce qui lui permet de contourner le throttling et l'inspection profonde des paquets tout en maintenant une protection solide de la vie privée.

Le projet TrustTunnel inclut le point d'accès VPN (ce dépôt), la bibliothèque et l'interface en ligne de commande pour le client, ainsi que l'application graphique.

Fonctionnalités du serveur

  • Protocole VPN : La bibliothèque implémente le protocole VPN compatible avec HTTP/1.1, HTTP/2 et QUIC. En imitant le trafic réseau normal, il devient impossible à détecter et à bloquer.

  • Tunnel de trafic flexible : TrustTunnel peut tunnelliser le trafic TCP, UDP et ICMP vers et depuis le client.

  • Compatibilité multiplateforme : Le serveur est compatible avec Linux et macOS. Le client est disponible pour Android, Apple, Windows et Linux.


Fonctionnalités du client

  • Tunnel de trafic : La bibliothèque peut tunnelliser le trafic TCP, UDP et ICMP du client vers le point d'accès et inversement.

  • Prise en charge multiplateforme : Elle prend en charge les plateformes Linux, macOS et Windows, offrant une expérience cohérente sur différents systèmes d'exploitation.

  • Tunnel système et proxy SOCKS5 : Elle peut être configurée comme un tunnel système utilisant une interface réseau virtuelle, ainsi qu'un proxy SOCKS5.

  • Tunnel fractionné : La bibliothèque prend en charge le tunnel fractionné, permettant aux utilisateurs d'exclure des connexions vers certains domaines ou hôtes du routage via le point d'accès VPN, ou inversement, de ne router que les connexions vers des domaines ou hôtes spécifiques via le point d'accès en fonction d'une liste d'exclusion.

  • Serveur DNS personnalisé : Les utilisateurs peuvent spécifier un serveur DNS personnalisé, utilisé pour les requêtes DNS routées via le point d'accès VPN.


Démarrage rapide

Configuration du point d'accès

Installer le point d'accès

Un script d'installation est disponible et peut être exécuté avec la commande suivante :

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -

Le script d'installation téléchargera le paquet précompilé depuis la dernière version GitHub pour l'architecture système appropriée et le décompressera dans /opt/trusttunnel. Le répertoire de sortie peut être modifié en spécifiant le drapeau -o DIR à la fin de la commande ci-dessus.

Si vous souhaitez installer une version spécifique (au lieu de la dernière), utilisez -V <version> :

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s - -V <version>

[!NOTE] Les paquets précompilés sont disponibles pour les architectures linux-x86_64, linux-aarch64 et macos-universal (Intel et Apple Silicon).

Mettre à jour le point d'accès

Le script d'installation installe toujours la dernière version disponible. Donc, pour mettre à jour votre installation, exécutez à nouveau la commande d'installation :

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -

Cela réexécute l'installateur et remplace les binaires dans le répertoire d'installation (/opt/trusttunnel par défaut, ou le répertoire spécifié avec -o DIR).

[!NOTE] N'oubliez pas d'arrêter le point d'accès avant la mise à jour :

sudo systemctl stop trusttunnel

Pour redémarrer le point d'accès après la mise à jour :

sudo systemctl start trusttunnel

Assistant de configuration du point d'accès

Veuillez consulter CONFIGURATION.md pour une documentation plus détaillée sur la configuration du point d'accès.

Le répertoire d'installation contient le binaire setup_wizard qui aide à générer les fichiers de configuration nécessaires au fonctionnement du point d'accès :

cd /opt/trusttunnel/
./setup_wizard -h

L'assistant de configuration prend en charge le mode interactif, vous pouvez donc l'exécuter et il vous demandera les données nécessaires à la configuration du point d'accès.

cd /opt/trusttunnel/
sudo ./setup_wizard

[!NOTE] sudo est nécessaire pour gérer correctement les certificats TLS.

L'assistant demandera les champs suivants, certains ayant des valeurs par défaut que vous pouvez utiliser en toute sécurité :

  • Adresse d'écoute - spécifiez l'adresse sur laquelle le point d'accès doit écouter. Utilisez 0.0.0.0:443 pour les déploiements natifs (HTTPS sur toutes les interfaces). Si vous utilisez Docker avec le mappage de port 443:8443, définissez-la sur 0.0.0.0:8443.

  • Chemin du fichier d'identifiants - chemin où seront stockés les identifiants utilisateur pour l'autorisation.

  • Nom d'utilisateur - le nom d'utilisateur que l'utilisateur utilisera pour l'autorisation.

  • Mot de passe - le mot de passe de l'utilisateur.

  • Ajouter un autre utilisateur ? - sélectionnez oui si vous souhaitez ajouter d'autres utilisateurs, ou non pour continuer le processus de configuration.

  • Chemin du fichier de règles - chemin pour stocker les règles de filtrage.

  • Règles de filtrage des connexions - vous pouvez ajouter des règles que le point d'accès utilisera pour autoriser ou refuser les connexions des utilisateurs en fonction de :

    • Adresse IP du client
    • Préfixe aléatoire TLS
    • Aléatoire TLS avec masque

    Appuyez sur n pour autoriser toutes les connexions.

  • Chemin d'un fichier pour stocker les paramètres de la bibliothèque - chemin pour stocker le fichier de configuration principal du point d'accès.

  • Sélection du certificat - choisissez comment obtenir un certificat TLS :

    • Délivrer un certificat Let's Encrypt (nécessite un domaine public) - l'assistant de configuration intègre la prise en charge ACME et peut obtenir automatiquement un certificat gratuit et publiquement approuvé de Let's Encrypt. Vous aurez besoin de :
      • Un domaine enregistré pointant vers l'adresse IP de votre serveur
      • Le port 80 accessible depuis Internet (pour le défi HTTP-01), ou
      • La possibilité d'ajouter des enregistrements DNS TXT (pour le défi DNS-01)
    • Générer un certificat auto-signé - adapté aux tests ou lors de l'utilisation du client CLI uniquement. Remarque : Le client Flutter ne prend pas en charge les certificats auto-signés pour l'instant.
    • Fournir le chemin d'un certificat existant - utilisez vos propres fichiers de certificat obtenus auprès d'une autre AC ou d'un outil comme certbot.
  • Chemin d'un fichier pour stocker les paramètres des hôtes TLS - chemin pour stocker le fichier de paramètres des hôtes TLS.

À ce stade, tous les fichiers de configuration requis sont créés et sauvegardés sur le disque.

Cycle de vie du certificat Let's Encrypt

L'assistant de configuration peut obtenir un certificat Let's Encrypt lors de la configuration initiale, mais vous êtes responsable de sa validité dans le temps (renouvellement et rechargement/redémarrage du service).

Si vous utilisez Certbot pour gérer les certificats et les renouveler automatiquement, suivez le guide dans CERT_RENEWAL.md.

Exécution du point d'accès

Le paquet installé contient un modèle de service systemd, nommé trusttunnel.service.template.

Ce modèle peut être utilisé pour configurer le point d'accès en tant que service systemd :

[!NOTE] Le fichier modèle suppose que le binaire TrustTunnel Endpoint et tous ses fichiers de configuration se trouvent dans /opt/trusttunnel et portent les noms de fichiers par défaut. Modifiez le modèle si vous avez utilisé des chemins différents.

cd /opt/trusttunnel/
cp trusttunnel.service.template /etc/systemd/system/trusttunnel.service
sudo systemctl daemon-reload
sudo systemctl enable --now trusttunnel

Exporter la configuration client

Le binaire du point d'accès peut générer des configurations client dans deux formats :

Génère une URI compacte tt://? adaptée aux codes QR et aux applications mobiles :

# <client_name> - nom du client dont les identifiants seront inclus dans la configuration
# <address> - `ip`, `ip:port`, `domaine`, ou `domaine:port` que le client utilisera pour se connecter
#           Si seule l'`ip` ou le `domaine` est spécifié, le port du champ `listen_address` sera utilisé
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address>

# Ou spécifiez explicitement le format :
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> --format deeplink

Cette commande génère une URI deep-link tt://? qui peut être :

Vous pouvez également fournir des options supplémentaires :

  • --name <display_name> : Définir un nom d'affichage personnalisé pour le serveur dans l'application client.
  • --dns-upstream <dns_upstream> : Spécifier un serveur DNS amont pour le client. Peut être une adresse IP ou une URI DNS sécurisée (par exemple, tls://1.1.1.1, https://dns.google/dns-query). Ce drapeau peut être utilisé plusieurs fois pour fournir une liste de serveurs DNS amont.

Exemple avec un nom personnalisé et des serveurs DNS amont :

./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> \
    --name "Mon VPN sécurisé" \
    --dns-upstream 1.1.1.1 --dns-upstream tls://8.8.8.8

Lorsque --generate-client-random-prefix est utilisé, le point d'accès ajoute également une règle d'autorisation pour la valeur générée dans le fichier rules.toml référencé dans vpn.toml.

Remarque : Si votre certificat est signé par une AC de confiance (par exemple, Let's Encrypt), il sera automatiquement omis du deep-link pour le garder compact. Les certificats auto-signés sont inclus automatiquement.

Format TOML (pour client CLI)

Génère un fichier de configuration TOML traditionnel :

cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <public_ip> --format toml

Cette commande génère un fichier de configuration TOML adapté au client CLI.

Les deux formats contiennent toutes les informations nécessaires pour se connecter au point d'accès. Consultez la documentation du TrustTunnel Flutter Client pour les instructions de configuration.

Félicitations ! Vous avez terminé la configuration du point d'accès !

Configuration du client

Plusieurs clients sont disponibles pour se connecter au point d'accès — voir la section Clients pour la liste complète. Les instructions ci-dessous concernent la configuration du client CLI officiel.

Installer le client

Linux / macOS

Un script d'installation est disponible :

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -

Le script d'installation téléchargera le paquet précompilé depuis la dernière version GitHub pour l'architecture système appropriée et le décompressera dans /opt/trusttunnel_client. Le répertoire de sortie peut être modifié en spécifiant le drapeau -o DIR à la fin de la commande ci-dessus.

[!NOTE] Le script d'installation prend en charge les architectures x86_64, aarch64, armv7, mips et mipsel pour linux, et arm64 et x86_64 pour macOS.

Windows

Téléchargez la dernière archive de version depuis la page des versions du client TrustTunnel.

Extrayez l'archive dans un répertoire de votre choix, par exemple C:\TrustTunnel\.

Configuration routeur

Pour les déploiements sur routeur, veuillez vous référer aux guides d'installation du client spécifiques aux routeurs.

Mettre à jour le client

Linux / macOS

Le script d'installation installe toujours la dernière version disponible. Donc, pour mettre à jour votre installation, exécutez à nouveau la commande d'installation :

curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnelClient/refs/heads/master/scripts/install.sh | sh -s -

Cela réexécute l'installateur et remplace les binaires dans le répertoire d'installation (/opt/trusttunnel_client par défaut, ou le répertoire spécifié avec -o DIR).

[!NOTE] N'oubliez pas d'arrêter le client avant la mise à jour (par exemple, en arrêtant le processus en cours).

Windows

Téléchargez la dernière version depuis la page des versions et remplacez les fichiers dans votre répertoire d'installation.

Assistant de configuration du client

Le répertoire d'installation contient le binaire setup_wizard qui aide à générer les fichiers de configuration nécessaires au fonctionnement du client.

Linux / macOS
cd /opt/trusttunnel_client/
./setup_wizard -h

Pour configurer le client afin d'utiliser la configuration générée par le point d'accès, exécutez la commande suivante :

./setup_wizard --mode non-interactive \
     --endpoint_config <endpoint_config> \
     --settings trusttunnel_client.toml
Windows
setup_wizard.exe --mode non-interactive ^
    --endpoint_config <endpoint_config> ^
    --settings trusttunnel_client.toml

Dans les deux cas, <endpoint_config> est le chemin du fichier de configuration généré par le point d'accès.

trusttunnel_client.toml contiendra toute la configuration nécessaire au client.

[!TIP] La configuration générée contient les paramètres de base pour se connecter au point d'accès. Pour les fonctionnalités avancées, éditez directement trusttunnel_client.toml. Vous pouvez configurer :

  • Mode VPN : Router tout le trafic (general) ou seulement des destinations spécifiques (selective)
  • Kill switch : Bloquer le trafic lorsque le VPN se déconnecte
  • Serveurs DNS amont : Résolveurs DNS personnalisés (DoH, DoT, DoQ pris en charge)
  • Exclusions : Domaines/IP à contourner ou à router via le VPN
  • Type d'écouteur : Périphérique TUN ou proxy SOCKS5

Consultez le README du client CLI TrustTunnel pour toutes les options disponibles.

[!NOTE] Après avoir modifié la configuration, redémarrez le client pour que les changements prennent effet.

Exécution du client

Linux / macOS
cd /opt/trusttunnel_client/
sudo ./trusttunnel_client -c trusttunnel_client.toml

sudo est nécessaire pour configurer les routes et l'interface tun.

Windows

Ouvrez un terminal en tant qu'administrateur et exécutez :

trusttunnel_client.exe -c trusttunnel_client.toml

Les privilèges d'administrateur sont nécessaires pour configurer les routes et l'interface TUN.

Clients

Officiels

CLI

TrustTunnel Client — Linux, macOS, Windows

GUI

TrustTunnel Flutter Client — iOS, Android (macOS, Windows — bientôt disponible). Disponible sur l'App Store* et le Play Store.

[!NOTE] * Dans certains pays, l'application iOS n'est pas disponible sur l'App Store. Vous pourriez avoir besoin d'un identifiant Apple d'un autre pays pour la télécharger. Apprenez à changer le pays de votre App Store.

Communauté

[!NOTE] Les clients de la communauté sont développés et maintenus indépendamment. Ils ne sont pas officiellement supportés par l'équipe TrustTunnel.

GUI

Trusty - Un client GUI multiplateforme construit avec Flutter (Windows stable, macOS alpha). Fonctionnalités : journaux en temps réel, déploiement de serveur SSH en 1 clic, et découverte automatique des groupes de domaines pour le tunnel fractionné.

TrustTunnel-GUI-Client — Client GUI Windows, implémenté comme un wrapper Python pour TrustTunnel Client

Surge — (Commercial) Boîte à outils réseau pour macOS et iOS avec support expérimental de TrustTunnel

FireTunnel - Un client multiplateforme écrit en QT utilisant une version modifiée de TrustTunnel Client.

Voir aussi

Feuille de route

Bien que notre VPN prenne actuellement en charge le tunnel TCP/UDP/ICMP, nous prévoyons d'ajouter la prise en charge de la communication peer-to-peer entre clients.

Restez à l'écoute pour cette fonctionnalité dans les prochaines versions.

Licence

Ce projet est sous licence Apache 2.0. Voir LICENSE pour plus de détails.

Catégories