ethtool
是一个功能强大的工具,用于查询和控制网络驱动程序和硬件设置。它可以用来查看网卡的详细信息、修改网卡的工作模式、调整中断设置等。
在Linux系统中,网络接口的性能优化和故障排查通常需要借助 ethtool
来完成。通过它,用户可以轻松地获取网卡的状态信息(如速度、双工模式、驱动版本等),并根据需求进行配置。
大多数现代Linux发行版已经预装了 ethtool
。如果未安装,可以通过以下命令安装:
sudo apt-get update
sudo apt-get install ethtool
sudo yum install ethtool
sudo dnf install ethtool
以下是常用的 ethtool
命令及其功能:
ethtool eth0
该命令会显示网卡的基本信息,包括:
ethtool -s eth0
此命令列出网卡支持的所有速度(如10Mb/s、100Mb/s、1Gb/s)以及全双工或半双工模式。
ethtool -i eth0
输出示例:
driver: e1000e
version: 3.2.6-k
firmware-version: 0.5-4
bus-info: 0000:01:00.0
ethtool -S eth0
该命令会显示网卡的统计数据,例如传输的字节数、丢包数等。
ethtool -t eth0
此命令用于执行网卡的自检测试,帮助判断网卡是否正常工作。
除了查看信息外,ethtool
还可以用来配置网卡参数。
sudo ethtool -s eth0 speed 1000 duplex full autoneg off
上述命令将 eth0
的速度设置为1000Mbps,双工模式为全双工,并关闭自动协商。
sudo ethtool -s eth0 up # 启用网卡
sudo ethtool -s eth0 down # 禁用网卡
最大传输单元(MTU)是单个数据包可以承载的最大大小。可以通过以下命令修改:
sudo ifconfig eth0 mtu 9000
或者使用 ip
命令:
sudo ip link set dev eth0 mtu 9000
某些网卡支持高级功能(如流量控制、校验和卸载等)。可以通过以下命令启用或禁用这些功能:
sudo ethtool -K eth0 tso on # 启用TSO(TCP分段卸载)
sudo ethtool -K eth0 gso off # 禁用GSO(通用分段卸载)
检查当前网卡状态
ethtool eth0
记录当前的速度、双工模式和自动协商状态。
修改网卡配置 假设需要将网卡设置为100Mbps全双工模式,并关闭自动协商:
sudo ethtool -s eth0 speed 100 duplex full autoneg off
验证修改结果 再次运行以下命令,确认配置已生效:
ethtool eth0
自动协商(Auto Negotiation)
自动协商是一种机制,允许网卡与对端设备协商最佳的通信参数(如速度和双工模式)。如果手动设置了不匹配的参数,可能会导致通信问题。
MTU优化
调整MTU值可以显著提升网络性能,尤其是在使用Jumbo Frames(巨型帧)时。但需要注意的是,过大的MTU可能导致兼容性问题。
流量控制(Flow Control)
流量控制用于防止接收方因缓冲区溢出而导致的数据丢失。可以通过 ethtool
启用或禁用该功能。