Пинг идет, а сайты не открываются: решение проблемы MTU и фрагментации пакетов
Странное поведение интернета или VPN
Вы сталкиваетесь с классической сетевой аномалией:
- Команда
ping 8.8.8.8иping google.comв консоли идет идеально со временем отклика 10-20 мс без единой потери пакетов. - Мессенджеры (Telegram, WhatsApp) отправляют короткие текстовые сообщения.
- Но при этом браузер бесконечно крутит колесо загрузки сайтов, тяжелые интернет-страницы не открываются, а авторизация в банковских клиентах или CRM зависает.
| Тип пакета | Размер | Результат прохождения через канал |
|---|---|---|
| Пинг (ICMP Echo Request) | Маленький (32-64 байта) | Проходит мгновенно и без задержек |
| Веб-страница (HTTPS/TLS Handshake) | Большой (до 1500 байт) | Пакет превышает лимит MTU, отбрасывается промежуточным провайдером из-за запрета фрагментации (DF=1) и теряется в «черной дыре» (Path MTU Black Hole). |
Шаг 1. Вычисляем точный максимальный MTU через консоль Windows
Используйте утилиту ping с флагом запрета фрагментации -f (Don't Fragment) и указанием размера буфера -l:
# Начнем тест со стандартного размера 1472 байта:
ping 8.8.8.8 -f -l 1472- Если в ответ пришло: «Требуется фрагментация пакета, но установлен запрещающий флаг» (Packet needs to be fragmented but DF set) — уменьшайте число на 10-20 единиц (например, пробуйте 1460, 1440, 1420, 1400).
- Как только пинг успешно прошел без ошибок фрагментации (например, на числе 1432):
Расчет итогового MTU:
К полученному числу прибавьте 28 байт (20 байт заголовок IP + 8 байт заголовок ICMP).
Пример: 1432 + 28 = 1460 (Это и есть реальный рабочий MTU вашего провайдера или VPN!).Шаг 2. Исправление на роутере MikroTik (MSS Clamping)
Вместо того чтобы вручную менять MTU на каждом клиентском компьютере, настройте автоматическое усечение размера пакетов (Change MSS) на самом роутере:
# Добавляем правило автоматического выравнивания MSS для PPPoE и VPN туннелей:
/ip firewall mangle add chain=forward protocol=tcp tcp-flags=syn action=change-mss new-mss=clamp-to-pmtu passthrough=yes comment="Fix MTU/MSS issue"Шаг 3. Изменение MTU на сетевой карте в Windows (Если нет доступа к роутеру)
# 1. Смотрим точные имена сетевых интерфейсов в CMD от администратора:
netsh interface ipv4 show subinterfaces
# 2. Устанавливаем найденный безопасный MTU (например, 1420) для 'Ethernet' или 'Беспроводная сеть':
netsh interface ipv4 set subinterface "Ethernet" mtu=1420 store=persistent Частые вопросы (FAQ)
Что такое MTU простыми словами?
MTU (Maximum Transmission Unit) — это максимальный размер одного полезного блока данных (в байтах), который может быть передан по сети без разделения на куски. Стандартный размер в сетях Ethernet равен 1500 байт.
Почему в туннелях VPN (WireGuard, IPsec, PPPoE) MTU всегда меньше 1500?
Каждый VPN-протокол добавляет свои собственные заголовки шифрования поверх оригинального пакета. Например, WireGuard отнимает от 60 до 80 байт, поэтому рабочий MTU туннеля составляет от 1420 до 1440 байт.
Почему сайты с HTTP открываются, а с HTTPS зависают при проблемах с MTU?
Сертификат безопасности HTTPS и обмен ключами TLS передаются одним большим сетевым пакетом, размер которого вплотную приближается к 1500 байт. Маленькие запросы пролетают, а тяжелый обмен сертификатами застревает.
Поможет ли простое уменьшение MTU до минимума (например, 1200)?
Сайты начнут открываться, но общая скорость интернета снизится, так как файлы будут дробиться на огромное количество мелких пакетов, создавая лишнюю нагрузку. Всегда выставляйте оптимальное расчетное значение.