商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > CentOS 7怎么修改具体的网络接口最大传输单元

CentOS 7怎么修改具体的网络接口最大传输单元

  发布于2026-08-22 阅读(0)

扫一扫,手机访问

临时修改MTU的话,应当使用sudo ip link set dev eth0 mtu 1400这条命令。为什么呢?因为ifconfig在CentOS 7中已经被废弃了,而且它的mtu参数不太稳定。这里要注意,必须确保接口处于UP状态才行哦。等修改生效后,我们可以用ip link show dev eth0 | grep mtu来进行验证。不过得提醒一下,这种临时修改的方式,在重启后就会失效啦。

CentOS 7怎么修改具体的网络接口最大传输单元

临时修改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"(注意:等号两边不加空格,值用双引号包裹更稳妥)

  • 不要写成mtu=1400MTU=1400(无引号),某些版本的network服务会忽略
  • 修改后必须重启网络服务:sudo systemctl restart network(不是systemctl restart NetworkManager
  • 如果该接口由NetworkManager管理(ONBOOT=yesTYPE=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"
  • 不建议混合使用nmcliifcfg-文件修改同一接口,容易冲突

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——它显示的是底层驱动允许的最大值,不是当前生效值
实际改MTU时,最常被忽略的是:改完配置文件必须systemctl restart network,而不是ifdown && ifup——后者在CentOS 7里可能跳过MTU重载逻辑。
本文转载于:https://www.php.cn/faq/3031547.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

产品推荐

热门关注