Cliente 1.1.1

Funciones de WireGuard que vienen en el protocolo y en el cliente para Windows.

Cryptokey Routing es la función que se encuentra primero: una clave pública más una lista AllowedIPs. El handshake es Noise_IKpsk2_25519_ChaChaPoly_BLAKE2s, con Curve25519, ChaCha20-Poly1305 y BLAKE2s. La compilación de Windows que corresponde a esta página es 1.1.1, del 20 de septiembre de 2026.

Actualizado el .

La criptografía es una sola construcción

La página del protocolo nombra un conjunto fijo. No hay menú de cifrados. Una clave precompartida opcional añade un secreto simétrico extra. Si esa clave no está, la construcción usa 32 bytes a cero. El handshake busca confidencialidad directa perfecta, ocultación de la identidad y protección contra reinyección, y evita reservar estado de sesión para un paquete que no supera la comprobación mac1.

Primitivas que nombra el proyecto
PrimitivaFunción
ChaCha20-Poly1305Cifrado autenticado de paquetes, construcción del RFC 7539.
XChaCha20-Poly1305Se usa donde el protocolo pide un nonce aleatorio de 24 bytes.
Curve25519ECDH. Las claves públicas son puntos Curve25519.
BLAKE2sHash y hash con clave, RFC 7693.
SipHash24Claves de tabla hash.
HKDFDerivación de claves, RFC 5869.
Noise_IKpsk2Patrón de handshake. Cadena de construcción: Noise_IKpsk2_25519_ChaChaPoly_BLAKE2s.

El libro blanco dice que la implementación de Linux queda por debajo de 4.000 líneas, sin contar las primitivas criptográficas, de modo que una persona pueda leerla. Un recuento público posterior del árbol del núcleo situó los archivos C un poco por encima cuando se incluían las cabeceras. Linux 5.6, publicado el 29 de marzo de 2020, incorporó el túnel. Una auditoría de terceros anterior a esa versión no encontró vulnerabilidades y añadió una nota de defensa en profundidad.

Cryptokey Routing

Cada interfaz tiene una clave privada y una lista de pares. Cada par tiene una clave pública y AllowedIPs. Al enviar, la dirección de destino elige el par, el paquete se cifra para esa clave pública y UDP lo lleva al endpoint del par. Al recibir, el paquete debe descifrarse para un par conocido y el origen interior debe estar en los AllowedIPs de ese par. Si no, se descarta.

Por eso una regla de cortafuegos a menudo puede coincidir con «desde esta dirección, en esta interfaz» y tratar el paquete como ya autenticado. IPv4 e IPv6 pueden compartir un par. El puerto de escucha habitual en los ejemplos es 51820. El tuyo puede ser otro.

Importar una configuración que ya tiene estos campos

WireGuard
Pestaña Tunnels con un túnel Active, Deactivate y un recuento de transferencia. Abre la imagen para examinarla.

Cliente para Windows, WireGuardNT

El repositorio de Windows describe este cliente como la forma oficial de ejecutar WireGuard en Windows. Usa WireGuardNT. El servicio administrador, WireGuardManager, posee la interfaz de la bandeja. Cada túnel es un servicio aparte llamado WireGuardTunnel$ y el nombre de la configuración.

La importación acepta un archivo .conf o un .zip. La versión 1.1.1 rechaza nombres duplicados en una misma importación. El administrador vigila la carpeta de configuraciones, cifra un archivo nuevo a .conf.dpapi con CryptProtectData, lo limita a Local System y borra la copia en claro. Exportar desde la interfaz vuelve a escribir las configuraciones.

Un par con AllowedIPs 0.0.0.0/0 o ::/0 activa Block untunneled traffic (Bloquear el tráfico fuera del túnel). Las rutas /1 omiten ese comportamiento del cortafuegos. El editor tiene una casilla para ello. Pasos si la red se queda en silencio

WireGuard
Add Tunnel, Edit y Deactivate en un túnel Active. Abre la imagen para examinarla.
Comandos documentados para administradores
ComandoQué hace
wireguard /installtunnelservice path.confCrea WireGuardTunnel$ y el nombre de la configuración.
wireguard /uninstalltunnelservice nameQuita ese servicio de túnel.
wireguard /installmanagerserviceInstala WireGuardManager para la interfaz de la bandeja.
wireguard /dumplogImprime el registro circular compartido. Añade /tail para seguirlo.
wireguard /updateEjecuta el actualizador. La interfaz también puede hacerlo.
wireguard /removedriverQuita el controlador del adaptador cuando no queda ningún adaptador de túnel.

PreUp, PostUp, PreDown y PostDown solo se ejecutan si está definida la clave de registro de administrador que los permite. Un archivo .conf.dpapi necesita Local System o un administrador para wg show.

Dónde corre el mismo túnel

Rutas de instalación que nombra el proyecto
SistemaQué se instalaNota
Windows 10, 11, Server 2016 a 2025MSI o el instalador que lo obtieneCliente 1.1.1. amd64 y x86 pesan 3.3 MB. arm64 pesa 2.9 MB. MIT.
LinuxMódulo del núcleo desde 5.6, más wireguard-toolsEn el árbol desde el 29 de marzo de 2020. Las distribuciones empaquetan las herramientas. Términos GPL de la compilación del núcleo.
macOSCliente de la App Store, o wireguard-tools desde Homebrew o MacPortsLa vía de las herramientas es un túnel de línea de comandos, no el MSI de Windows.
Android e iOSAplicaciones de las tiendas. Android también tiene un APK directo.Los teléfonos pueden importar un código QR. El cliente de Windows importa un archivo.
FreeBSD, OpenBSDPaquete wireguard o wireguard-toolsFiguran en la página de instalación del proyecto junto con los demás sistemas.

Los archivos de este sitio son los MSI de Windows. Los demás sistemas usan sus propios paquetes. Versión, tamaño y requisitos de Windows

Itinerancia, keepalive y contenedores

Los dos lados envían al endpoint más reciente que produjo un paquete autenticado. Un portátil puede cambiar de red sin una configuración nueva. El servidor aprende el endpoint de un cliente con el primer paquete válido, así que la configuración del servidor a menudo no tiene línea Endpoint para ese par.

PersistentKeepalive vale 0 de forma predeterminada. Pon 25 solo si el par está detrás de NAT o de un cortafuegos con estado y debe aceptar sesiones nuevas cuando el tráfico se queda en silencio. La edición exacta

En Linux, la interfaz usa el espacio de nombres de red donde se creó. Puedes moverla al espacio de nombres de un contenedor para que la única salida de ese contenedor sea el túnel.

[Interface]
PrivateKey = (stays on the machine that owns it)
Address = 10.10.10.2/32

[Peer]
PublicKey = gN65BkIKy1eCE9pP1wdc8ROUtkHLF2PfAqYdyYBz6EA=
AllowedIPs = 10.10.10.230/32
Endpoint = 192.95.5.69:51820
PersistentKeepalive = 25

Direcciones de ejemplo publicadas y una clave pública de ejemplo publicada. No reutilices la clave. Omite PersistentKeepalive cuando no lo necesites.

Descargar 1.1.1 WireGuard illustration