临时修改MTU应使用sudo ip link set dev eth0 mtu 1400,因ifconfig在CentOS 7中已废弃且mtu参数不稳定;需确保接口处于UP状态,生效后用ip link show dev eth0 | grep mtu验证,重启后失效。

临时修改MTU用ip link set,别再用ifconfig
ifconfig在CentOS 7里已被标记为废弃工具,虽然还能运行,但不保证所有功能(比如mtu参数)稳定生效。真正可靠、推荐的方式是ip link set:
执行命令:sudo ip link set dev eth0 mtu 1400
验证是否生效:ip link show dev eth0 | grep mtu —— 输出中mtu 1400即表示已改成功
- 这个操作立即生效,无需重启网卡或网络服务
- 仅对当前运行时有效,系统重启或
systemctl restart network后会还原 - 不能用于未启用的接口(
DOWN状态),需先ip link set eth0 up - MTU值必须在接口硬件支持范围内(常见范围:552–9000;低于552多数驱动拒绝设置)
永久修改必须写入/etc/sysconfig/network-scripts/ifcfg-*
CentOS 7仍沿用传统ifcfg-配置文件机制(哪怕启用了NetworkManager,只要没用nmcli接管该连接,就以该文件为准):
编辑对应接口文件,例如sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加或修改这一行:MTU="1400"(注意:等号两边不加空格,值用双引号包裹更稳妥)
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 不要写成
mtu=1400或MTU=1400(无引号),某些版本的network服务会忽略 - 修改后必须重启网络服务:
sudo systemctl restart network(不是systemctl restart NetworkManager) - 如果该接口由NetworkManager管理(
ONBOOT=yes且TYPE=Ethernet),建议统一用nmcli,否则可能被NM覆盖
用nmcli永久设置MTU的前提是接口由NetworkManager托管
如果你的接口配置里有DEVICE=eth0但没写TYPE=Ethernet,或者ONBOOT=no,NetworkManager很可能根本没管它——此时nmcli无效。
确认方式:nmcli connection show,看输出里是否有对应连接名(如System eth0)
若存在,执行:sudo nmcli connection modify "System eth0" 802-3-ethernet.mtu 1400
-
"System eth0"必须和nmcli connection show输出的名称完全一致(含空格、大小写) - 修改后需断开重连:
sudo nmcli connection down "System eth0" && sudo nmcli connection up "System eth0" - 不建议混合使用
nmcli和ifcfg-文件修改同一接口,容易冲突
MTU设错会导致连不上网,但错误现象不报MTU相关字眼
MTU过小(如设成500)会让TCP握手SYN包都发不出去;过大(如设成9000但中间链路只支持1500)则触发ICMP “Fragmentation needed”却被丢弃——结果都是“能ping通网关但无法访问外网”或“SSH连接卡在密码输入后”。排查时优先跑这句:ping -M do -s 1392 192.168.1.1(假设网关是192.168.1.1)
-
-M do强制不分片,-s指定ICMP数据部分大小,总长 =s + 28(IP头20B + ICMP头8B) - 如果返回
Packet needs to be fragmented but DF set,说明当前MTU太小;如果超时但ping -s 1300成功,说明MTU应在1328左右 - 别依赖
ethtool eth0查MTU——它显示的是底层驱动允许的最大值,不是当前生效值
systemctl restart network,而不是ifdown && ifup——后者在CentOS 7里可能跳过MTU重载逻辑。

















