关键在于匹配发行版网络管理机制:ubuntu/debian用netplan在/etc/netplan/*.yaml中添加mtu字段并执行sudo netplan apply;rhel/centos在/etc/sysconfig/network-scripts/ifcfg-设备名中设mtu=值并重启network服务;统信uos/麒麟kos则需用nmcli修改连接级配置并重载。

在 Linux 系统中,通过网卡配置文件设置自定义 MTU 值,关键在于匹配发行版的网络管理机制——不是所有系统都用同一套配置路径,写错位置不会生效,重启后也看不到效果。
Ubuntu/Debian(Netplan 管理)
Netplan 是默认网络配置工具,配置文件位于 /etc/netplan/*.yaml(如 01-network-manager-all.yaml)。需在对应网卡段落中显式添加 mtu 字段:
- 打开配置文件:sudo nano /etc/netplan/*.yaml
- 在目标接口(如
eth0或ens33)下添加缩进对齐的mtu: 1450(注意空格,YAML 对缩进敏感) - 保存后必须执行:sudo netplan apply —— 仅改文件不运行这步,配置不会加载
RHEL/CentOS/AlmaLinux(ifcfg 脚本)
配置文件路径为 /etc/sysconfig/network-scripts/ifcfg-设备名(如 ifcfg-eth0)。直接追加一行即可:
- 编辑文件:sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
- 添加或修改:MTU=1450(注意等号前后无空格)
- 重启网络服务:sudo systemctl restart network
统信UOS / 麒麟KOS(NetworkManager 为主)
这类系统通常禁用传统脚本,优先使用 nmcli 修改连接级配置,更可靠:
- 查当前激活连接名:nmcli c s --active(别用设备名如 ens33,要用“System ens33”这类连接名)
- 修改 MTU:sudo nmcli connection modify "System ens33" 802-3-ethernet.mtu 1450
- 重载并重启连接:sudo nmcli connection reload && sudo nmcli connection down "System ens33" && sudo nmcli connection up "System ens33"
验证是否真正生效
改完配置≠已应用。务必用以下命令确认运行时值:
-
ip link show dev eth0 | grep mtu —— 这是唯一可信方式(
ip addr show可能省略该字段) - 若输出仍是旧值,说明配置未加载、被 NetworkManager 覆盖,或接口处于 DOWN 状态
- 特别注意:容器内、云镜像中可能有 cloud-init 或 systemd-networkd 干预,需额外排查其配置覆盖逻辑











