介绍
在这个实验中,你将学习如何使用多种方法检查 Linux 中网络接口的最大传输单元 (Maximum Transmission Unit, MTU)。了解 MTU 对于网络性能和故障排除至关重要。
你将探索三种不同的方法:使用现代的 ip link show 命令、传统的 ifconfig 实用工具,以及直接在 /sys/class/net 文件系统中检查网络接口信息。在本实验结束时,你将能够熟练识别网络接口的 MTU 设置。
使用 ip link show 检查 MTU
在这一步中,你将学习如何使用 ip link show 命令检查网络接口的最大传输单元 (Maximum Transmission Unit, MTU)。MTU 是网络接口在不进行分段的情况下能够处理的最大数据包大小。了解 MTU 对于网络故障排除和性能调优非常重要。
ip 命令是 Linux 中用于管理网络接口、路由和隧道的强大工具。link 子命令用于显示和修改网络接口。
如果终端尚未打开,请打开它。你可以通过点击桌面左侧的 Xfce Terminal 图标来完成此操作。
现在,输入以下命令并按回车键:
ip link show
此命令将显示系统上所有网络接口的信息。你将看到类似于以下的输出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
找到对应于你主要网络接口的行。在这个环境中,通常是 eth0。你会在那里找到 mtu 值。在上面的示例中,eth0 的 MTU 是 1500。
lo 接口是回环接口,用于系统内部的通信。它的 MTU 通常要大得多。
花点时间检查输出并确定你的 eth0 接口的 MTU。
点击 继续 进入下一步。
使用 ifconfig 验证 MTU
在这一步中,你将使用 ifconfig 命令来验证网络接口的 MTU。虽然 ip 是现代用于网络配置的命令,但 ifconfig 是一个较旧但仍常用的实用工具,它能提供关于网络接口的类似信息。
首先,让我们安装包含 ifconfig 命令的 net-tools。我们将再次使用 apt,就像安装 htop 时那样。
如果终端尚未打开,请打开它。
输入以下命令来安装 net-tools 并按回车键:
sudo apt update
sudo apt install net-tools -y
-y 标志会自动对安装过程中的任何提示回答“yes”,使安装过程更顺畅。
安装完成后,你就可以使用 ifconfig 命令了。输入以下命令并按回车键:
ifconfig
此命令将显示所有活动网络接口的配置信息。你将看到类似于以下的输出:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:acff:fe11:2 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:02 txqueuelen 1000 (Ethernet)
RX packets 123 bytes 12345 (12.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 123 bytes 12345 (12.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 123 bytes 12345 (12.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 123 bytes 12345 (12.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
同样,找到对应于 eth0 的部分。你会在那里找到 mtu 值,这将确认你使用 ip link show 命令看到的值。
同时使用 ip 和 ifconfig 会很有帮助,因为不同的系统或文档可能会更倾向于使用其中一个。
点击 继续 进入下一步。
在 /sys/class/net 中检查 MTU
在这一步中,你将探索 /sys 文件系统以查找 MTU 值。/sys 文件系统是一个虚拟文件系统,它提供了访问内核数据结构的接口。你可以通过它检查,有时还能修改内核参数和设备信息。
包括 MTU 在内的网络接口信息通过 /sys/class/net 目录公开。系统上的每个网络接口在此处都有一个子目录。
如果终端尚未打开,请打开它。
首先,让我们列出 /sys/class/net 目录的内容,以查看可用的网络接口。输入以下命令并按回车键:
ls /sys/class/net/
你应该会看到一个网络接口列表,类似于 ip link show 或 ifconfig 的输出。在这个环境中,你可能会看到 eth0 和 lo。
eth0 lo
现在,让我们查看主接口 eth0 的目录内容。输入以下命令并按回车键:
ls /sys/class/net/eth0/
这将显示一个包含 eth0 接口信息的文件和目录列表。
addr_assign_type broadcast device ifindex mtu phys_port_id speed
address carrier dormant iflink napi_defer_hard_irqs phys_port_name statistics
addr_len carrier_changes duplex link_mode netdev_group power subsystem
bonding_slave carrier_up_count flags lower_ operstate proto_down_reason tx_queue_len
bridge_slave dev_id gro_flush_timeout name_assign_type perms qdisc type
注意名为 mtu 的文件。我们可以读取这个文件的内容来获取 MTU 值。使用 cat 命令显示 mtu 文件的内容。输入以下命令并按回车键:
cat /sys/class/net/eth0/mtu
你应该会在终端上看到打印出的 MTU 值,应该是 1500。
1500
通过读取 /sys 文件来检查 MTU 的这种方法,提供了一种直接访问网络接口内核级信息的方式。
你现在已经成功使用三种不同的方法检查了 MTU:ip link show、ifconfig 以及检查 /sys 文件系统。这表明在 Linux 中,完成同一任务通常有多种方法。
点击 继续 完成此实验。
总结
在本实验中,你学习了如何使用三种不同的方法在 Linux 中检查网络接口的最大传输单元(Maximum Transmission Unit, MTU)。你首先使用现代的 ip link show 命令来显示所有网络接口的详细信息,包括它们的 MTU 值。然后,你使用较旧但仍然常用的 ifconfig 命令验证了这些信息。最后,你探索了如何直接从 /sys/class/net 文件系统中检查 MTU 值,该文件系统提供了一种以编程方式访问网络接口属性的方法。这些方法提供了不同的方式来确认 MTU 设置,这对于网络故障排除和性能优化至关重要。



