Linux 网络排障利器:mii-tool 命令超全详解,网卡速率 / 双工模式一键掌控

Linux 网络排障利器:mii-tool 命令超全详解,网卡速率 / 双工模式一键掌控

一、命令简介

mii-tool 是一个用于查看、管理和配置网络接口介质状态及协商方式的命令行工具。它主要用于检查和设置以太网接口的物理层参数,如连接速度、双工模式(半双工 / 全双工)和自动协商状态。该工具在诊断网络连接问题(如丢包、速度不匹配)时尤为有用,允许管理员手动指定网卡的协商方式,以替代可能不稳定的自动协商机制。

二、语法格式

bash

运行

mii-tool [选项] [网络接口...]

三、常用选项及说明

表格

选项说明
-V显示 mii-tool 的版本信息。
-v显示指定网络接口的详细信息,包括产品信息、基本模式、状态、支持的能力和广告模式等。
-R将 MII(介质无关接口)重置为开启状态。
-r重启自动协商模式。
-w监视网络接口的连接状态变化,并实时显示。
-l将网络接口的事件记录到系统日志中。
-A media,...设置网络接口广告的能力(即向对端声明自己支持的模式),media 为逗号分隔的介质列表。
-F media强制设置网络接口的协商方式为指定的介质模式,禁用自动协商。

介质模式 (media) 可选值:

  • 100baseT4
  • 100baseTx-FD(100 Mbps,全双工)
  • 100baseTx-HD(100 Mbps,半双工)
  • 10baseT-FD(10 Mbps,全双工)
  • 10baseT-HD(10 Mbps,半双工)
  • 100baseTx(同时广告全双工和半双工)
  • 10baseT(同时广告全双工和半双工)

四、示例用法

1. 查看所有网络接口的协商状态

bash

运行

mii-tool

输出示例:

plaintext

eth0: negotiated 100baseTx-FD, link ok eth1: no link

2. 查看指定网络接口的详细信息

bash

运行

mii-tool -v eth0

输出示例:

plaintext

eth0: negotiated 100baseTx-FD, link ok product info: vendor 00:50:ef, model 60 rev 8 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

3. 强制设置网络接口为 100 Mbps 全双工模式

bash

运行

mii-tool -F 100baseTx-FD eth0

执行后,再次查看状态:

bash

运行

mii-tool -v eth0

输出示例:

plaintext

eth0: 100 Mbit, full duplex, link ok product info: vendor 00:00:00, model 0 rev 0 basic mode: 100 Mbit, full duplex basic status: link ok capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

4. 重启自动协商模式

bash

运行

mii-tool -r eth0

5. 监视网络接口连接状态变化

bash

运行

mii-tool -w eth0

此命令将持续运行,并在连接状态发生变化时输出信息。

6. 设置网络接口广告的能力

bash

运行

mii-tool -A 100baseTx-FD,10baseT-FD eth0

这将使 eth0 仅广告 100 Mbps 全双工和 10 Mbps 全双工模式。

五、注意事项

  • 权限要求:大多数 mii-tool 操作需要 root 或 sudo 权限。
  • 网络中断:更改网络接口的协商方式可能导致网络连接暂时中断。
  • 兼容性:强制设置协商方式时,需确保对端设备(如交换机)支持相同的模式,否则可能导致连接失败或性能下降。
  • 自动协商:在大多数现代网络中,自动协商是推荐配置。仅在自动协商失败或出现特定问题时才考虑手动设置。
  • 工具替代:对于更复杂的网络配置,ethtool 是功能更强大的替代工具,支持更多高级选项(如设置千兆以太网)。例如,设置 100 Mbps 全双工也可使用:

    bash

    运行

    ethtool -s eth0 speed 100 duplex full
  • 接口名称:请根据实际系统环境替换示例中的网络接口名称(如 eth0、enp3s0 等)。