Linux как поменять mtu

Обновлено: 06.07.2024

В компьютерных сетях термин MTU (Maximum transmission unit, максимальная единица передачи) означает максимальный размер одного пакета, который может быть передан протоколом без фрагментации. Пакеты большего размера (чем размер MTU), будут разбиваться на более мелкие и передаваться за несколько раз - этот процесс называется фрагментация. При большом количестве фрагментированных пакетов может снижаться скорость передачи данных по сети, а в некоторых системах, может запрещаться передача фрагментированных пакетов, в результате чего сетевая связность между системами может нарушиться. Особенно часто такое поведение может наблюдаться при дополнительном шифровании трафика, например, при построении крипто-туннелей.
Любое устройство которое взаимодействует по сети имеет по умолчанию установленное производителем значение MTU. При этом, для каждой сетевой топологии может быть установлено свое значение размера MTU.
В таблице ниже приведены размеры MTU по умолчанию для различных сетевых сред:

Как изменить MTU в Linux?

Чтобы определить текущие значения MTU, которое установлено на сетевом интерфейсе Linux, необходимо выполить команду:
Результат выполнения команды показан на рисунке ниже. Там же можно увидеть, что для интерфейса eth0 установлено MTU 1500.
Для того, чтобы изменить MTU для текущего состояния интерфейса, необходимо выполнить команду (для сетевого интерфейса с именем eth0) После выполнения данной команды (возможно потребуется запуск из под su), значение MTU для интерфейса изменится (см скриншот ниже).
Чтобы новое значение MTU применялось при старте системы, и не требовалось устанавливать его вручную при каждом запуске, необходимо внести изменения в файл конфигурации сетевого интерфейса.
Для этого:
в CentOS:
в конфигурационном файле /etc/sysconfig/network-scripts/ifcfg-eth0: необходимо дописать строку:
и перезапустить сетевую службу, выполнив команду:
в Ubuntu:
в конфигурационном файле размещенном в папке /etc/netplan/ необходимо дописать строку:
Например, так как показано на скриншоте:
И перезапустить netplan, выполнив команду:

После выполненных команд, установленное значение MTU на интерфейсах будет установлено по умолчанию.

The default MTU size in most of the Ethernet networks is 1500 bytes. However, you can change it as per the requirements. In this tutorial, we will explain how to change MTU size in Linux.

Prerequisites

  • Ubuntu 20.04 system
  • User with sudo privileges

Note: The commands discussed in this article have been tested on Ubuntu 20.04 LTS (Focal Fossa). The same commands are also valid for Debian distribution.

View Current MTU Size

In order to view the current MTU size of your ethernet interface, use the ifconfig command as follows:

The output below shows the current MTU size of interface ens33 is 1500.



We can use the ifconfig command to change the MTU size of a system’s network interface. However, remember that this change does survive a reboot and returns to the default value i.e. 1500.

To change the MTU size of an interface, use the following syntax:

For instance, to change the MTU size of an interface named ens33 to 1000 bytes, the command would be:

After running the above command, the MTU size changes instantaneously. This change even does not require a service restart.

You can verify the new MTU size by running the following command in Terminal:


From the above output, you can verify that MTU size has now changed to 1000 bytes. However, as mentioned before, this change will not survive a reboot. The MTU size will return to its default value of 1500 after a reboot.

Permanently changing the MTU Size

The ifconfig command instantaneously changes the MTU size but this change does not survive a system reboot. In the following section, we will see how to permanently change the MTU size.

In dynamic IP addressing, the MTU size is set by DHCP. So will need to configure the DHCP configuration file located at /etc/dhcp/dhclient.conf. For static IP address, we will make changes in the network interface configuration file located at /etc/network/interfaces.

Using /etc/dhcp/dhclient.conf file

If the DHCP server is running on your system and the network interfaces are configured to receive the IP addresses from it, then use /etc/dhcp/dhclient.conf file to change the MTU size.

Edit the nano /etc/dhcp/dhclient.conf using the following command:

default interface-mtu <mtu_size>;

supersede interface-mtu <mtu_size>;

For instance, to set the MTU size to 1400, we will add:

default interface-mtu 1400;

supersede interface-mtu 1400;

If you have multiple interfaces and you want to change the MTU size of just one interface, then enclose it in the braces as follows:

default interface-mtu < mtu_size > ;

supersede interface-mtu < mtu_size > ;


Once you have configured the file, save, and close it.

Now restart the networking service using the following command in Terminal:

Also, bring up the interface using the following command:

Make sure to replace the <interface_name> with the actual network interface on your system e.g ens33, eth0, eth1, etc.

In our case, it would be:

Now issue the following command in Terminal to verify if the MTU size has changed successfully.

From the output, you can see the MTU size has been changed to 1400.


Using /etc/network/interfaces file

If your network interface is configured to obtain a static IP address, then you can change the MTU size by configuring the /etc/network/interfaces file.

Edit the /etc/network/interfaces file using the following command in Terminal:

Append the below line in the file:

post-up / sbin / ifconfig < interface-name > mtu < mtu_size >

Make sure to replace <interface-name> with the actual interface name and <mtu_size> with the MTU size you want to set on the network interface.

For instance, to change the MTU size of an interface named ens33 to 1300 bytes, the command would be:


Once you have configured the file, save, and close it.

Now restart the networking services using the following command in Terminal:

Also, bring up the interface using the following command:

Make sure to replace the <interface_name> with the actual network interface on your system e.g. ens33, eth0, eth1, etc.

In our case, it would be:

Now issue the following command in Terminal to verify if the MTU size has changed successfully.


From the output, you can see that the MTU size has been changed to 1300. This change will be kept persistent and will not be affected even after a reboot.

That is all there is to it! By following the above procedures, you can change the MTU size of a network interface either temporarily or permanently in your Linux system. Hope this helps!

network-logo

В этой статье разберем настройку сети в Ubuntu 18.04|20.04|21.04. Настройку будем производить через утилиту netplan.

Не забываем о синтаксисе данного файла. . Табуляция не используется и количество пробелов должно быть одинаково для одноименных категорий .

Сперва давайте определим какие интерфейсы у нас присутствуют в системе:

  • необходимо установить утилиту net-tools

Вывод команды покажет все имеющиеся в системе сетевые интерфейсы. Вот пример вывода:

Настройки локальной сети. Динамический IP-адрес (DHCP)

Отредактируйте файл конфигурации netplan который находится в директории /etc/netplan/ . При открытии он должен выглядеть примерно так:

тут интерфейс enp0s3 настроен на автоматическое получение IP-адреса от DHCP сервера.

Настройки локальной сети. Статический IP-адрес.

Для локальной сети в которой используются статические ip-адреса подойдет следующая конфигурация:

Настройки беспроводной сети. Динамический IP-адрес.

Для корректной работы беспроводного интерфейса вам потребуется установить утилиту WPA supplicant, которая позволяет подключиться к точкам доступа с WPA и WPA2:

Добавьте новый файл конфигурации в каталог /etc/netplan/:

Отредактируйте файл конфигурации беспроводной сети с динамическим ip-адресом (DHCP):

Настройки беспроводной сети. Статический IP-адрес.

Для беспроводной сети в которой используются статические ip-адреса подойдет следующая конфигурация:

Применение конфигураций

Используйте netplan для генерации необходимой конфигурации:

Для подробного вывода информации при генерации, используйте опцию --debug:

Далее сохраняем изменения:

Пример конфигурации локальной сети с метриками

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.

Favorite

Добавить в избранное

Главное меню » Linux » Как изменить размер MTU в Linux

Как изменить размер MTU в Linux

Размер MTU по умолчанию в большинстве сетей Ethernet составляет 1500 байтов. Однако вы можете изменить его в соответствии с требованиями. В этой статье мы объясним, как изменить размер MTU в Linux.

Предпосылки

  • Система Ubuntu 20.04
  • Пользователь с привилегиями sudo
Команды, обсуждаемые в этой статье, были протестированы на Ubuntu 20.04 LTS (Focal Fossa). Те же команды действительны и для дистрибутива Debian.

Просмотреть текущий размер MTU

Чтобы просмотреть текущий размер MTU вашего интерфейса Ethernet, используйте команду ifconfig следующим образом:

Приведенные ниже выходные данные показывают, что текущий размер MTU интерфейса ens33 составляет 1500.

В качестве альтернативы вы также можете использовать команду ip с параметром a для просмотра текущего размера MTU:

Мы можем использовать команду ifconfig, чтобы изменить размер MTU сетевого интерфейса системы. Однако помните, что это изменение сохраняется после перезагрузки и возвращается к значению по умолчанию, то есть 1500.

Чтобы изменить размер MTU интерфейса, используйте следующий синтаксис:

Например, чтобы изменить размер MTU интерфейса с именем ens33 на 1000 байт, команда будет выглядеть так:

После выполнения указанной выше команды размер MTU мгновенно изменяется. Это изменение даже не требует перезапуска службы.

Вы можете проверить новый размер MTU, выполнив следующую команду в Терминале:

Из вышеприведенного вывода вы можете убедиться, что размер MTU теперь изменился до 1000 байт. Однако, как упоминалось ранее, это изменение не сохранится после перезагрузки. Размер MTU вернется к своему значению по умолчанию 1500 после перезагрузки.

Постоянное изменение размера MTU

Команда ifconfig мгновенно изменяет размер MTU, но это изменение не сохраняется после перезагрузки системы. В следующем разделе мы увидим, как навсегда изменить размер MTU.

При динамической IP-адресации размер MTU устанавливается DHCP. Поэтому потребуется настроить файл конфигурации DHCP, расположенный в /etc/dhcp/dhclient.conf . Для статического IP-адреса мы внесем изменения в файл конфигурации сетевого интерфейса, расположенный в /etc/network/interfaces.

Использование файла /etc/dhcp/dhclient.conf

Если в вашей системе работает DHCP-сервер и сетевые интерфейсы настроены на получение от него IP-адресов, используйте файл /etc/dhcp/dhclient.conf для изменения размера MTU.

Отредактируйте nano /etc/dhcp/dhclient.conf, используя следующую команду:

Например, чтобы установить размер MTU равным 1400, мы добавим:

Если у вас несколько интерфейсов и вы хотите изменить размер MTU только для одного интерфейса, заключите его в фигурные скобки следующим образом:

После того, как вы настроили файл, сохраните и закройте его. Теперь перезапустите сетевую службу, используя следующую команду в терминале:

Также вызовите интерфейс, используя следующую команду:

Обязательно замените <interface_name> фактическим сетевым интерфейсом в вашей системе, например, ens33, eth0, eth1 и т. д.

В нашем случае это будет:

Теперь введите следующую команду в Терминале, чтобы проверить, успешно ли изменился размер MTU.

Из выходных данных вы можете видеть, что размер MTU был изменен на 1400.

Использование файла /etc/network/interfaces

Если ваш сетевой интерфейс настроен на получение статического IP-адреса, вы можете изменить размер MTU, настроив файл / etc / network / interfaces .

Отредактируйте файл /etc/network/interfaces с помощью следующей команды в Терминале:

Добавьте в файл следующую строку:

Обязательно замените <interface-name> фактическим именем интерфейса, а <mtu_size> размером MTU, который вы хотите установить на сетевом интерфейсе.

Например, чтобы изменить размер MTU интерфейса с именем ens33 на 1300 байт, команда будет выглядеть так:

После того, как вы настроили файл, сохраните и закройте его.

Теперь перезапустите сетевые службы, используя следующую команду в Терминале:

Также вызовите интерфейс, используя следующую команду:

Обязательно замените <interface_name> фактическим сетевым интерфейсом в вашей системе, например, ens33, eth0, eth1 и т. Д.

В нашем случае это будет:

Теперь введите следующую команду в Терминале, чтобы проверить, успешно ли изменился размер MTU.

Из выходных данных видно, что размер MTU был изменен на 1300. Это изменение останется постоянным и не изменится даже после перезагрузки.

Вот и все! Следуя описанным выше процедурам, вы можете временно или навсегда изменить размер MTU сетевого интерфейса в вашей системе Linux. Надеемся это поможет!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: