Solução de problemas · 1 min de leitura

MTU, Fragmentação e Por Que Seu WireGuard Está Lento

Se o seu túnel WireGuard conecta, mas é lento, trava em grandes transferências ou fica parado em certos sites, o culpado usual é o MTU. Este guia explica o que é MTU e fragmentação, por que túneis quebram tamanhos de pacotes e a configuração exata a ser alterada.

O que é MTU e por que túneis o quebram

MTU (Unidade Máxima de Transmissão) é o maior pacote, em bytes, que um link de rede pode transportar em uma única peça. O MTU padrão do Ethernet é 1500. Quando um pacote é grande demais para um link, ele deve ser fragmentado em partes menores ou descartado.

Um túnel WireGuard envolve cada um dos seus pacotes dentro de um pacote UDP criptografado, e esse invólucro adiciona sobrecarga — aproximadamente 60 bytes para IPv4 e 80 para IPv6. Assim, um pacote de 1500 bytes do seu aplicativo se torna maior que 1500 uma vez que o WireGuard o encapsula, e o link subjacente não pode transportá-lo inteiro. É por isso que o WireGuard define o MTU de sua interface como 1420: ele deixa espaço para a sobrecarga da criptografia para que o pacote encapsulado ainda caiba em um caminho de 1500 bytes.

Por que o MTU errado te deixa lento

Normalmente, quando um pacote é grande demais para ser encaminhado sem fragmentação, um roteador envia de volta uma mensagem ICMP "Fragmentação Necessária" e o remetente reduz o tamanho do seu pacote — isso é a Descoberta de MTU de Caminho (PMTUD). O problema é que muitas redes e firewalls silenciosamente descartam essas mensagens ICMP. Quando isso acontece, você tem um buraco negro de PMTU: pacotes pequenos (como o início de uma página) passam, mas pacotes grandes são descartados silenciosamente sem erro. O sintoma é inconfundível — as conexões começam, depois travam; SSH faz login, mas congela na saída; alguns sites carregam e outros travam; downloads grandes ficam em 0%.

Se o seu caminho tem um MTU menor do que o esperado — comum em DSL/PPPoE (que adiciona 8 bytes), algumas redes móveis e links duplamente encapsulados — até mesmo o 1420 do WireGuard pode ser alto demais, e você atinge o buraco negro. A solução é reduzir o MTU do túnel para que os pacotes encapsulados se ajustem ao caminho real.

Encontre e defina o MTU correto

Prove o maior pacote que atravessa seu caminho sem fragmentação, depois defina o MTU da interface WireGuard abaixo dele. Os valores são exemplos; teste os seus.

bash
# 1) Probe path MTU with don't-fragment pings (Linux/macOS).
#    Lower the size until it succeeds; that size + 28 = path MTU.
ping -M do -s 1472 8.8.8.8    # 1472 + 28 (ICMP/IP headers) = 1500
ping -M do -s 1392 8.8.8.8    # if 1472 fails, try smaller (=> 1420)
ping -M do -s 1252 8.8.8.8    # a safe fallback (=> 1280)

# 2) Set the tunnel MTU in your WireGuard config, under [Interface]:
#    [Interface]
#    MTU = 1280        # widely-compatible fallback; try 1412/1420 first

# 3) Apply and test a large transfer:
wg-quick down wg0 && wg-quick up wg0
curl -o /dev/null https://speed.example/largefile

# Rule of thumb: if small requests work but big ones hang, LOWER the MTU.
# 1420 -> 1412 -> 1280 are common steps. 1280 is the IPv6 minimum and
# almost always passes, at a small efficiency cost.
Share this page
FAQ

Perguntas, respondidas

Qual MTU devo usar para WireGuard?

Comece com o padrão do WireGuard de 1420. Se transferências grandes travarem enquanto pequenas requisições funcionam, diminua — passos comuns são 1412, depois 1280. 1280 é o MTU mínimo IPv6 e quase sempre funciona, com um leve custo de eficiência. Programe seu caminho com pings sem fragmentação para encontrar o maior valor que passe.

Por que o WireGuard conecta, mas depois para em arquivos grandes?

Quase sempre um buraco negro PMTU. Seus pacotes são grandes demais para o caminho, e as mensagens ICMP que sinalizariam isso estão sendo descartadas, então pacotes grandes desaparecem silenciosamente enquanto os pequenos têm sucesso. Reduzir o MTU do túnel faz os pacotes caberem e resolve a paralisação.

Por que o MTU padrão do WireGuard é 1420 e não 1500?

Porque o WireGuard encapsula cada pacote em UDP criptografado, adicionando cerca de 60 bytes (IPv4) de sobrecarga. Definir o MTU da interface para 1420 deixa espaço para essa sobrecarga, de modo que o pacote encapsulado ainda se encaixe em um caminho padrão de 1500 bytes sem fragmentação.

Um túnel ajustado para funcionar

s4m executa WireGuard e OpenVPN com configurações sensatas e um design sem registros, priorizando a RAM. Se uma rede precisar de um MTU menor, ajuste uma linha e você estará pronto. Contas anônimas, criptomoedas aceitas.

As pessoas encontraram esta página pesquisando por

Frases de busca reais que esta página responde — os links abrem a página que as cobre em profundidade.