WireGuard en macOS: las dos instalaciones y el nombre de interfaz que rompe los tutoriales de Linux

La app de la Mac App Store y brew install wireguard-tools no son el mismo producto. Cuál elegir, cómo importar un .conf y por qué wg0 falla en macOS mientras que utun funciona.

Por Eric GerardFundador · VPNSmith - Especialista en VPN self-host y VPS GDPR

Actualizado 6 min de lectura6 min

Enlaces de afiliado: podemos cobrar una comisión, sin coste extra. Método

Generar mi configuraciónLeer la guía

fig. 01 / self-host-vpnencrypted tunnelUDP 51820DEVICE10.8.0.2SERVER10.8.0.1INTERNETNATAllowedIPs = 0.0.0.0/0, ::/0ListenPort = 51820 (server)
fig. 01 / self-host-vpn

Instalar WireGuard en un Mac parece trivial hasta que el tutorial que sigues estaba escrito para Linux. Dos cosas hacen tropezar: existen dos productos WireGuard distintos para macOS, y el nombre de interfaz que todo el mundo usa en los ejemplos, wg0, no puede existir en un Mac.

¿Aún no tienes una configuración que importar? Nuestro generador de configuración WireGuard gratuito crea en tu navegador el archivo del servidor y el del cliente Mac, listo para importar como .conf; las claves se generan localmente y nada se envía a un servidor. El generador es gratuito y sin cuenta, hasta 250 dispositivos, y su exportación ZIP reúne cada .conf de cliente y su código QR en PNG, práctico para equipar una oficina o una familia entera de una vez.

Genera aquí tus configuraciones WireGuard

Escribe la dirección del servidor, elige el número de dispositivos y escanea cada código QR desde la app.

Todas las claves se generan en tu navegador (Curve25519 / X25519). Nada se envía a nuestros servidores - tu config es 100% privada.

IPv4 pública o dominio de la máquina que ejecutará WireGuard. ¿Aún no tienes servidor? Déjalo vacío y añádelo después.

Gratis, sin cuenta: hasta 250 clientes, cada .conf con su código QR, y un ZIP con todos los archivos.

Todo lo que el dispositivo envía a internet pasa por tu servidor.

Ajustes avanzadosSubred del túnel, DNS, redes site-to-site. Los valores por defecto sirven para la mayoría de los casos.

Opcional. Indica la subred local detrás del servidor y/o detrás de un cliente que hace de pasarela de sitio (un router, una Raspberry Pi, un NAS). El generador añade cada red a los AllowedIPs del servidor, da a cada par las rutas hacia las otras redes y escribe las reglas de reenvío en las pasarelas. Deja un campo vacío para un cliente normal.

Lo que descargas

  • wg0.conf

    para el servidor

  • client1.conf

    uno por dispositivo

  • QR (ejemplo)

    para la app móvil

Vista ilustrativa: líneas y QR ficticios, ninguna clave real. Tus archivos reales se generan en tu navegador al hacer clic.

¿Aún no tienes servidor? El cliente Mac necesita un servidor WireGuard al que conectarse; un VPS Cloud de Contabo (enlace de afiliado) lo ejecuta con su propia IPv4 pública, desde 5,50 € al mes con un plazo de 24 meses (precio consultado el 17 de octubre de 2026). Si prefieres un proveedor estadounidense con 30 días de devolución, el VPS Basic de Ultahost cuesta 5,52 $ al mes a 24 meses (1 GB de RAM, IPv4 dedicada, leído el 21 de octubre de 2026), suficiente para un servidor WireGuard de pocos dispositivos. ¿Proveedor sin elegir? Comparativas: mejor VPS para una VPN y Contabo vs Hetzner vs OVH, al precio realmente facturado. Otra opción: HostPapa Unmanaged VPS Lite (enlace de afiliado) por 2,95 $ al mes con un plazo de 3 años, luego a la tarifa normal (1 núcleo, 1 GB de RAM, 25 GB NVMe, acceso root por SSH, garantía de reembolso de 30 días, consultado el 28 de octubre de 2026).

Las dos instalaciones, según la página oficial

La página de instalación de WireGuard lista ambas, y son software realmente distinto:

La app de la Mac App Store. Un cliente gráfico con elemento en la barra de menús, importación de túneles y activación bajo demanda. Es lo que quiere la mayoría.

Las herramientas de línea de comandos.

brew install wireguard-tools
# o, con MacPorts
port install wireguard-tools

Obtienes wg y wg-quick, los mismos comandos que usas en un servidor. Por debajo corre la implementación Go en espacio de usuario en lugar de un módulo del kernel, porque macOS no lleva WireGuard en el kernel.

No comparten la lista de túneles. Un túnel importado en la app no aparecerá en wg show, y viceversa. Elige uno por máquina salvo que tengas un motivo para tener los dos.

Primer plano de una pantalla de terminal mostrando un listado de directorios Unix en verde y azul
Primer plano de una pantalla de terminal mostrando un listado de directorios Unix en verde y azul

Lo que rompe los tutoriales de Linux: aquí wg0 no existe

Es el fallo más frecuente, y el mensaje de error casi nunca lo explica.

En Linux creas wg0 y sigues adelante. En macOS los túneles van sobre el controlador utun, y la documentación multiplataforma de WireGuard enuncia la restricción con claridad: el controlador utun no puede tener nombres de interfaz arbitrarios. Hay que usar utun seguido de un número, por ejemplo utun0, o simplemente utun para que el kernel elija.

# falla en macOS
sudo wg-quick up wg0

# funciona
sudo wg-quick up utun

Si copiaste una guía que dice wg0, renombra el fichero de configuración y cualquier comando que lo mencione. Las claves, AllowedIPs, Endpoint y DNS no se ven afectados: solo el nombre de interfaz depende de la plataforma.

Saber qué utun te tocó. Si dejas que elija el kernel, necesitas una forma de conocer el resultado. Define WG_TUN_NAME_FILE antes de levantar el túnel y el nombre elegido se escribe ahí:

export WG_TUN_NAME_FILE=/tmp/wg-name
sudo -E wg-quick up utun
cat /tmp/wg-name    # por ejemplo utun4

Sin eso, lees la salida de ifconfig adivinando cuál utun es el tuyo: aceptable una vez, tedioso en un script.

Importar una configuración que ya tienes

Si generaste una configuración de cliente en tu servidor, se transfiere tal cual. En la app, usa la opción de importar y selecciona el fichero .conf: el túnel aparece en la lista, listo para activar. Con la línea de comandos, colócalo en /opt/homebrew/etc/wireguard/utun.conf (Apple Silicon) o /usr/local/etc/wireguard/utun.conf (Intel), nombrando el fichero según la interfaz, y ejecuta wg-quick up utun.

Una configuración generada para un teléfono también sirve en un Mac. Es una definición de par, no un artefacto propio del dispositivo, siempre que cada equipo tenga su propio par de claves y no uno compartido.

Comprobar que de verdad funciona

Levanta el túnel y confirma dos cosas en lugar de suponerlas.

sudo wg show

Un par sano muestra un latest handshake de hace menos de dos minutos y contadores transfer distintos de cero en ambos sentidos. Enviado pero nada recibido es la firma de un camino de vuelta bloqueado. Si el handshake nunca se completa, nuestra guía de solución de problemas del handshake recorre las causas por orden de probabilidad.

Después confirma que el tráfico pasa realmente por el túnel, y no solo que la interfaz existe: comprueba tu IP pública desde el navegador y, si enrutas el DNS por el túnel, verifica que no haya fuga. Nuestra nota sobre prevención de fugas DNS en WireGuard cubre los ajustes que importan.

Para tener lo esencial a mano: la WireGuard Cheat Sheet gratuita (PDF de 5 páginas en inglés, descarga directa, sin registro) reúne las tablas de keepalive y MTU, los comandos wg genkey/wg pubkey/wg genpsk y las cuatro comprobaciones de servidor en una línea que conviene lanzar primero cuando un túnel no pasa tráfico. El WireGuard Self-Hosting Kit de pago (9 USD, en inglés) añade una lista de diagnóstico de 12 causas y 11 plantillas de configuración.

Una VPN cambia su IP. No cambia su navegador.

Un túnel sustituye la dirección que ve un servicio. No cambia nada de lo que su navegador anuncia por su cuenta - fuentes, pantalla, zona horaria, pila gráfica - y esa combinación suele bastar para reconocerle de una sesión a otra.

Mida su huella de navegador - medición pasiva, sin preguntas, sin cuenta, sin correo electrónico.

En resumen

Dos productos: la app de la App Store para un cliente gráfico, wireguard-tools vía Homebrew o MacPorts para la misma línea de comandos que tu servidor. No comparten túneles. Y en macOS la interfaz debe llamarse utun o utunN, nunca wg0, porque el controlador utun no acepta nombres arbitrarios. Esa sola línea explica la mayoría de instalaciones fallidas en Mac copiadas de guías de Linux.

Enlace de afiliado

Precio revisado el 17/10/2026, permanencia 24 meses

Preguntas frecuentes

¿Cómo se instala WireGuard en macOS?
La página oficial de instalación lista dos vías. La aplicación gráfica viene de la Mac App Store. Las herramientas de línea de comandos vienen de un gestor de paquetes: `brew install wireguard-tools` con Homebrew, o `port install wireguard-tools` con MacPorts. No son el mismo producto y no comparten la lista de túneles, así que elige uno y quédate con él salvo que quieras expresamente ambos.
¿Por qué wg0 no funciona en macOS?
Porque macOS no tiene módulo WireGuard en el kernel: los túneles pasan por la implementación en espacio de usuario, sobre el controlador utun, y ese controlador no acepta nombres de interfaz arbitrarios. La documentación multiplataforma de WireGuard es explícita: hay que usar utun seguido de un número, o simplemente utun para que el kernel elija uno. Un tutorial de Linux que te diga crear wg0 fallará por tanto en un Mac, y el mensaje de error rara vez explica por qué.
¿Cómo sé qué interfaz utun eligió el kernel?
Define la variable de entorno WG_TUN_NAME_FILE antes de levantar el túnel. Cuando el nombre de interfaz se deja como utun, el nombre realmente elegido por el kernel se escribe en el fichero que indicaste. Sin eso te toca leer la salida de `ifconfig` y adivinar qué utun es el tuyo.
¿App de la App Store o herramientas de Homebrew?
La aplicación si quieres una experiencia macOS normal: conmutador en la barra de menús, importación de túneles arrastrando y activación bajo demanda. Las wireguard-tools si automatizas, administras la máquina por SSH o quieres los mismos comandos wg y wg-quick que en tu servidor. La app está en sandbox y se actualiza por la App Store; la línea de comandos se actualiza por tu gestor de paquetes.
¿Puedo reutilizar el .conf de mi servidor Linux?
Sí, en el lado cliente. Una configuración de par es texto plano y por tanto portable: los bloques [Interface] y [Peer] generados para un portátil funcionan tal cual. Lo único que no se transfiere es el nombre de interfaz: renómbralo a utun o utunN si el fichero o tus comandos mencionan wg0. Claves, AllowedIPs, Endpoint y DNS se trasladan sin cambios.