在 Linux 系统中,MTU(Maximum Transmission Unit,最大传输单元) 是指网络接口单次传输数据包的最大尺寸(以字节为单位),它决定了网络通信中数据分片的大小限制。以下是关于 Linux MTU 的详细说明:
网络类型 | 默认 MTU |
---|---|
标准以太网(Ethernet) | 1500 |
PPPoE(ADSL拨号) | 1492 |
隧道(如 VPN) | 通常 1400 或更低 |
环回接口(lo) | 65536 |
# 查看所有接口的 MTU
ip link show
# 或针对特定接口(如 eth0)
ip link show dev eth0 | grep mtu
# 输出示例:mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
# 将 eth0 的 MTU 改为 1492(重启后失效)
sudo ip link set dev eth0 mtu 1492
nmcli connection modify <连接名> ethernet.mtu 1492
nmcli connection up <连接名>
/etc/network/interfaces
ini
auto eth0
iface eth0 inet dhcp
mtu 1492
/etc/sysconfig/network-scripts/ifcfg-eth0
ini
MTU=1492
ping -M do -s <数据包大小> <目标IP>
# 示例:测试 1472 字节数据包(ICMP 头 8 字节 + 数据 1472 = 1500 MTU)
ping -M do -s 1472 example.com
Frag needed
,说明路径中存在更小的 MTU 限制。使用 tracepath
或 ping
探测路径 MTU:
tracepath example.com
# 或
ping -M do -s <size> example.com
如果有具体应用场景(如 VPN、云服务器),可进一步分析优化!