VPNSmith
Kostenloses Tool - WireGuard-MTU

WireGuard-MTU-Rechner

Dein Tunnel verbindet sich und antwortet auf Ping, aber Seiten hängen? Gib die größte Ping-Nutzlast ohne Fragmentierung ein, die durchkommt, oder wähle deinen Anschlusstyp, und du bekommst die MTU für wg0.conf, die Befehle zum Anwenden und die Ping-Leiter zum Prüfen. Alles läuft in deinem Browser.

Läuft vollständig in deinem Browser. Nichts, was du eingibst, verlässt die Seite.

Was weißt du über deinen Anschluss?

Beispiel: ping -M do -s 1472 SERVER_PUBLIC_IP antwortet, also gibst du 1472 ein. Schlägt es fehl, folge der Leiter in den Testbefehlen unten und trage die größte Größe ein, die durchkommt.

Verbindung zum Server (außerhalb des Tunnels)
Befehle für

Ergebnis

1500
Pfad-MTU
-80
WireGuard-Overhead
1420
Zu setzende MTU

Dein Pfad transportiert volle 1500-Byte-Pakete: die Standard-MTU 1420 passt. Hängen große Übertragungen trotzdem, liegt die Ursache woanders (Forwarding, Masquerade, AllowedIPs). Du kannst MTU = 1420 trotzdem explizit setzen.

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. Füge die MTU-Zeile unter [Interface] in /etc/wireguard/wg0.conf ein und starte den Tunnel neu
sudo wg-quick down wg0 && sudo wg-quick up wg0

# 2. Oder ändere sie live ohne Neustart (geht beim nächsten wg-quick down verloren)
sudo ip link set dev wg0 mtu 1420
ip link show wg0 | grep -o 'mtu [0-9]*'
test-mtu.sh
# Ping-Leiter zur ÖFFENTLICHEN IP des Servers, außerhalb des Tunnels: von oben beginnen, die erste Größe mit Antwort ist deine Nutzlast
# Eine fehlschlagende Größe zeigt 'message too long', 'needs to be fragmented' oder keine Antwort
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

# Prüfung durch den Tunnel, zur Tunnel-IP des Servers: muss mit der neuen MTU antworten
ping -M do -s 1392 -c 3 10.66.66.1
# Nutzlast = MTU minus 28; schlägt das fehl, senke die MTU weiter

Die Hälfte der MTU-Probleme ist der Pfad, nicht die Konfiguration

Doppeltes NAT, der Heimrouter und ein Tunnel über einem Tunnel knabbern alle Bytes von deinem Pfad ab. Ein VPS mit sauberer öffentlicher IPv4 ist ein einziger Hop auf einem 1500-Byte-Anschluss, auf dem die Standard-MTU 1420 einfach funktioniert. Der Einstiegs-VPS von Contabo enthält eine öffentliche IPv4-Adresse und vollen Root-Zugriff.

Affiliate-Link: Wir erhalten eventuell eine Provision, ohne Mehrkosten für dich. Der Rechner bleibt kostenlos und hängt nicht davon ab.

Contabo-VPS ansehen

Woher die Zahlen kommen

WireGuard verpackt jedes deiner Pakete in ein UDP-Datagramm. Die Verpackung hat eine feste Größe, also ist die Tunnel-MTU einfach die Pfad-MTU minus diese Verpackung. Genau das macht wg-quick, wenn keine MTU gesetzt ist: Es nimmt die MTU der Route zum Endpoint und zieht 80 ab, daher die bekannten 1420 auf einem 1500-Byte-Anschluss.

HeaderBytes
Äußerer IPv4-Header20
Äußerer IPv6-Header40
UDP-Header8
WireGuard-Datenheader (Typ, Index, Zähler)16
Poly1305-Authentifizierungstag16
Summe über IPv4 / über IPv660 / 80
Ping: IPv4- + ICMP-Header um die Nutzlast28

Eine Ping-Nutzlast von 1472 Bytes reist also in einem 1500-Byte-Paket. Kommt 1472 mit gesetztem Don't-Fragment-Flag durch, ist deine Pfad-MTU 1500 und die Standard-MTU 1420 passt. Kommt nur 1400 durch, ist die Pfad-MTU 1428 und WireGuard darf über IPv6 höchstens 1348 senden. Der Rechner zieht 80 ab, außer du gibst an, dass die äußere Verbindung nur IPv4 nutzt: dann reichen 60.

Typische Werte, wenn du nicht messen kannst

Ein gemessener Wert schlägt immer eine Tabelle. Diese Richtwerte sind für Fälle, in denen der Ping nicht möglich ist, etwa auf einem Smartphone oder in einem fremden Netz.

AnschlusstypPfad-MTUWireGuard-MTU
Ethernet, Glasfaser, Kabel15001420 (Standard)
DSL mit PPPoE14921412
Mobilfunk, 5G, CGNATvariabel1280 (Rückfall)
Tunnel in einem anderen VPNzweimal reduziert1280 (Rückfall)
Garantiertes IPv6-Minimum12801280

Häufige Fragen

Was ist die Standard-MTU von WireGuard und warum 1420?
Fehlt in der Konfiguration die MTU-Zeile, setzt wg-quick die Schnittstellen-MTU auf die MTU der Route zum Endpoint minus 80 Bytes. Auf einem üblichen 1500-Byte-Anschluss ergibt das 1420. Die 80 Bytes sind der schlechteste Fall: 40 Bytes IPv6-Header, 8 UDP und 32 WireGuard-Rahmen. Über IPv4 beträgt der echte Overhead 60 Bytes, 1440 würde also auch passen, aber 1420 ist in beiden Fällen sicher.
Wie messe ich die richtige MTU?
Sende einen Ping an die öffentliche IP des Servers mit Don't-Fragment-Flag und großer Nutzlast, und verkleinere die Nutzlast, bis Antworten kommen: ping -M do -s 1472 unter Linux, ping -f -l 1472 unter Windows, ping -D -s 1472 unter macOS. Nimm die größte Nutzlast, die durchkommt, addiere 28 Bytes IP- und ICMP-Header für die Pfad-MTU und ziehe 80 für WireGuard ab. Der Rechner erledigt die Arithmetik und schreibt die Befehle für dein System.
WireGuard verbindet, aber keine Seite lädt: liegt es an der MTU?
Sehr wahrscheinlich, wenn kleiner Verkehr funktioniert und großer nicht. Handshake, DNS-Abfrage und Ping sind klein und gelingen. Eine komplette Webseite ist ein Paket in voller Größe; überschreitet es die Pfad-MTU und wird die ICMP-Meldung „Fragmentierung nötig“ irgendwo gefiltert, geht es lautlos verloren. Die WireGuard-MTU unter die echte Pfad-MTU zu senken behebt das. Fließt gar nichts, prüfe zuerst IP-Forwarding, die Masquerade-Regel und AllowedIPs.
Warum ist 1280 der sichere Rückfallwert?
RFC 8200 verlangt, dass jeder IPv6-Link Pakete von 1280 Bytes transportiert, und praktisch jeder IPv4-Pfad tut das ebenfalls. Eine WireGuard-MTU von 1280 funktioniert daher bei PPPoE, Mobilfunk, CGNAT und Tunnel-im-Tunnel ohne Messung, gegen ein paar Prozent Effizienz auf einem sauberen 1500er-Anschluss. Transportiert der Tunnel selbst IPv6, darf die Schnittstellen-MTU nicht unter 1280 fallen.
Client oder Server: wo setze ich die MTU?
Auf der Seite, deren Anschluss begrenzt ist, also fast immer beim Client (DSL zu Hause, Mobilfunk, Büro). Die MTU einer Schnittstelle begrenzt nur, was diese Schnittstelle sendet: Sie beim Client zu senken repariert Uploads und Anfragen, und die Antworten des Servers richten sich nach der daraus folgenden TCP-MSS. Hängt der Server selbst an einem Uplink unter 1500, setze sie auch dort.
Funktioniert die MTU=-Zeile unter Windows, macOS, Android und iOS?
Ja. Die offiziellen WireGuard-Apps lesen den Schlüssel MTU= im Abschnitt [Interface] und wenden ihn beim Aktivieren des Tunnels an. Unter Linux wendet wg-quick ihn an, und du kannst ihn auch live mit ip link set dev wg0 mtu ändern, was einen Neustart des Tunnels nicht überlebt.