如何在 Linux 中更改 MTU 大小

MTU(代表最大传输单元)是可以从网络接口传输的数据包的最大大小。 通信中涉及的所有设备(包括服务器和交换机/路由器)都应具有相同的 MTU 大小。 较大的 MTU 大小具有较少的开销,而较小的 MTU 具有较少的延迟。

大多数以太网网络中的默认 MTU 大小为 1500 字节。 但是,您可以根据需要更改它。 在本教程中,我们将解释如何在 Linux 中更改 MTU 大小。

先决条件

  • Ubuntu 20.04 系统
  • 用户 sudo 特权

注意:本文中讨论的命令已经过测试 Ubuntu 20.04 LTS (焦点窝)。 相同的命令也适用于 Debian 发行版。

查看当前 MTU 大小

要查看以太网接口的当前 MTU 大小,请使用 ifconfig 命令,如下所示:

$ 如果配置 | grep mtu

下面的输出显示了接口的当前 MTU 大小 ens331500.

或者,您也可以使用“ip a”命令查看当前 MTU 大小:

$ ip 一个 | grep mtu

临时更改 MTU 大小 – 使用 ifconfig 命令

我们可以使用 ifconfig 命令来更改系统网络接口的 MTU 大小。 但是,请记住,此更改在重新启动后会继续存在并返回到默认值,即 1500。

要更改接口的 MTU 大小,请使用以下语法:

$ 如果配置 <接口名称> mtu <mtu_size> 向上

例如,要更改名为的接口的 MTU 大小 ens331000 字节,命令将是:

$ 如果配置 ens33 mtu 1000 向上

运行上述命令后,MTU 大小会立即发生变化。 此更改甚至不需要重新启动服务。

您可以通过在终端中运行以下命令来验证新的 MTU 大小:

$ 如果配置 | grep mtu

从上面的输出中,您可以验证 MTU 大小现在已更改为 1000 字节。 但是,如前所述,此更改将无法在重新启动后继续存在。 重新启动后,MTU 大小将恢复为默认值 1500。

永久更改 MTU 大小

ifconfig 命令会立即更改 MTU 大小,但此更改不会在系统重新启动后继续存在。 在下一节中,我们将看到如何永久更改 MTU 大小。

在动态 IP 寻址中,MTU 大小由 DHCP 设置。 所以需要配置位于的 DHCP 配置文件 /etc/dhcp/dhclient.conf. 对于静态 IP 地址,我们将在位于的网络接口配置文件中进行更改 /etc/网络/接口.

使用 /etc/dhcp/dhclient.conf 文件

如果 DHCP 服务器正在您的系统上运行,并且网络接口被配置为从它接收 IP 地址,则使用 /etc/dhcp/dhclient.conf 文件以更改 MTU 大小。

编辑纳米 /etc/dhcp/dhclient.conf 使用以下命令:

$ sudo 纳米 /ETC/dhcp/dhclient.conf

然后在“发送主机名 = gethostname(); 线:

默认接口-mtu

取代接口-mtu

例如,要将 MTU 大小设置为 1400,我们将添加:

默认接口-mtu 1400;

取代接口-mtu 1400;

如果您有多个接口,并且只想更改一个接口的 MTU 大小,请将其括在大括号中,如下所示:

界面 “接口名称” {

默认接口-mtu <mtu_size>;

取代接口-mtu <mtu_size>;

}

配置文件后,保存,然后 close 它。

现在在终端中使用以下命令重新启动网络服务:

$ sudo 服务网络重启

另外,使用以下命令调出界面:

$ sudo 如果上 <接口名称>

确保更换 <接口名称> 使用系统上的实际网络接口,例如 ens33、eth0、eth1 等。

在我们的例子中,它将是:

$ sudo 如果上 ens33

现在在终端中发出以下命令以验证 MTU 大小是否已成功更改。

$ sudo 如果配置 | grep mtu

从输出中,您可以看到 MTU 大小已更改为 1400。

使用 /etc/network/interfaces 文件

如果您的网络接口配置为获取静态 IP 地址,那么您可以通过配置 /etc/网络/接口 文件。

编辑 /etc/网络/接口 在终端中使用以下命令文件:

$ sudo 纳米 /ETC/网络/接口

在文件中附加以下行:

张贴 /斯宾/如果配置 <接口名称> mtu <mtu_size>

确保更换 <接口名称> 使用实际的接口名称和 使用您要在网络接口上设置的 MTU 大小。

例如,要更改名为的接口的 MTU 大小 ens331300 字节,命令将是:

张贴 /斯宾/如果配置 ens33 mtu 1300 向上

配置文件后,保存,然后 close 它。

现在在终端中使用以下命令重新启动网络服务:

$ sudo 服务网络重启

另外,使用以下命令调出界面:

$ sudo 如果上 <接口名称>

确保更换 <接口名称> 使用系统上的实际网络接口,例如 ens33、eth0、eth1 等。

在我们的例子中,它将是:

$ sudo 如果上 ens33

现在在终端中发出以下命令以验证 MTU 大小是否已成功更改。

$ ip 一个 | grep mtu

从输出中,您可以看到 MTU 大小已更改为 1300。此更改将保持不变,即使在重新启动后也不会受到影响。

这就是它的全部! 按照上述过程,您可以在 Linux 系统中临时或永久更改网络接口的 MTU 大小。 希望这可以帮助!