nmcli配置mtu是最推荐方式,需先确认networkmanager启用并接管网卡;修改连接时用sudo nmcli connection modify 连接名 ipv4.mtu 值,再reload并启停连接生效;创建新连接可预设mtu实现灵活切换,且须确保全链路mtu一致并用巨帧ping验证。

用 nmcli 配置网卡 MTU 是 NetworkManager 管理环境下最推荐的方式,尤其适合需要长期生效、多连接切换或与桌面/云环境集成的场景。它比临时 ip 命令更稳定,也比直接改配置文件更安全可控。
确认 NetworkManager 是否接管网卡
nmcli 只对 NetworkManager 管理的连接生效。先检查是否启用并接管:
- 运行
systemctl status NetworkManager确保服务正在运行 - 执行
nmcli networking或nmcli n,输出connected表示已启用 - 运行
nmcli device status查看目标网卡(如ens33)状态是否为connected,且对应 connection 名称可见
修改已有连接的 MTU 值
假设网卡设备名为 ens33,当前激活的连接名也是 ens33(可通过 nmcli c s --active 查看),执行:
sudo nmcli connection modify ens33 ipv4.mtu 9000-
sudo nmcli connection modify ens33 ipv6.mtu 9000(若启用 IPv6) - 保存后必须重载连接才能应用:
sudo nmcli connection reload - 重启该连接:
sudo nmcli connection down ens33 && sudo nmcli connection up ens33
验证是否生效:nmcli -f GENERAL.MTU connection show ens33 或 ip link show ens33 | grep mtu,应显示 mtu 9000。
创建新连接并预设 MTU
适用于全新配置或避免影响现有连接:
- 克隆一个新连接:
sudo nmcli connection add type ethernet con-name "jumbo-ens33" ifname ens33 - 设置静态 IP 和 MTU:
sudo nmcli connection modify "jumbo-ens33" ipv4.addresses 192.168.10.100/24 ipv4.gateway 192.168.10.1 ipv4.dns "8.8.8.8" ipv4.method manual ipv4.mtu 9000 - 启用连接:
sudo nmcli connection up "jumbo-ens33"
这样可保留原连接备用,也方便在不同 MTU 场景间快速切换。
注意事项与验证要点
MTU 调整不是孤立操作,需同步考虑链路整体一致性:
- 确保交换机、对端服务器、中间防火墙等所有网络节点都启用并设为相同 MTU(通常 9000),否则会因分片失败导致丢包或性能下降
- 测试连通性时使用巨帧专用 ping:
ping -M do -s 8972 192.168.10.1(-s 8972对应 IP+ICMP 头共 9000 字节,-M do禁止分片) - 若连接使用 DHCP,部分发行版需额外设置:
sudo nmcli connection modify ens33 ipv4.dhcp-client-id "dhclient"并在/etc/dhcp/dhclient.conf中添加interface-mtu 9000;,否则 DHCP 获取的地址可能忽略 MTU











