简介
在这个实验中,你将学习如何使用多种方法检查 Linux 中网络接口的最大传输单元 (Maximum Transmission Unit, MTU)。了解 MTU 对于网络性能和故障排除至关重要。
你将探索三种不同的方法:使用现代的 ip link show
命令、传统的 ifconfig
实用工具,以及直接在 /sys/class/net
文件系统中检查网络接口信息。在本实验结束时,你将能够熟练识别网络接口的 MTU 设置。
在这个实验中,你将学习如何使用多种方法检查 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 设置,这对于网络故障排除和性能优化至关重要。