临时修改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即表示已改成功

永久修改必须写入/etc/sysconfig/network-scripts/ifcfg-*

CentOS 7仍沿用传统ifcfg-配置文件机制(哪怕启用了NetworkManager,只要没用nmcli接管该连接,就以该文件为准):

编辑对应接口文件,例如sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

添加或修改这一行:MTU="1400"(注意:等号两边不加空格,值用双引号包裹更稳妥)

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

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

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