Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

WG_MTU_FRAGMENTATION Сетевое оборудование и VPN

WireGuard Error: Interface MTU mismatch leading to packet fragmentation drop — Исправление

Обновлено: 24.08.2026 · Официальная документация ↗

VPN-туннель успешно устанавливает рукопожатие, утилита ping проходит без потерь, однако реальные сетевые приложения зависают при передаче больших объемов данных.

  • Веб-страницы HTTPS зависают на этапе TLS Handshake (обмен сертификатами).
  • Сессии SSH зависают при вводе длинных команд или выполнении cat large_file.txt.
  • В выводе ip -s link show wg0 растут счетчики errors или dropped.
  • Команда ping -s 1420 <VPN_IP> завершается с ошибкой Packet needs to be fragmented but DF set.

1. Расчет оптимального размера MTU для WireGuard

Заголовок WireGuard добавляет постоянный оверхед: **32 байта** (WireGuard) + **20 байт** (IPv4) или **40 байт** (IPv6) + **8 байт** (UDP). Итого суммарный оверхед составляет:

  • Для базового IPv4-канала: 1500 - 60 = 1420 байт;
  • Для базового IPv6-канала: 1500 - 80 = 1400 байт;
  • Для каналов PPPoE / мобильных сетей: 1420 - 8 = 1280-1360 байт.

2. Определение максимального MTU внешнего канала без фрагментации

Выполните пинг с запретом фрагментации (флаг DF):

# Linux
ping -M do -s 1472 -c 3 8.8.8.8

# Если пинг не проходит, уменьшайте размер пакета (-s 1460, 1420, 1380), пока пакет не пройдет без фрагментации.
# MTU внешнего канала = размер_пакета + 28 байт.

3. Установка корректного MTU в конфигурации WireGuard

Задайте безопасный размер MTU в секции [Interface] в /etc/wireguard/wg0.conf:

[Interface]
Address = 10.0.0.2/24
PrivateKey = <PrivateKey>
MTU = 1280

4. Включение TCP MSS Clamping на стороне сервера

Для автоматической подстройки размера TCP-пакетов под MTU туннеля добавьте правила в межсетевой экран:

# Добавление в iptables на сервере
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Для постоянной работы через PostUp в wg0.conf:
PostUp = iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
PostDown = iptables -t mangle -D FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

5. Применение настроек

wg-quick down wg0 && wg-quick up wg0
💡 Практика специалистов: Если сервер работает внутри облачных сред (AWS, GCP, OpenStack, Hetzner Cloud), MTU физического интерфейса хоста часто уже уменьшен до 1450 из-за VXLAN/Geneve инкапсуляции провайдера. В этом случае MTU WireGuard должен быть не выше 1370.

Частые вопросы (FAQ)

Почему ping работает, а сайты в браузере не открываются?

Пакеты ICMP ping имеют маленький размер (обычно 64-84 байта) и легко проходят через туннель. Большие пакеты TLS Handshake или веб-данных превышают фактический MTU и молча отбрасываются из-за Path MTU Discovery Blackhole.

Какое универсальное значение MTU подходит для любых типов сетей (включая LTE/5G)?

Значение MTU = 1280 является минимальным стандартом для протокола IPv6 и гарантированно работает без фрагментации в подавляющем большинстве мобильных и спутниковых сетей.

Нужно ли настраивать MTU одинаковым на сервере и клиенте?

MTU интерфейса определяет размер исходящих пакетов локального узла. На клиенте рекомендуется выставлять MTU, равный или меньший MTU сервера (обычно 1280-1420).

Как влияет TCPMSS --clamp-mss-to-pmtu на производительность?

Это правило модифицирует заголовок SYN-пакетов TCP во время трехстороннего рукопожатия, заставляя клиентов слать сегменты подходящего размера. Накладные расходы на CPU минимальны.

Полезные материалы
Рекомендуем