Torna agli aggiornamenti
New releaseSep 1, 2026

TrustTunnel v1.1.0

Protocollo VPN open-source che tunnelizza il traffico TCP, UDP e ICMP su HTTPS, bypassando DPI e throttling. Include split tunneling, proxy SOCKS5, DNS personalizzato e client multipiattaforma.

Condividi

TrustTunnel

Clienti · App Store · Play Store


Sommario


Introduzione

TrustTunnel è un moderno protocollo VPN open-source sviluppato originariamente da AdGuard VPN e ora disponibile per chiunque per l'utilizzo e la verifica.

Fornisce connessioni VPN veloci, sicure e affidabili senza i soliti compromessi. Per progettazione, il traffico di TrustTunnel è indistinguibile dal normale traffico HTTPS, consentendo di aggirare la limitazione e l'ispezione approfondita dei pacchetti, mantenendo al contempo forti protezioni della privacy.

Il progetto TrustTunnel include l'endpoint VPN (questo repository), la libreria e CLI per il client, e l'applicazione GUI.

Funzionalità del server

  • Protocollo VPN: La libreria implementa il protocollo VPN compatibile con HTTP/1.1, HTTP/2 e QUIC. Imitando il normale traffico di rete, diventa impossibile da rilevare e bloccare.

  • Tunneling flessibile del traffico: TrustTunnel può mettere in tunnel il traffico TCP, UDP e ICMP da e verso il client.

  • Compatibilità della piattaforma: Il server è compatibile con Linux e macOS. Il client è disponibile per Android, Apple, Windows e Linux.


Funzionalità del client

  • Tunneling del traffico: La libreria è in grado di mettere in tunnel il traffico TCP, UDP e ICMP dal client all'endpoint e viceversa.

  • Supporto multipiattaforma: Supporta le piattaforme Linux, macOS e Windows, offrendo un'esperienza coerente su diversi sistemi operativi.

  • Tunnel a livello di sistema e proxy SOCKS5: Può essere configurato come tunnel a livello di sistema, utilizzando un'interfaccia di rete virtuale, oltre che come proxy SOCKS5.

  • Split Tunneling: La libreria supporta lo split tunneling, consentendo agli utenti di escludere connessioni a determinati domini o host dal routing attraverso l'endpoint VPN, o viceversa, instradando solo connessioni a domini o host specifici attraverso l'endpoint in base a una lista di esclusione.

  • DNS upstream personalizzato: Gli utenti possono specificare un DNS upstream personalizzato, utilizzato per le query DNS instradate attraverso l'endpoint VPN.


Avvio rapido

Configurazione dell'endpoint

Installare l'endpoint

È disponibile uno script di installazione che può essere eseguito con il seguente comando:

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

Lo script di installazione scaricherà il pacchetto precompilato dall'ultima release GitHub per l'architettura di sistema appropriata e lo estrarrà in /opt/trusttunnel. La directory di output può essere sovrascritta specificando il flag -o DIR alla fine del comando precedente.

Se si desidera installare una versione specifica (invece dell'ultima), utilizzare -V <version>:

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

[!NOTE] I pacchetti precompilati sono disponibili per le architetture linux-x86_64, linux-aarch64 e macos-universal (Intel e Apple Silicon).

Aggiornare l'endpoint

Lo script di installazione installa sempre l'ultima versione disponibile. Quindi, per aggiornare la propria installazione, eseguire nuovamente il comando di installazione:

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

Questo riesegue il programma di installazione e sostituisce i binari nella directory di installazione (/opt/trusttunnel per impostazione predefinita, o la directory specificata con -o DIR).

[!NOTE] Non dimenticare di fermare l'endpoint prima di aggiornare:

sudo systemctl stop trusttunnel

Per avviare nuovamente l'endpoint dopo l'aggiornamento:

sudo systemctl start trusttunnel

Procedura guidata di configurazione dell'endpoint

Fare riferimento a CONFIGURATION.md per la documentazione più dettagliata su come configurare l'endpoint.

La directory di installazione contiene il binario setup_wizard che aiuta a generare i file di configurazione necessari per l'esecuzione dell'endpoint:

cd /opt/trusttunnel/
./setup_wizard -h

La procedura guidata di configurazione supporta la modalità interattiva, quindi è possibile eseguirla e chiederà i dati necessari per la configurazione dell'endpoint.

cd /opt/trusttunnel/
sudo ./setup_wizard

[!NOTE] sudo è necessario per gestire correttamente i certificati TLS.

La procedura guidata chiederà i seguenti campi, alcuni dei quali hanno valori predefiniti che è possibile utilizzare tranquillamente:

  • L'indirizzo su cui ascoltare - specificare l'indirizzo su cui l'endpoint deve ascoltare. Utilizzare 0.0.0.0:443 per distribuzioni native (HTTPS su tutte le interfacce). Se si esegue con il port mapping Docker 443:8443, impostare su 0.0.0.0:8443.

  • Percorso del file delle credenziali - percorso in cui verranno memorizzate le credenziali utente per l'autorizzazione.

  • Nome utente - il nome utente che l'utente utilizzerà per l'autorizzazione.

  • Password - la password dell'utente.

  • Aggiungere un altro utente? - selezionare yes per aggiungere più utenti, o no per continuare il processo di configurazione.

  • Percorso del file delle regole - percorso per memorizzare le regole di filtraggio.

  • Regole di filtraggio delle connessioni - è possibile aggiungere regole che l'endpoint utilizzerà per consentire o negare le connessioni degli utenti in base a:

    • Indirizzo IP del client
    • Prefisso casuale TLS
    • Random con maschera TLS

    Premere n per consentire tutte le connessioni.

  • Percorso del file per salvare le impostazioni della libreria - percorso per memorizzare il file di configurazione principale dell'endpoint.

  • Selezione del certificato - scegliere come ottenere un certificato TLS:

    • Emettere un certificato Let's Encrypt (richiede un dominio pubblico) - la procedura guidata di configurazione ha il supporto ACME integrato e può ottenere automaticamente un certificato gratuito e pubblicamente attendibile da Let's Encrypt. Sarà necessario:
      • Un dominio registrato che punti all'indirizzo IP del server
      • Porta 80 accessibile da Internet (per la challenge HTTP-01), o
      • Possibilità di aggiungere record DNS TXT (per la challenge DNS-01)
    • Generare un certificato autofirmato - adatto per test o quando si utilizza solo il client CLI. Nota: Il client Flutter non supporta i certificati autofirmati ancora.
    • Fornire il percorso di un certificato esistente - utilizzare i propri file di certificato ottenuti da un'altra CA o da uno strumento come certbot.
  • Percorso del file per salvare le impostazioni degli host TLS - percorso per memorizzare il file delle impostazioni degli host TLS.

A questo punto tutti i file di configurazione necessari sono stati creati e salvati su disco.

Ciclo di vita del certificato Let's Encrypt

La procedura guidata di configurazione può ottenere un certificato Let's Encrypt durante la configurazione iniziale, ma l'utente è responsabile di garantirne la validità nel tempo (rinnovo e ricarica/riavvio del servizio).

Se si utilizza Certbot per gestire i certificati e rinnovarli automaticamente, seguire la guida in CERT_RENEWAL.md.

Esecuzione dell'endpoint

Il pacchetto installato contiene il template del servizio systemd, denominato trusttunnel.service.template.

Questo template può essere utilizzato per configurare l'endpoint come servizio systemd:

[!NOTE] Il file template presuppone che il binario dell'endpoint TrustTunnel e tutti i suoi file di configurazione si trovino in /opt/trusttunnel e abbiano i nomi di file predefiniti. Modificare il template se sono stati utilizzati percorsi diversi.

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

Esportare la configurazione del client

Il binario dell'endpoint può generare configurazioni del client in due formati:

Genera un URI tt://? compatto adatto per codici QR e app mobili:

# <client_name> - nome del client le cui credenziali saranno incluse nella configurazione
# <address> - `ip`, `ip:porta`, `dominio`, o `dominio:porta` che il client utilizzerà per connettersi
#           Se viene specificato solo `ip` o `dominio`, verrà utilizzata la porta del campo `listen_address`
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address>

# Oppure specificare esplicitamente il formato:
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> --format deeplink

Questo produce un URI deep-link tt://? che può essere:

È anche possibile fornire opzioni aggiuntive:

  • --name <display_name>: Imposta un nome visualizzato personalizzato per il server nell'app client.
  • --dns-upstream <dns_upstream>: Specifica un DNS upstream per il client. Può essere un indirizzo IP o un URI DNS sicuro (ad esempio tls://1.1.1.1, https://dns.google/dns-query). Questo flag può essere utilizzato più volte per fornire un elenco di DNS upstream.

Esempio con nome personalizzato e DNS upstream:

./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> \
    --name "My Secure VPN" \
    --dns-upstream 1.1.1.1 --dns-upstream tls://8.8.8.8

Quando viene utilizzato --generate-client-random-prefix, l'endpoint aggiunge anche una regola di consenso per il valore generato al file rules.toml a cui si fa riferimento da vpn.toml.

Nota: Se il certificato è firmato da una CA attendibile (ad esempio Let's Encrypt), verrà automaticamente omesso dal deep-link per mantenerlo compatto. I certificati autofirmati vengono inclusi automaticamente.

Formato TOML (Per client CLI)

Genera un file di configurazione TOML tradizionale:

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

Questo produce un file di configurazione TOML adatto per il client CLI.

Entrambi i formati contengono tutte le informazioni necessarie per connettersi all'endpoint. Consultare la documentazione di TrustTunnel Flutter Client per le istruzioni di configurazione.

Congratulazioni! Hai completato la configurazione dell'endpoint!

Configurazione del client

Sono disponibili più client per connettersi all'endpoint — vedere la sezione Client per l'elenco completo. Le istruzioni seguenti riguardano la configurazione del client CLI ufficiale.

Installare il client

Linux / macOS

È disponibile uno script di installazione:

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

Lo script di installazione scaricherà il pacchetto precompilato dall'ultima release GitHub per l'architettura di sistema appropriata e lo estrarrà in /opt/trusttunnel_client. La directory di output può essere sovrascritta specificando il flag -o DIR alla fine del comando precedente.

[!NOTE] Lo script di installazione supporta le architetture x86_64, aarch64, armv7, mips e mipsel per linux e arm64 e x86_64 per macos.

Windows

Scaricare l'archivio dell'ultima release dalla pagina delle release di TrustTunnel Client.

Estrarre l'archivio in una directory a scelta, ad esempio C:\TrustTunnel\.

Configurazione del router

Per le distribuzioni su router, fare riferimento alle guide di installazione del client specifiche per il router.

Aggiornare il client

Linux / macOS

Lo script di installazione installa sempre l'ultima versione disponibile. Quindi, per aggiornare la propria installazione, eseguire nuovamente il comando di installazione:

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

Questo riesegue il programma di installazione e sostituisce i binari nella directory di installazione (/opt/trusttunnel_client per impostazione predefinita, o la directory specificata con -o DIR).

[!NOTE] Non dimenticare di fermare il client prima di aggiornare (ad esempio, fermando il processo in esecuzione).

Windows

Scaricare l'ultima release dalla pagina delle release e sostituire i file nella directory di installazione.

Procedura guidata di configurazione del client

La directory di installazione contiene il binario setup_wizard che aiuta a generare i file di configurazione necessari per l'esecuzione del client.

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

Per configurare il client per utilizzare la configurazione generata dall'endpoint, eseguire il seguente comando:

./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

In entrambi i casi, <endpoint_config> è il percorso del file di configurazione generato dall'endpoint.

trusttunnel_client.toml conterrà tutta la configurazione necessaria per il client.

[!TIP] La configurazione generata contiene impostazioni di base per connettersi all'endpoint. Per funzionalità avanzate, modificare direttamente trusttunnel_client.toml. È possibile configurare:

  • Modalità VPN: Instradare tutto il traffico (general) o solo destinazioni specifiche (selective)
  • Kill switch: Bloccare il traffico quando la VPN si disconnette
  • DNS upstream: Risolutori DNS personalizzati (supporto DoH, DoT, DoQ)
  • Esclusioni: Domini/IP da bypassare o instradare attraverso la VPN
  • Tipo di listener: Dispositivo TUN o proxy SOCKS5

Consultare il README del client CLI TrustTunnel per tutte le opzioni disponibili.

[!NOTE] Dopo aver modificato la configurazione, riavviare il client affinché le modifiche abbiano effetto.

Esecuzione del client

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

sudo è necessario per configurare le route e l'interfaccia tun.

Windows

Aprire un terminale come Amministratore ed eseguire:

trusttunnel_client.exe -c trusttunnel_client.toml

Sono necessari privilegi di Amministratore per configurare le route e l'interfaccia TUN.

Client

Ufficiali

CLI

TrustTunnel Client — Linux, macOS, Windows

GUI

TrustTunnel Flutter Client — iOS, Android (macOS, Windows — in arrivo). Disponibile su App Store* e Play Store.

[!NOTE] * In alcuni paesi, l'app iOS non è disponibile nell'App Store. Potrebbe essere necessario un Apple ID di un altro paese per scaricarla. Scopri come cambiare il paese dell'App Store.

Community

[!NOTE] I client della community sono sviluppati e mantenuti in modo indipendente. Non sono ufficialmente supportati dal team di TrustTunnel.

GUI

Trusty - Un client GUI multipiattaforma costruito con Flutter (Windows stabile, macOS alpha). Le funzionalità includono log in tempo reale, distribuzione del server SSH con 1 clic e scoperta automatica dei gruppi di domini per split-tunneling.

TrustTunnel-GUI-Client — Client GUI per Windows, implementato come wrapper Python per TrustTunnel Client

Surge — (Commerciale) Toolbox di rete per macOS e iOS con supporto sperimentale di TrustTunnel

FireTunnel - Un client multipiattaforma scritto in QT che utilizza TrustTunnel Client modificato

Vedi Anche

Roadmap

Sebbene la nostra VPN attualmente supporti il tunneling del traffico TCP/UDP/ICMP, abbiamo in programma di aggiungere il supporto per la comunicazione peer-to-peer tra i client.

Rimanete sintonizzati per questa funzionalità nelle prossime release.

Licenza

Questo progetto è concesso in licenza con la licenza Apache 2.0. Vedere LICENSE per i dettagli.

Categorie