
TrustTunnel v1.1.0
Protocolo VPN de código aberto que encapsula tráfego TCP, UDP e ICMP sobre HTTPS, contornando DPI e limitação de banda. Inclui split tunneling, proxy SOCKS5, DNS personalizado e clientes multiplataforma.
Clientes · App Store (iOS) · App Store (macOS) · Play store
Índice
- Introdução
- Recursos do servidor
- Recursos do cliente
- Início rápido
- Clientes
- Veja também
- Roadmap
- Licença
Introdução
TrustTunnel é um protocolo VPN moderno e de código aberto originalmente desenvolvido pela AdGuard VPN e agora disponível para qualquer pessoa usar e auditar.
Ele oferece conexões VPN rápidas, seguras e confiáveis sem os trade-offs habituais. Por design, o tráfego do TrustTunnel é indistinguível do tráfego HTTPS comum, permitindo contornar limitação de banda e inspeção profunda de pacotes enquanto mantém fortes proteções de privacidade.
O projeto TrustTunnel inclui o endpoint VPN (este repositório), a biblioteca e CLI para o cliente, e o aplicativo GUI.
Recursos do servidor
-
Protocolo VPN: A biblioteca implementa o protocolo VPN compatível com HTTP/1.1, HTTP/2 e QUIC. Ao imitar tráfego de rede comum, ele se torna impossível de detectar e bloquear.
-
Tunelamento de tráfego flexível: O TrustTunnel pode tunelar tráfego TCP, UDP e ICMP de e para o cliente.
-
Compatibilidade de plataforma: O servidor é compatível com Linux e macOS. O cliente está disponível para Android, Apple, Windows e Linux.
-
Endpoint de assinatura: Opcionalmente, servir uma URL de assinatura por usuário via HTTPS. Quando
[subscription]está habilitado emvpn.toml, cada cliente pode buscar sua própria configuração JSON (parâmetros de conexão, credenciais, upstreams de DNS, e mais) via HTTPS usando HTTP Basic Auth, permitindo autoatendimento e atualização automática da configuração do cliente sem redistribuição manual de arquivos.
Recursos do cliente
-
Tunelamento de tráfego: A biblioteca é capaz de tunelar tráfego TCP, UDP e ICMP do cliente para o endpoint e de volta.
-
Suporte multiplataforma: Suporta plataformas Linux, macOS e Windows, proporcionando uma experiência consistente em diferentes sistemas operacionais.
-
Túnel em todo o sistema e proxy SOCKS5: Pode ser configurado como um túnel em todo o sistema, utilizando uma interface de rede virtual, bem como um proxy SOCKS5.
-
Split tunneling: A biblioteca suporta split tunneling, permitindo aos usuários excluir conexões para certos domínios ou hosts do roteamento através do endpoint VPN, ou vice-versa, roteando apenas conexões para domínios ou hosts específicos através do endpoint com base em uma lista de exclusão.
-
Upstream de DNS personalizado: Os usuários podem especificar um upstream de DNS personalizado, que é usado para consultas DNS roteadas através do endpoint VPN.
Início rápido
Configuração do endpoint
Instalar o endpoint
Um script de instalação está disponível e pode ser executado com o seguinte comando:```bash curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -
O script de instalação fará o download do pacote pré-compilado da versão
mais recente do GitHub para a arquitetura de sistema apropriada e o
descompactará em `/opt/trusttunnel`. O diretório de saída pode ser
substituído especificando a flag `-o DIR` no final do comando acima.
Se você quiser instalar uma versão específica (em vez da mais recente), use `-V <version>`:```bash
curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s - -V <version>
[!NOTE] Pacotes pré-compilados estão disponíveis para as arquiteturas
linux-x86_64,linux-aarch64emacos-universal(Intel e Apple Silicon).
Atualizando o endpoint
O script de instalação sempre instala a versão mais recente disponível. Portanto, para atualizar sua instalação, execute o comando de instalação novamente:```bash curl -fsSL https://raw.githubusercontent.com/TrustTunnel/TrustTunnel/refs/heads/master/scripts/install.sh | sh -s -
Isso executa novamente o instalador e substitui os binários no diretório
de instalação (`/opt/trusttunnel` por padrão, ou o diretório que você especificou com `-o DIR`).
> [!NOTE]
> Não se esqueça de parar o endpoint antes de atualizar:
>
> ```bash
> sudo systemctl stop trusttunnel
> ```
>
> Para iniciar o endpoint novamente após a atualização:
>
> ```bash
> sudo systemctl start trusttunnel
> ```
#### Assistente de configuração do endpoint
Consulte o [CONFIGURATION.md](https://github.com/trusttunnel/trusttunnel/blob/master/CONFIGURATION.md) para obter a documentação
mais detalhada sobre como configurar o endpoint.
O diretório de instalação contém o binário `setup_wizard` que ajuda a gerar
os arquivos de configuração necessários para o endpoint ser executado:```bash
cd /opt/trusttunnel/
./setup_wizard -h
O assistente de configuração suporta modo interativo, então você pode executá-lo e ele solicitará os dados necessários para a configuração do endpoint.```bash cd /opt/trusttunnel/ sudo ./setup_wizard
> [!NOTE]
> `sudo` é necessário para gerenciar certificados TLS corretamente.
O assistente solicitará os seguintes campos, alguns deles têm os valores padrão
que você pode usar com segurança:
- **O endereço para escutar** - especifique o endereço no qual o endpoint irá escutar.
Use `0.0.0.0:443` para implantações nativas (HTTPS em todas as interfaces).
Se você executar com mapeamento de porta Docker `443:8443`, defina como `0.0.0.0:8443`.
- **Caminho para o arquivo de credenciais** - caminho onde as credenciais de usuário para
autorização serão armazenadas.
- **Nome de usuário** - o nome de usuário que o usuário usará para autorização.
- **Senha** - a senha do usuário.
- **Adicionar mais um usuário?** - selecione `yes` se quiser adicionar mais usuários, ou `no`
para continuar o processo de configuração.
- **Caminho para o arquivo de regras** - caminho para armazenar as regras de filtragem.
- **Regras de filtragem de conexão** - você pode adicionar regras que o endpoint usará
para permitir ou negar as conexões do usuário com base em:
- Endereço IP do cliente
- Prefixo aleatório TLS
- Aleatório TLS com máscara