Volver a actualizaciones
Nuevo releaseSep 1, 2026

TrustTunnel v1.1.0

Protocolo VPN de código abierto que tuneliza tráfico TCP, UDP e ICMP a través de HTTPS, evitando la DPI y la limitación. Incluye tunelización dividida, proxy SOCKS5, DNS personalizado y clientes multiplataforma.

Compartir

TrustTunnel

Clientes · App store · Play store


Índice


Introducción

TrustTunnel es un protocolo VPN moderno, de código abierto, desarrollado originalmente por AdGuard VPN y ahora disponible para que cualquiera lo use y audite.

Ofrece conexiones VPN rápidas, seguras y confiables sin las desventajas habituales. Por diseño, el tráfico de TrustTunnel es indistinguible del tráfico HTTPS normal, lo que le permite evitar la limitación y la inspección profunda de paquetes mientras mantiene sólidas protecciones de privacidad.

El proyecto TrustTunnel incluye el endpoint VPN (este repositorio), la biblioteca y CLI para el cliente, y la aplicación GUI.

Características del servidor

  • Protocolo VPN: la biblioteca implementa el protocolo VPN compatible con HTTP/1.1, HTTP/2 y QUIC. Al imitar el tráfico de red normal, resulta imposible de detectar y bloquear.

  • Túneles de tráfico flexibles: TrustTunnel puede tunelizar tráfico TCP, UDP e ICMP hacia y desde el cliente.

  • Compatibilidad multiplataforma: el servidor es compatible con Linux y macOS. El cliente está disponible para Android, Apple, Windows y Linux.


Características del cliente

  • Túneles de tráfico: la biblioteca puede tunelizar tráfico TCP, UDP e ICMP desde el cliente hasta el endpoint y viceversa.

  • Soporte multiplataforma: es compatible con Linux, macOS y Windows, ofreciendo una experiencia consistente en diferentes sistemas operativos.

  • Túnel a nivel de sistema y proxy SOCKS5: se puede configurar como un túnel a nivel de sistema, utilizando una interfaz de red virtual, así como un proxy SOCKS5.

  • Tunelización dividida: la biblioteca admite la tunelización dividida, lo que permite a los usuarios excluir conexiones a ciertos dominios o hosts del enrutamiento a través del endpoint VPN, o viceversa, enrutar solo conexiones a dominios o hosts específicos a través del endpoint según una lista de exclusión.

  • Upstream DNS personalizado: los usuarios pueden especificar un upstream DNS personalizado, que se utiliza para consultas DNS enrutadas a través del endpoint VPN.


Inicio rápido

Configuración del endpoint

Instalar el endpoint

Hay un script de instalación disponible que se puede ejecutar con el siguiente comando:

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

El script de instalación descargará el paquete precompilado de la última versión de GitHub para la arquitectura del sistema adecuada y lo descomprimirá en /opt/trusttunnel. El directorio de salida se puede sobrescribir especificando -o DIR al final del comando anterior.

Si desea instalar una versión específica (en lugar de la última), use -V <version>:

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

[!NOTE] Los paquetes precompilados están disponibles para las arquitecturas linux-x86_64, linux-aarch64 y macos-universal (Intel y Apple Silicon).

Actualizar el endpoint

El script de instalación siempre instala la última versión disponible. Por lo tanto, para actualizar su instalación, ejecute el comando de instalación nuevamente:

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

Esto vuelve a ejecutar el instalador y reemplaza los binarios en el directorio de instalación (/opt/trusttunnel por defecto, o el directorio que especificó con -o DIR).

[!NOTE] No olvide detener el endpoint antes de actualizar:

sudo systemctl stop trusttunnel

Para iniciar el endpoint nuevamente después de actualizar:

sudo systemctl start trusttunnel

Asistente de configuración del endpoint

Consulte CONFIGURATION.md para obtener una documentación más detallada sobre cómo configurar el endpoint.

El directorio de instalación contiene el binario setup_wizard que ayuda a generar los archivos de configuración necesarios para que el endpoint funcione:

cd /opt/trusttunnel/
./setup_wizard -h

El asistente de configuración admite el modo interactivo, por lo que puede ejecutarlo y le preguntará por los datos necesarios para la configuración del endpoint.

cd /opt/trusttunnel/
sudo ./setup_wizard

[!NOTE] Se requiere sudo para gestionar correctamente los certificados TLS.

El asistente solicitará los siguientes campos; algunos tienen valores predeterminados que puede usar sin problemas:

  • La dirección de escucha: especifique la dirección en la que el endpoint escuchará. Use 0.0.0.0:443 para implementaciones nativas (HTTPS en todas las interfaces). Si ejecuta con mapeo de puertos Docker 443:8443, configúrelo como 0.0.0.0:8443.

  • Ruta al archivo de credenciales: ruta donde se almacenarán las credenciales de usuario para la autorización.

  • Nombre de usuario: el nombre de usuario que usará el usuario para la autorización.

  • Contraseña: la contraseña del usuario.

  • ¿Agregar otro usuario?: seleccione yes si desea agregar más usuarios, o no para continuar con el proceso de configuración.

  • Ruta al archivo de reglas: ruta para almacenar las reglas de filtrado.

  • Reglas de filtrado de conexiones: puede agregar reglas que el endpoint usará para permitir o denegar conexiones de usuarios según:

    • Dirección IP del cliente
    • Prefijo aleatorio TLS
    • Aleatorio TLS con máscara

    Presione n para permitir todas las conexiones.

  • Ruta a un archivo para almacenar la configuración de la biblioteca: ruta para almacenar el archivo de configuración principal del endpoint.

  • Selección de certificado: elija cómo obtener un certificado TLS:

    • Emitir un certificado Let's Encrypt (requiere un dominio público): el asistente de configuración tiene soporte ACME integrado y puede obtener automáticamente un certificado gratuito y de confianza pública de Let's Encrypt. Necesitará:
      • Un dominio registrado que apunte a la dirección IP de su servidor
      • Puerto 80 accesible desde internet (para el desafío HTTP-01), o
      • Capacidad para agregar registros DNS TXT (para el desafío DNS-01)
    • Generar un certificado autofirmado: adecuado para pruebas o cuando se usa solo el cliente CLI. Nota: el cliente Flutter aún no soporta certificados autofirmados.
    • Proporcionar ruta a un certificado existente: use sus propios archivos de certificado obtenidos de otra CA o herramienta como certbot.
  • Ruta a un archivo para almacenar la configuración de los hosts TLS: ruta para almacenar el archivo de configuración de hosts TLS.

En este punto, todos los archivos de configuración necesarios se han creado y guardado en el disco.

Ciclo de vida del certificado Let's Encrypt

El asistente de configuración puede obtener un certificado Let's Encrypt durante la configuración inicial, pero usted es responsable de asegurarse de que se mantenga válido con el tiempo (renovación y recarga/reinicio del servicio).

Si usa Certbot para gestionar certificados y renovarlos automáticamente, siga la guía en CERT_RENEWAL.md.

Ejecutar el endpoint

El paquete instalado contiene una plantilla de servicio systemd, llamada trusttunnel.service.template.

Esta plantilla se puede usar para configurar el endpoint como un servicio systemd:

[!NOTE] El archivo de plantilla asume que el binario de TrustTunnel Endpoint y todos sus archivos de configuración están ubicados en /opt/trusttunnel y tienen los nombres de archivo predeterminados. Modifique la plantilla si ha usado rutas diferentes.

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

Exportar configuración del cliente

El binario del endpoint puede generar configuraciones de cliente en dos formatos:

Formato de enlace profundo (predeterminado)

Genera un URI compacto tt://? adecuado para códigos QR y aplicaciones móviles:

# <client_name> - nombre del cliente cuyas credenciales se incluirán en la configuración
# <address> - `ip`, `ip:port`, `domain` o `domain:port` que el cliente usará para conectarse
#           Si solo se especifica `ip` o `domain`, se usará el puerto del campo `listen_address`
cd /opt/trusttunnel/
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address>

# O especifique explícitamente el formato:
./trusttunnel_endpoint vpn.toml hosts.toml -c <client_name> -a <address> --format deeplink

Esto genera un URI de enlace profundo tt://? que se puede:

También puede proporcionar opciones adicionales:

  • --name <display_name>: Establecer un nombre personalizado para el servidor en la aplicación del cliente.
  • --dns-upstream <dns_upstream>: Especificar un upstream DNS para el cliente. Puede ser una dirección IP o un URI DNS seguro (por ejemplo, tls://1.1.1.1, https://dns.google/dns-query). Esta bandera se puede usar varias veces para proporcionar una lista de upstreams DNS.

Ejemplo con nombre personalizado y upstreams DNS:

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

Cuando se usa --generate-client-random-prefix, el endpoint también añade una regla de permiso para el valor generado al archivo rules.toml referenciado desde vpn.toml.

Nota: Si su certificado está firmado por una CA de confianza (por ejemplo, Let's Encrypt), se omitirá automáticamente del enlace profundo para mantenerlo compacto. Los certificados autofirmados se incluyen automáticamente.

Formato TOML (para el cliente CLI)

Genera un archivo de configuración TOML tradicional:

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

Esto genera un archivo de configuración TOML adecuado para el cliente CLI.

Ambos formatos contienen toda la información necesaria para conectarse al endpoint. Consulte la documentación de TrustTunnel Flutter Client para obtener instrucciones de configuración.

¡Felicidades! Ha terminado de configurar el endpoint.

Configuración del cliente

Hay varios clientes disponibles para conectarse al endpoint; consulte la sección Clientes para obtener la lista completa. Las instrucciones a continuación cubren la configuración del cliente CLI oficial.

Instalar el cliente

Linux / macOS

Hay un script de instalación disponible:

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

El script de instalación descargará el paquete precompilado de la última versión de GitHub para la arquitectura del sistema adecuada y lo descomprimirá en /opt/trusttunnel_client. El directorio de salida se puede sobrescribir especificando -o DIR al final del comando anterior.

[!NOTE] El script de instalación admite las arquitecturas x86_64, aarch64, armv7, mips y mipsel para linux, y arm64 y x86_64 para macOS.

Windows

Descargue el archivo de la última versión desde la página de versiones de TrustTunnel Client.

Extraiga el archivo en un directorio de su elección, por ejemplo C:\TrustTunnel\.

Configuración en enrutadores

Para implementaciones en enrutadores, consulte las guías de instalación del cliente específicas para enrutadores.

Actualizar el cliente

Linux / macOS

El script de instalación siempre instala la última versión disponible. Por lo tanto, para actualizar su instalación, ejecute el comando de instalación nuevamente:

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

Esto vuelve a ejecutar el instalador y reemplaza los binarios en el directorio de instalación (/opt/trusttunnel_client por defecto, o el directorio que especificó con -o DIR).

[!NOTE] No olvide detener el cliente antes de actualizar (por ejemplo, deteniendo el proceso en ejecución).

Windows

Descargue la última versión desde la página de versiones y reemplace los archivos en su directorio de instalación.

Asistente de configuración del cliente

El directorio de instalación contiene el binario setup_wizard que ayuda a generar los archivos de configuración necesarios para que el cliente funcione.

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

Para configurar el cliente para usar la configuración generada por el endpoint, ejecute el siguiente 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

En ambos casos, <endpoint_config> es la ruta al archivo de configuración generado por el endpoint.

trusttunnel_client.toml contendrá toda la configuración necesaria para el cliente.

[!TIP] La configuración generada contiene ajustes básicos para conectarse al endpoint. Para funciones avanzadas, edite trusttunnel_client.toml directamente. Puede configurar:

  • Modo VPN: enrutar todo el tráfico (general) o solo destinos específicos (selective)
  • Kill switch: bloquear el tráfico cuando la VPN se desconecta
  • Upstreams DNS: resolutores DNS personalizados (compatible con DoH, DoT, DoQ)
  • Exclusiones: dominios/IPs para omitir o enrutar a través de la VPN
  • Tipo de listener: dispositivo TUN o proxy SOCKS5

Consulte el README del TrustTunnel CLI Client para conocer todas las opciones disponibles.

[!NOTE] Después de editar la configuración, reinicie el cliente para que los cambios surtan efecto.

Ejecutar el cliente

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

Se requiere sudo para configurar las rutas y la interfaz tun.

Windows

Abra un terminal como Administrador y ejecute:

trusttunnel_client.exe -c trusttunnel_client.toml

Se requieren privilegios de Administrador para configurar las rutas y la interfaz TUN.

Clientes

Oficiales

CLI

TrustTunnel Client — Linux, macOS, Windows

GUI

TrustTunnel Flutter Client — iOS, Android (macOS, Windows — próximamente). Disponible en App Store* y Play Store.

[!NOTE] * En algunos países, la aplicación de iOS no está disponible en la App Store. Es posible que necesite un Apple ID de otro país para descargarla. Aprenda a cambiar el país de su App Store.

De la comunidad

[!NOTE] Los clientes de la comunidad son desarrollados y mantenidos de forma independiente. No cuentan con soporte oficial del equipo de TrustTunnel.

GUI

Trusty - Un cliente GUI multiplataforma construido con Flutter (Windows estable, macOS alfa). Incluye registros en tiempo real, implementación de servidor SSH con un clic y autodescubrimiento de grupos de dominios para tunelización dividida.

TrustTunnel-GUI-Client — Cliente GUI para Windows, implementado como un envoltorio Python para TrustTunnel Client

Surge — (Comercial) Caja de herramientas de red para macOS e iOS con soporte experimental para TrustTunnel

FireTunnel - Un cliente multiplataforma escrito en QT que utiliza una versión modificada de TrustTunnel Client

Ver también

Hoja de ruta

Si bien nuestra VPN actualmente admite la tunelización de tráfico TCP/UDP/ICMP, planeamos agregar soporte para comunicación peer-to-peer entre clientes.

Esté atento a esta función en futuras versiones.

Licencia

Este proyecto está licenciado bajo la Licencia Apache 2.0. Consulte LICENSE para obtener más detalles.

Categorías