Как узнать значение MTU
Windows
Нажмите комбинащию клавишь Win + R
В появившемся окне введите cmd и нажмите OK
В открывшемся черном окне введите команду:
netsh interface ipv4 show subinterfaces
В первой колонке ответа мы увидим значение MTU:
* в данном примере, значение MTU равно 1500 для сетевого адаптера Ethernet.
Linux
ip address
В более современных системах используется утилита для работы с сетевыми интерфейсами — ip address. Вводим команду:
В полученном результате находим нужный сетевой интерфейс и строчку на подобие:
eth0:
mtu 1500 qdisc pfifo_fast state UP qlen 1000
* то, что мы ищем — mtu 1500.
ifconfig
В более ранних системах или с установленным ifconfig вводим:
* где eth0 — сетевой адаптер, для которого хотим узнать MTU.
В полученном результате находим что-то на вроде:
eth0: flags=4163 mtu 1500
* где mtu 1500 — наше значение.
FreeBSD
В данной системе работаем с уже описанным выше ifconfig:
em0: flags=8843 metric 0 mtu 1500
Провайдера
Чтобы определить оптимальное значение MTU для нашего сетевого адаптера, подключенного к сети Интернет, необходимо узнать значение, используемое на оборудовании поставщика.
Для этого выполняем ping с запретом фрагментации сетевых пакетов (-f) и выставлением определенного размера пакета (-l):
ping dmosk.ru -f -l 1472
* 1472 будет соответствовать MTU — 1500, так как к пакету мы должны еще прибавить 28 (заголовок).
Наша задача — подобрать значение пакета, при котором будет идти пинг:
Ответ от 90.156.242.197: число байт=1472 время=13мс TTL=56
Ответ от 90.156.242.197: число байт=1472 время=12мс TTL=56
Требуется фрагментация пакета, но установлен запрещающий флаг.
Требуется фрагментация пакета, но установлен запрещающий флаг.
Значит значение -l нужно уменьшить, пока сигнал не начнет проходить.
Находим значение, которое стоит на границе с ошибкой и прибавляем к нему заголовок пакета — 28. Так мы получаем наше оптимальное MTU.
На данный момент большинство Интернет провайдеров предоставляет услуги связи с фрагментом в 1500. Старые подключения от Ростелеком или подключения на основе PPPoE могут работать на меньших значениях.
Смена MTU
Рассмотрим процесс смены значения MTU для операционных систем семейства Windows и Linux, а также роутерах.
Windows
Командная строка
Открываем командную строку от имени администратора.
Вводим команду для просмотра текущего значения MTU и названия сетевого интерфейса:
netsh interface ipv4 show subinterfaces
Получаем, примерно, следующее:
MTU Состояние определения носителя Вх. байт Исх. байт Интерфейс
—— ————— ——— ——— ————-
1500 1 81324794839 5376993884 Ethernet
* где 1500 — значение MTU (по умолчанию для сетей Etnernet); Ethernet — название интерфейса.
Меняем MTU следующей командой:
netsh interface ipv4 set subinterface «Ethernet» mtu=1492 store=persistent
* где Ethernet — название сетевого интерфейса, которое мы получили предыдущей командой; 1492 — новое значение MTU
Реестр
Открываем реестр (команда regedit) и переходим по ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\<4D36E972-E325-11CE-BFC1-08002bE10318.
Внутри будут находиться другие ветки с названиями 0000, 0001, 0002 и так далее. Необходимо пройтись по каждой и найти ключ DriverDesc со значением, похожим на название нашего сетевого адаптера и записать значение ключа NetCfgInstanceId, например:
Переходим в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces. Находим ветку с нашим идентификатором, который мы записали и меняем ключ MTU (при его отсутствии, создаем — тип DWORD):
Чтобы настройки применились выключаем и снова включаем сетевой интерфейс или перезагружаем компьютер.
Linux
Для примера, рассмотрим наиболее популярные дистрибутивы — CentOS и Ubuntu.
Разово
Разово (до перезагрузки) для данных двух систем настройку можно выполнить одной командой:
ip link set mtu 1400 dev eth0
* где 1400 — новое значение MTU; eth0 — сетевой интерфейс, для которого поменяли максимальный размер пакетов.
или в старых системах:
ifconfig eth0 mtu 1400
Постоянно (permanently)
Для систем на базе Debian (Ubuntu) и Red Hat (CentOS) процедура немного отличается.
Ubuntu
Открываем настройку сетевых интерфейсов:
К нужному адаптеру добавляем строчку:
iface eth0 inet static
.
mtu 9000
systemctl restart networking
CentOS
Открываем конфигурационный файл для соответствующего сетевого интерфейса:
Перезапускаем сетевую службу:
systemctl restart network
Роутер
Смена MTU на роутерах различных производителей выполняется, примерно, по одному и тому же принципу — зайти на веб-интерфейс для настройки маршрутизатора, найти раздел с настройкой сети Интернет, задать значение MTU.
Например, для большинства устройств TP-Link: Network — WAN:
Читайте также
Инструкция по смене значения MTU на Windows и Linux
Как в Windows MTU поменять?
Очень редко, но такие моменты наступают, когда необходимо изменить стандартное значение размера пакета.
Если у Вас FTP -клиент не догружает файлы или сайты в интернете открываются не всегда одинаково быстро, то, возможно, настала пора обратить внимание на установленные значения MTU .
Немного теории
Что такое MTU ? Вот как рассказывает нам Wikipedia. Многие задают вопрос не что это такое, а сколько ставить? Однозначного ответа быть не может, так как факторов от которых зависит это значение, очень много: начиная от серверов, где происходит размещение сайтов, провайдеровского сетевого оборудования, стоящего между сайтами и вашим компьютером и от качества линии, соединяющей Вас с глобальной сетью.
Вообще в правильному ваше значение MTU должно быть точно таким же, как и на стороне вашего роутер, маршрутизатора провайдера или куда вы там подключаетесь. Но это не гарантирует Вам хорошую работу. На моем домашнем роутере, к примеру, а также на всех компьютерах домашней сети, установлено значение 1490. Это число я получил экспериментальным методом (если бы я тогда встретил утилиту TCP Optimizer, умеющую определять подходящий MTU , было бы в разы проще). У меня плохо отправлялись файлы на удаленный FTP -сервер, а при этом значении всё отлично работает. Хотя стоит заметить, что значение у провайдера стоит стандартное – 1500.
В Windows MTU можно поменять двумя способами: простым и сложным. Простой способ заключается в установке стороннего программного обеспечения, а сложный – в изменении MTU «родными» средствами.
Начнем с сложного, ибо он самый правильный.
Ручной метод изменения MTU в Windows
Все делается с помощью консоли. Вообще все хорошие и удобные вещи делаются только через консоль. Это стоит запомнить. 😉
- Чтобы было проще работать с сетевыми соединениями, их нужно переименовать во что-то короткое. Вместо «Локальное подключение к сети» в LAN , а «Беспроводное подключение к сети» в WAN .
- Запускаем системную консоль Windows с правами администратора:
- Для того, чтобы посмотреть текущие значения MTU , вводим команду:
вывод будет примерно такой:
В моем случае у меня только один интерфейс и это LAN со стандартным значением MTU 1500.
Теперь вводим команду для того, чтобы изменить MTU для интерфейса LAN :
Этой командой я указал новое значение 1490 для MTU .
Меняем MTU в Windows с помощью TCP Optimizer
Для некоторых проще что-то делать используя графический интерфейс и в этом может помочь утилита TCP Optimizer. Вот, вроде как, ее официальный сайт. У нее достаточно много настроек и самое главное ее достоинство – она умеет определять максимальный пакет, с которым работает ваш компьютер.
Вот пару скринов: