ethtool
是一个在 Linux 系统中用于查询和修改网络接口设备的命令行工具。它提供了大量的功能,可以帮助用户获取网络接口的各种详细信息,如设备的状态、配置、速率、双工模式等,还能够对设备的设置进行修改,如改变速率、开启或关闭接口、设置网卡的其他参数等。
主要功能
查询网络接口信息
ethtool
可以显示网络接口的各种参数,包括:
- 网卡的速率(例如,100Mbps、1Gbps等)
- 双工模式(全双工或半双工)
- 网卡支持的硬件特性(如流量控制、VLAN等)
- 接口的连接状态(是否在线)
- MAC 地址
- 驱动程序信息
例如,要查看一个网卡的详细信息:
ethtool eth0
修改网络接口设置
ethtool
允许对网络接口的设置进行修改。例如,可以设置网卡的速率、双工模式、开启或关闭自协商等。
修改网卡速率和双工模式:
ethtool -s eth0 speed 100 duplex full autoneg off
这个命令会将 eth0
网卡的速率设置为 100 Mbps,双工模式设置为全双工,并关闭自动协商。
查看并设置网卡的统计信息
ethtool
还可以显示网络接口的统计信息,例如包的接收和发送计数、错误计数等:
ethtool -S eth0
这将展示 eth0
网卡的详细统计信息。
查看或设置网卡的自协商功能
自协商(autonegotiation)是网卡与交换机或路由器之间进行的速率和双工模式的自动协商过程。ethtool
可以查看或修改此功能:
ethtool eth0
你可以看到自协商的状态,并通过 -s
参数来启用或禁用自协商。
更改网卡的卸载功能
一些网络接口卡支持卸载功能(offload features),例如 TCP 卸载、接收端卸载等。这些功能可以通过 ethtool
查看和修改:
ethtool -K eth0 gro off
测试网卡性能
ethtool
还可以用来对网卡进行一些基本的性能测试和检查,例如查看网卡是否支持某些高级功能:
ethtool -i eth0
常见命令选项
-i
:查看驱动程序的信息(如驱动名称、版本、固件等)-s
:修改网络接口的设置(如速率、双工、自动协商等)-S
:显示网络接口的统计信息-K
:启用或禁用卸载功能(如 TCP 卸载)-d
:显示设备的诊断信息-p
:闪烁网卡 LED(帮助标识网卡)-c
:检查链路状态-t
:显示网卡的多播地址- -g:查看网卡的缓冲区大小,单位是包的个数。
- -G:修改Ring Buffer,命令 ethtool -G <interface> rx <RX_size> tx <TX_size> [other options]
- rx:设置接收缓冲区的大小。
- tx:设置发送缓冲区的大小。
- rx-mini:设置迷你帧接收缓冲区的大小(如果支持的话)。
- rx-jumbo:设置巨帧接收缓冲区的大小(如果支持的话)。
示例
-
查看网卡的详细信息:
ethtool eth0
-
设置网卡的速率为 1000 Mbps,并启用自动协商:
ethtool -s eth0 speed 1000 duplex full autoneg on
-
禁用网卡的 GSO(Generic Segmentation Offload):
ethtool -K eth0 gso off
总结
ethtool
是一个非常有用的网络工具,可以帮助管理员和开发者在 Linux 系统上快速查看和配置网络接口的各种参数。它能够为用户提供详细的网络接口信息,并允许对接口进行各种性能优化和调优。