WireGuard MTU Calculator

July 27, 2026

WireGuard MTU Calculator

Calculate a practical WireGuard tunnel MTU from underlay MTU, IPv4 or IPv6 outer encapsulation, UDP and WireGuard bytes, VLAN tags, PPPoE, nested tunnels, and MSS clamp settings.

▣WireGuard path presets
⚙Tunnel and underlay inputs
The route or interface MTU before WireGuard encapsulation.
This is the public transport header outside the WireGuard packet.
UDP is normally 8 bytes, but the field is editable for lab modeling.
WireGuard data packets commonly add 32 bytes beyond IP and UDP.
Each 802.1Q tag adds 4 bytes at layer 2 and can matter without baby jumbo support.
PPPoE typically reduces a 1500-byte Ethernet path to 1492 bytes.
Add GRE, IPsec, VXLAN, another VPN layer, or carrier tunnel overhead here.
Reserve space for route variation, mobile links, ICMP filtering, and provider quirks.
When enabled, the calculator reports a TCP MSS clamp value from the tunnel MTU.
Recommended WG MTU
1420
bytes for the WireGuard interface
TCP MSS
1380
IPv4 TCP clamp
Overhead bytes
80
total bytes removed from path
Payload efficiency
94.7%
tunnel MTU divided by underlay MTU

Calculation breakdown

Standard Ethernet IPv4 result
▣WireGuard overhead spec grid
60 B
IPv4 WG outer
20 IP + 8 UDP + 32 WG
80 B
IPv6 WG outer
40 IP + 8 UDP + 32 WG
8 B
PPPoE loss
Common Ethernet WAN reduction
4 B
Per VLAN tag
802.1Q tag size at layer 2
▣Recommended MTU reference table
Scenario Path math Typical WG MTU TCP MSS note
Plain Ethernet with IPv4 outer 1500 - 20 - 8 - 32 - 20 safety 1420 bytes Clamp near 1380 for IPv4 inside TCP
Plain Ethernet with IPv6 outer 1500 - 40 - 8 - 32 - 40 safety 1380 bytes Clamp near 1340 for IPv4 inside TCP
PPPoE access circuit 1492 effective MTU minus IPv4 WG overhead 1412 bytes Avoid 1420 if the WAN interface stays at 1492
Mobile hotspot or LTE carrier path Lower underlay plus larger safety margin 1280 to 1360 bytes Clamp is useful when ICMP too-big messages fail
Nested VPN or GRE underlay Subtract the other tunnel before WireGuard 1320 to 1380 bytes Use the smaller MSS from the deepest tunnel
▣Encapsulation and link overhead table
Component Bytes Where it applies Calculator field
IPv4 outer header 20 WireGuard transported over public IPv4 Outer IP version
IPv6 outer header 40 WireGuard transported over public IPv6 Outer IP version
UDP header 8 WireGuard always rides over UDP UDP overhead
WireGuard data header and tag 32 Encrypted transport data packet overhead WireGuard overhead
PPPoE session overhead 8 Fiber or DSL WAN links using PPPoE PPPoE enabled
802.1Q VLAN tag 4 each Tagged trunks, QinQ, provider handoffs VLAN tag count
GRE over IPv4 24 typical Site-to-site underlay tunnel before WG Nested tunnel overhead
VXLAN over IPv4 50 typical Overlay networks carrying WireGuard Nested tunnel overhead
▣MSS clamp and troubleshooting table
Observation Likely issue MTU action MSS action
Small pings work, large pages stall Path MTU discovery blocked Lower WG MTU by 20 to 40 bytes Enable clamp to calculated MSS
IPv4 endpoint works, IPv6 endpoint stalls Extra 20 bytes of IPv6 outer header Use the IPv6 WAN preset as a baseline Recalculate after changing endpoint family
PPPoE WAN drops large packets 1492-byte WAN budget Turn PPPoE on or set underlay to 1492 Clamp below the resulting tunnel MTU
Tagged trunk works only on some switches Frame size exceeds baby jumbo support Count all customer and provider VLAN tags MSS cannot fix non-TCP packet loss
Nested VPN is inconsistent Multiple encapsulation layers stack up Add GRE, IPsec, or other VPN overhead Clamp at the innermost TCP edge
▣Practical MTU tips
Start from the real path MTU. If you can test from the WireGuard endpoint, validate the largest no-fragment payload first. The calculator is strongest when the underlay MTU reflects the route, not just the NIC default.
Keep IPv6 and PPPoE honest. IPv6 outer transport adds 20 bytes over IPv4, and PPPoE removes 8 bytes from a normal Ethernet WAN. Those two changes explain many 1420-versus-1380 differences.
Use MSS clamping for TCP symptoms. MSS clamping helps web, SSH, Git, and other TCP sessions avoid fragmentation. It will not fix UDP applications that exceed the real tunnel payload size.
Leave a margin for messy routes. Mobile carriers, CGNAT, cloud overlays, and site-to-site paths can change encapsulation under you. A 20 to 60 byte margin is often more useful than chasing a perfect maximum.

The result is a practical interface setting for WireGuard peers. Always verify with real traffic when you control only part of the path.

On paper, everything look fine: You spin up a WireGuard tunnel and everything checks out correctly. Your routing table is clean. Keys have been exchanged. Connectivity appears to be good. Then you attempt to send a file or browse a webpage (and the connection hangs). Your tunnel isn’t broken; it’s just that packets is too big for their journey down the wire.

Understanding how Maximum Transmission Unit (MTU) size matter helps ensure that your network work properly and doesn’t drop packet. Also note that WireGuard run over UDP. That means it doesn’t try to negotiate packet size with remote endpoint. It just sends packets, and if those encrypted packets is too big for some link on the way, they will get dropped. Most firewalls don’t pass back ICMP messages telling your computer to reduce its request sizes. What you get is a silent drop. It feels like a timeout but it is actualy a geometry issue.

Why Your WireGuard Connection Is Slow or Broken

After entering the specifics of your path, the calculator do the work for you. You no longer has to count every single header byte in your head. Choosing between IPv4 or IPv6 isn’t the only key input here. You’re also going to be concerned with what’s happening between you and your server. Is it PPPoE on top of fiber? That will reduce your available space by eight bytes different than plain old Ethernet. That might not sound like much, but it kicks your standard 1500 byte packet into fragmentation land. When you flip the PPPoE switch, it takes that into account automaticly.

The complication come with IPv6 since its headers require more space then IPv4’s. The smallest possible IPv6 header take up forty bytes; an IPv4 header only take up twenty. Add in overhead of wrapping it all in UDP and then in WireGuard encryption and now you’re looking at pushing well past sixty bytes before you’ve even gotten around to sending your data itself. Attempting to send the maximum 1500 byte payload down this tunnel will result in a outer packet that is too large for many networks to handle.

Reducing the tunnel MTU reduce the size of overall packet and preserves connection. This does not significantly impact speed, as shown in the reference table on the page. Nested tunnels and VLAN tags aren’t something most home users consider but they exist. When you run WireGuard within another VPN or your provider does QinQ tagging, each layer eat into your available bandwidth, one VLAN tag is just four bytes, but add two of them plus a GRE tunnel overhead and suddenly your safety margin dissapears. You could of stack the costs using calculator to see how much this cumulative cost will break your connection.

There is a safety margin. This also means you need to think about a safety margin. You might be able to compute the maximum number of bytes that can be sent on each hop for your route exactly. But, carriers will route different during the day vs. Networks change at night. Mobile hotspots also compress header sizes different per session. To add 20-40 bytes as a safety margin isn’t because you’re conservative. It’s because you accept reality instead of perfection. The slightly smaller packet always gets there; the perfectly sized packet hardly ever does.

The last part: For both SSH and web traffic, you want to enable TCP Maximum Segment Size clamping (which limits how big TCP segments is going into the tunnel). This isn’t a fix for a problem, rather a workaround for the lack of proper Path MTU Discovery, but it’s important all the same. Your calculation of tunnel size informs the tool what the clamp value should be, which in turn give you a hard number you can plug into your nftables or iptables config.

WireGuard tuning isn’t about getting every last byte squeezed onto the wire; it’s about making sure the data you send gets there. You don’t need to worry about reliability if you’re aiming for theoretical maximums, but you can increase reliability by using a slightly smaller MTU. Stop chasing theoretical maximums. Start respecting what the physical path will let you do and then the connection just works without the silence.

WireGuard MTU Calculator

Related posts

Leave a Comment