最靠谱查当前mtu值的方式是运行ip link show dev eth0 | grep mtu,因ifconfig已弃用、ip addr show可能省略mtu字段;回环口lo的65536为特例,不可作物理网卡参考。

直接改 ip link set dev eth0 mtu 1450 很可能不生效,不是命令写错了,而是你没绕过 NetworkManager、接口状态或驱动限制。
怎么查当前 MTU 值才靠谱
别用 ifconfig——它在多数现代发行版里已被弃用,且在容器或精简内核中根本不可用。ip addr show 有时会省略 mtu 字段,输出不可靠。唯一稳定方式是:
- 查单个接口:
ip link show dev eth0 | grep mtu(注意是link,不是addr) - 查所有接口:
ip link show,然后逐行找mtu NNNN字样 - 回环口
lo的mtu 65536是特例,不能当物理网卡参考
临时改 MTU 后 ping 不通?先看这三件事
执行 sudo ip link set dev eth0 mtu 1450 没报错,但 ping -M do -s 1422 8.8.8.8 仍失败,大概率是以下原因:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
- 接口处于
DOWN状态:ip link show dev eth0输出里必须是state UP,否则命令静默失败 - 被 NetworkManager 覆盖:几秒后自动拉回配置值,可临时停用验证:
sudo systemctl stop NetworkManager - 路径实际不支持:1450 可能仍大于链路最小 MTU,得用
ping -M do逐步试探,真实 MTU = 最大成功-s值 + 28
永久生效不能只改一个地方
不同系统持久化路径完全不同,写错位置等于白改:
- Ubuntu/Debian(Netplan):改
/etc/netplan/*.yaml,在对应网卡下加mtu: 1450,再运行sudo netplan apply - RHEL/CentOS:改
/etc/sysconfig/network-scripts/ifcfg-eth0,添加MTU=1450,再sudo systemctl restart network - 统信 UOS / 麒麟 KOS:优先用
nmcli:sudo nmcli connection modify "有线连接" 802-3-ethernet.mtu 1450,然后down+up连接
改完务必再跑一遍 ip link show dev eth0 | grep mtu —— 别信配置文件写了就等于生效,尤其在有 systemd-networkd 或 cloud-init 的环境里,覆盖逻辑很隐蔽。










