帮助中心

产品使用与售后服务帮助

当前位置:首页 > 帮助中心> 如何永久或者临时修改Linux服务器MTU的大小

如何永久或者临时修改Linux服务器MTU的大小

发布时间:2021-03-12 08:23 来源:A5数据

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

大多数以太网网络的默认MTU大小是1500字节。然而,你可以根据需要改变它。在本教程中,我们将介绍如何在Linux服务器中改变MTU大小。

前提条件

Ubuntu 20.04系统

有sudo权限的用户

注意:本文讨论的命令已经在Ubuntu 20.04 LTS (Focal Fossa)上测试过。同样的命令也适用于Debian发行版。

查看当前MTU大小

为了查看当前以太网接口的MTU大小,使用ifconfig命令如下。

$ ifconfig | grep mtu

输出显示,当前接口ens33的MTU大小为1500。

另外,你也可以使用 "ip a "命令来查看当前的MTU大小。

$ ip a | grep mtu

临时改变MTU大小--使用ifconfig命令。

我们可以使用ifconfig命令来改变系统网络接口的MTU大小。但是,请记住,这种改变会在重启后失效,返回到默认值,即1500。

要改变MTU大小,请使用以下语法。

$ ifconfig <Interface_name> mtu <mtu_size> up

例如,要将一个名为ens33的接口的MTU大小改变为1000字节,命令是。

$ ifconfig ens33 mtu 1000 up

运行上述命令后,MTU大小马上发生变化,甚至不需要重新启动服务。

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

$ ifconfig | grep mtu

从上面的输出中,你可以验证MTU大小现在已经改变为1000字节。然而,如前所述,这一变化将无法在重启后继续存在。重启后,MTU大小将恢复到默认值1500。

永久改变MTU大小

ifconfig命令可以临时改变MTU的大小,但是这种改变在系统重启后是无法继续生效的。在下面的章节中,我们将看到如何永久改变MTU大小。

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

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

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

使用以下命令编辑nano /etc/dhcp/dhclient.conf。

$ sudo nano /etc/dhcp/dhclient.conf

然后在send host-name = gethostname();行下面添加以下几行。

default interface-mtu <mtu_size>;

supersede interface-mtu <mtu_size>;

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

default interface-mtu 1400;

supersede interface-mtu 1400;

如果你有多个接口,而你只想改变一个接口的MTU大小,那么就把它括在括号里,如下所示。

interface "interface_name" {

default interface-mtu <mtu_size>;

supersede interface-mtu <mtu_size>;

}

配置好文件后,保存并关闭它。

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

$ sudo service networking restart

同时,使用以下命令调出接口。

$ sudo ifup <interface_name>

确保将<interface_name>替换为系统中的实际网络接口,如ens33、eth0、eth1等。

在我们的示例中,它应该是

$ sudo ifup ens33

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

$ sudo ifconfig | grep mtu

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

②使用/etc/network/interfaces文件。

如果你的网络接口被配置为获取静态IP地址,那么你可以通过配置/etc/network/interfaces文件来改变MTU大小。

在终端中使用以下命令编辑/etc/network/interfaces文件。

$ sudo nano /etc/network/interfaces

在文件中添加以下一行。

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

确保用实际的接口名称代替<interface-name>,用<mtu_size>代替你要在网络接口上设置的MTU大小。

例如,如果要将名为 ens33 的接口的 MTU 大小改为 1300 字节,命令如下。

post-up /sbin/ifconfig ens33 mtu 1300 up

配置好文件后,保存并关闭它。

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

$ sudo service networking restart

同时,使用以下命令调出接口。

$ sudo ifup <interface_name>

确保将<interface_name>替换为系统中的实际网络接口,例如ens33、eth0、eth1等。

在我们的情况下,应该是

$ sudo ifup ens33

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

$ ip a | grep mtu

从输出中可以看到,MTU大小已经改为1300。这个变化将保持持久性,即使重启后也不会受到影响。

以上就是全部内容了! 通过以上步骤,你可以临时或永久地改变Linux系统中网络接口的MTU大小,希望对大家有所帮助。