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

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

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

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

WireGuard Error: Maximum transmission unit (MTU) too large for outer link — Решение

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

Исходящие зашифрованные пакеты WireGuard превышают физический MTU внешнего сетевого адаптера, вызывая принудительную фрагментацию IP-уровня, которая блокируется сетевым оборудованием провайдера.

  • Сообщения ядра: wireguard: wg0: Packet size X exceeds MTU Y of device eth0.
  • Критическая потеря пакетов при передаче файлов по SCP/SFTP или потокового видео через VPN.
  • Сетевой трафик падает до нуля при превышении размера полезной нагрузки более 1400 байт.
  • Утилита traceroute --mtu фиксирует отброс пакетов на первом маршрутизаторе оператора.

1. Анализ MTU физического интерфейса (Outer Link)

Определите реальный MTU основного сетевого адаптера, через который отправляется зашифрованный UDP-трафик:

ip link show eth0

Если физический интерфейс работает через PPPoE (MTU 1492), VLAN (MTU 1496) или туннелирование VXLAN (MTU 1450), стандартный MTU WireGuard (1420) будет слишком велик.

2. Формула безопасного расчета MTU туннеля

MTU_WireGuard = MTU_Физического_Интерфейса - 80 (для IPv6) или 60 (для IPv4)

Пример для канала PPPoE (1492): 1492 - 60 = 1432 (максимум) -> Безопасное: 1360-1380.
Пример для сетей LTE/4G/5G: 1500 - 120 = 1280-1340.

3. Установка безопасного MTU на всех узлах туннеля

Отредактируйте файл конфигурации /etc/wireguard/wg0.conf:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <PrivateKey>
# Задание безопасного размера MTU
MTU = 1360

4. Включение принудительного TCP MSS Clamping

Добавьте правило ограничения размера сегментов в таблицу mangle:

iptables -t mangle -I POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o eth0 -j TCPMSS --clamp-mss-to-pmtu

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

wg-quick down wg0 && wg-quick up wg0
💡 Практика специалистов: При настройке туннелей поверх сотовых сетей 3G/LTE/5G всегда устанавливайте MTU = 1280. Это избавит вас от периодических 'зависаний' сессий при переключении между вышками оператора.

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

Чем опасна фрагментация UDP-пакетов WireGuard?

Многие межсетевые экраны и NAT-роутеры провайдеров блокируют фрагментированные UDP-дейтаграммы (смещение фрагмента > 0), что приводит к полной потере 100% зашифрованного трафика.

Почему по умолчанию wg-quick выбирает MTU 1420?

Значение 1420 рассчитано исходя из стандартного Ethernet MTU 1500 за вычетом 60 байт оверхеда IPv4/UDP/WireGuard и 20 байт запаса. Но оно не учитывает вложенные протоколы (PPPoE, L2TP, GRE).

Как влияет слишком низкий MTU (например, 1280) на скорость передачи данных?

Снижение MTU незначительно увеличивает относительный процент заголовков к полезным данным (около 1-2% оверхеда по bandwidth), но полностью исключает проблемы с потерей пакетов и задержками.

Как динамически проверить MTU канала до удаленного сервера?

Используйте утилиту tracepath: tracepath -p 51820 vpn.example.com. Она покажет точный Path MTU на каждом узле маршрута.

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