VPNSmith
Herramienta gratuita - MTU de WireGuard

Calculadora de MTU de WireGuard

¿Tu túnel conecta y responde al ping, pero las páginas se cuelgan? Introduce la mayor carga útil de ping sin fragmentación que pasa, o elige tu tipo de enlace, y obtén el MTU para wg0.conf, los comandos para aplicarlo y la escalera de pings para verificarlo. Todo se ejecuta en tu navegador.

Se ejecuta por completo en tu navegador. Nada de lo que escribes sale de la página.

¿Qué sabes de tu enlace?

Ejemplo: ping -M do -s 1472 IP_PUBLICA_SERVIDOR responde, así que escribes 1472. Si falla, sigue la escalera de los comandos de prueba de abajo e introduce el mayor tamaño que pasa.

Conexión hacia el servidor (fuera del túnel)
Comandos para

Resultado

1500
MTU de la ruta
-80
Sobrecarga WireGuard
1420
MTU a fijar

Tu ruta transporta paquetes completos de 1500 bytes: el 1420 por defecto sirve. Si las transferencias grandes siguen colgándose, la causa está en otro sitio (reenvío, masquerade, AllowedIPs). Aun así puedes escribir MTU = 1420 de forma explícita.

wg0.conf
[Interface]
PrivateKey = <client private key>
Address = 10.66.66.2/32
MTU = 1420

[Peer]
PublicKey = <server public key>
Endpoint = SERVER_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
apply-mtu.sh
# 1. Añade la línea MTU en [Interface] de /etc/wireguard/wg0.conf y reinicia el túnel
sudo wg-quick down wg0 && sudo wg-quick up wg0

# 2. O cámbialo en caliente sin reiniciar (se pierde en el próximo wg-quick down)
sudo ip link set dev wg0 mtu 1420
ip link show wg0 | grep -o 'mtu [0-9]*'
test-mtu.sh
# Escalera de pings a la IP PÚBLICA del servidor, fuera del túnel: empieza por arriba, el primer tamaño que responde es tu carga útil
# Un tamaño que falla muestra 'message too long', 'needs to be fragmented' o ninguna respuesta
ping -M do -s 1472 -c 3 SERVER_PUBLIC_IP
ping -M do -s 1464 -c 3 SERVER_PUBLIC_IP
ping -M do -s 1452 -c 3 SERVER_PUBLIC_IP
ping -M do -s 1444 -c 3 SERVER_PUBLIC_IP
ping -M do -s 1400 -c 3 SERVER_PUBLIC_IP
ping -M do -s 1372 -c 3 SERVER_PUBLIC_IP
ping -M do -s 1300 -c 3 SERVER_PUBLIC_IP
ping -M do -s 1252 -c 3 SERVER_PUBLIC_IP

# Verificación a través del túnel, a la IP de túnel del servidor: debe responder con el nuevo MTU
ping -M do -s 1392 -c 3 10.66.66.1
# carga útil = MTU menos 28; si falla, baja más el MTU

La mitad de los problemas de MTU son la ruta, no la configuración

Doble NAT, el router de casa y un túnel apilado sobre otro túnel recortan bytes de tu ruta. Un VPS con una IPv4 pública limpia es un único salto en un enlace de 1500 bytes, donde el 1420 por defecto funciona sin más. El VPS de entrada de Contabo incluye una dirección IPv4 pública y acceso root completo.

Enlace de afiliado: podemos recibir una comisión, sin coste extra para ti. La calculadora sigue siendo gratuita y no depende de ello.

Ver el VPS de Contabo

De dónde salen los números

WireGuard envuelve cada uno de tus paquetes en un datagrama UDP. La envoltura tiene un tamaño fijo, así que el MTU del túnel es simplemente el MTU de la ruta menos esa envoltura. Es exactamente lo que hace wg-quick cuando no se indica MTU: toma el MTU de la ruta hacia el endpoint y resta 80, de ahí el conocido 1420 en un enlace de 1500 bytes.

CabeceraBytes
Cabecera IPv4 externa20
Cabecera IPv6 externa40
Cabecera UDP8
Cabecera de datos de WireGuard (tipo, índice, contador)16
Etiqueta de autenticación Poly130516
Total sobre IPv4 / sobre IPv660 / 80
Ping: cabeceras IPv4 + ICMP alrededor de la carga útil28

Una carga útil de ping de 1472 bytes viaja por tanto en un paquete de 1500 bytes. Si 1472 pasa con la bandera de no fragmentar, el MTU de tu ruta es 1500 y el 1420 por defecto sirve. Si solo pasa 1400, el MTU de la ruta es 1428 y WireGuard no debe enviar más de 1348 sobre IPv6. La calculadora resta 80, salvo que indiques que la conexión externa es solo IPv4: entonces bastan 60.

Valores típicos cuando no puedes medir

Un valor medido siempre gana a una tabla. Estas referencias sirven cuando no puedes ejecutar el ping, por ejemplo en un teléfono o en una red que no controlas.

Tipo de enlaceMTU de la rutaMTU de WireGuard
Ethernet, fibra, cable15001420 (por defecto)
ADSL/VDSL con PPPoE14921412
Móvil, 5G, CGNATvariable1280 (respaldo)
Túnel dentro de otra VPNreducido dos veces1280 (respaldo)
Mínimo garantizado de IPv612801280

Preguntas frecuentes

¿Cuál es el MTU por defecto de WireGuard y por qué 1420?
Cuando la configuración no tiene línea MTU, wg-quick fija el MTU de la interfaz en el de la ruta hacia el endpoint menos 80 bytes. En un enlace estándar de 1500 bytes eso da 1420. Los 80 bytes son el peor caso: 40 de cabecera IPv6, 8 de UDP y 32 de trama WireGuard. Sobre IPv4 la sobrecarga real es de 60 bytes, así que 1440 también cabría, pero 1420 es seguro en ambos casos.
¿Cómo mido el MTU correcto?
Envía un ping a la IP pública del servidor con la bandera de no fragmentar y una carga útil grande, y redúcela hasta que lleguen respuestas: ping -M do -s 1472 en Linux, ping -f -l 1472 en Windows, ping -D -s 1472 en macOS. Toma la mayor carga útil que pasa, suma 28 bytes de cabeceras IP e ICMP para obtener el MTU de la ruta y resta 80 para WireGuard. La calculadora hace la aritmética y escribe los comandos para tu sistema.
WireGuard conecta pero no carga ninguna página: ¿es el MTU?
Muy probablemente, cuando el tráfico pequeño funciona y el grande no. Un handshake, una consulta DNS y un ping son pequeños, así que tienen éxito. Una página web completa es un paquete de tamaño máximo; si supera el MTU de la ruta y el mensaje ICMP de fragmentación necesaria se filtra en algún punto, se descarta en silencio. Bajar el MTU de WireGuard por debajo del MTU real de la ruta lo soluciona. Si no pasa nada en absoluto, revisa primero el reenvío IP, la regla de masquerade y AllowedIPs.
¿Por qué 1280 es el respaldo seguro?
La RFC 8200 exige que todo enlace IPv6 transporte paquetes de 1280 bytes, y en la práctica toda ruta IPv4 también lo hace. Un MTU de WireGuard de 1280 funciona por tanto en PPPoE, móvil, CGNAT y túneles anidados sin medir, a cambio de unos pocos puntos de eficiencia en un enlace limpio de 1500. Si el propio túnel transporta IPv6, el MTU de la interfaz no debe bajar de 1280.
¿Cliente o servidor: dónde ajusto el MTU?
En el lado cuyo enlace está limitado, que casi siempre es el cliente (ADSL doméstico, móvil, oficina). El MTU de una interfaz solo limita lo que esa interfaz envía: bajarlo en el cliente arregla las subidas y las peticiones, y las respuestas del servidor siguen el MSS de TCP resultante. Si el propio servidor está detrás de un enlace inferior a 1500, ajústalo también allí.
¿La línea MTU= funciona en Windows, macOS, Android e iOS?
Sí. Las aplicaciones oficiales de WireGuard leen la clave MTU= de la sección [Interface] y la aplican al activar el túnel. En Linux la aplica wg-quick, y también puedes cambiarla en caliente con ip link set dev wg0 mtu, lo que no sobrevive a un reinicio del túnel.