很久以前修改Linux系统网卡工作模式的命令是mii-tools ,后来随着计算机服务器硬件的发展,早已经进入1000Mbps普及的时代,现在大型服务器基本都是万兆工作模式。

mii-tools 并不能正确识别超过100M 的网卡;

因为 MII以4位半字节方式传送数据双向传输,时钟速率25MHz。其工作速率可达100Mb/s。



ethtool 工具就是专门替代mii-tools 的,它可以修改大带宽的网络接口双工模式 等信息。


ethtool 具体用法如下:

# ethtool eth0    # 查看eth0网卡的工作模式以及相关信息。
# ethtool -i eth0      # 查看eth0网口的硬件信息,驱动型号版本等。
# ethtool -a eth0        # 查看eth0网口的自协商信息
# ethtool -A eth0 autoneg off  # 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或停用off 
# ethtool -d eth0       # 显示register dump信息, 部分网卡驱动不支持该选项 
# ethtool -p eth0 1     # 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
# ethtool -r eth0       # 如果auto-negotiation模块的状态为on,则restarts auto-negotiation 
# ethtool -S eth0       # 查看eth0网口的收发包统计,以及错误包,丢包率,广播包等统计信息。
# ethtool -t eth0 online|offline   # 让网口进行自我检测,offline为断线检测,网络会中断两秒。
# ethtool -s eth0 *** **   # 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等


比如要修改我网卡的工作模式为100M 全双工:

# ethtool -s eth0 autoneg off speed 10 duplex full

就可以临时修改网卡的工作模式为10M 全双工了!


如果你想要永久修改网卡的工作模式,那么你需要修改配置文件 ifcfg-eth0

添加一条 ETHTOOL_OPTS="speed 100 duplex full autoneg off" 重启网络服务即可。