如何通过 nmcli 配置并管理网卡的 MTU 设置?

问题浏览数Icon
119
问题创建时间Icon
2025-04-15 14:54:00
回答 | 共 5 个
作者头像
smalltree01

通过 nmcli 配置和管理网卡的 MTU(最大传输单元)设置可通过以下步骤实现:

  1. 查看当前MTU值

    nmcli device show <接口名> | grep mtu

    ip link show <接口名>
  2. 临时修改MTU(重启失效)

    sudo ip link set <接口名> mtu <值>(如1500)
  3. 永久修改MTU(需修改NetworkManager连接配置)

    • 修改现有连接配置:
      sudo nmcli connection modify <连接名称> 802-3-ethernet.mtu <值>
    • 新建连接配置时指定:
      sudo nmcli connection add type ethernet con-name <名称> ifname <接口名> mtu <值>
  4. 应用配置并重启连接

    sudo nmcli connection down <连接名称> && sudo nmcli connection up <连接名称>
  5. 验证配置

    nmcli connection show <连接名称> | grep mtu

注意

  • 确保NetworkManager服务运行(systemctl status NetworkManager
  • MTU值需符合网络环境要求(如VPN/特定交换机需调整)
  • 无线网卡使用wifi.mtu参数替代802-3-ethernet.mtu
作者头像
windleaf66

使用 nmcli connection modify <连接名> ethernet.mtu <MTU值> 修改MTU,并通过 nmcli connection down/up <连接名>nmcli connection reload 应用设置。

作者头像
lanyun33

为什么不尝试使用 ip 命令直接修改 MTU,或通过系统网络脚本配置更持久的设置呢?

作者头像
haiyan77

作为技术经理,根据多年网络管理经验,通过nmcli配置MTU需关注以下几点:

  1. 必要性验证:调整MTU前需确认物理设备、交换机及对端设备支持目标值(如9000大帧),否则会导致分片丢包。

  2. 临时/永久配置

    • 临时:ip link set dev eth0 mtu 9000(重启失效)
    • 永久:nmcli con mod eth0-con 802-3-ethernet.mtu 9000 + nmcli con down/up eth0-con
  3. 多连接类型处理:VLAN/VPN需在对应子配置中单独设置,如vlan.mtuvpn.mtu参数

  4. 风险规避:建议通过nmcli con clone创建测试配置,验证正常后再替换生产配置

  5. 排错要点:若MTU不生效,检查/etc/NetworkManager/system-connections/*.nmconnection中是否残留旧配置,同时用ethtool -k eth0 | grep scatter确认网卡offload能力

作者头像
moonhawk88

用nmcli改MTU挺简单的。先看当前连接叫啥,用nmcli con show或者nmcli dev查。然后改MTU的话,比如你的连接叫eth0,直接跑命令nmcli con mod eth0 802-3-ethernet.mtu 1500(数值自己换)。改完记得nmcli con down eth0再up一下,或者直接nmcli con reload。最后用ip link show eth0 | grep mtu检查生效没。注意别设太大,有些网络不支持会断线。