ethtool
Display or change Ethernet card settings
TLDR
Display the current settings for an interface
Display the driver information for an interface
Display all supported features for an interface
Display the network usage statistics for an interface
Blink one or more LEDs on an interface for 10 seconds
Set the link speed, duplex mode, and parameter auto-negotiation for a given interface
SYNOPSIS
ethtool [options] devname
PARAMETERS
-a, --show-pause-params
Show pause frame parameters
-A, --pause
Set pause frame parameters (autoneg, rx, tx)
-c, --show-coalesce
Show coalesce parameters
-C, --coalesce
Set coalesce parameters (rx/tx usecs, frames, etc.)
-d, --register-dump
Dump device registers
-e, --register-dump-raw
Dump raw device registers
-g, --show-ring
Show ring parameters
-G, --set-ring
Set ring parameters (rx/tx mini/max)
-i, --driver
Show driver information
-I, --driver-info
Show driver info (alternative)
-k, --show-offload
Show offload parameters
-K, --offload
Set offload parameters (e.g., tso, gso, gro)
-l, --show-channels
Show channel parameters
-L, --set-channels
Set channel parameters (combined, rx, tx, other)
-m, --show-modules
Show transceiver (SFP/EEPROM) module info
-N, --show-fec
Show FEC (Forward Error Correction) modes
-S, --stats
Show adapter statistics
-s, --change
Change generic settings (speed, duplex, port, etc.)
-p, --identify
Show/activate PHY identifiers (LED blink)
-r, --recover
Trigger link recovery (reset)
-t, --test
Execute device self-test
-u, --show-perf-impact
Show performance impact
-w, --dump-interval
Show dump interval
--show-fec
Show FEC encoding
--set-fec
Set FEC encoding
--show-eee
Show EEE (Energy Efficient Ethernet)
--set-eee
Set EEE parameters
--show-ts-info
Show timestamping info
--show-ts
Show PTP hardware clock info
-f, --flash
Flash device firmware
-n, --show-nics
List current number of NICs
DESCRIPTION
ethtool is a powerful Linux command-line tool for inspecting and configuring Ethernet network interface controllers (NICs). It provides detailed information about device hardware, drivers, firmware, bus settings (PCIe, etc.), and operational parameters like link speed, duplex mode, autonegotiation status, and error counters.
Administrators use it for troubleshooting connectivity issues, tuning performance (e.g., adjusting interrupt coalescing, ring buffers, offload features), and verifying hardware capabilities. The tool supports viewing statistics, running self-tests, identifying physical ports (via LED blinking), and changing settings such as MTU, Wake-on-LAN, flow control, and RSS hash options.
Most query operations work without privileges, but changes require root or CAP_NET_ADMIN capability. Compatibility varies by driver; not all features are supported on every NIC. It's indispensable for server admins optimizing network throughput and latency.
CAVEATS
Many options depend on driver support; unsupported features return errors. Requires root for changes. Use ethtool -i devname to check driver first. Virtual interfaces (e.g., VLANs) may have limited support.
COMMON EXAMPLES
ethtool eth0 - Basic link info.
ethtool -S eth0 - Statistics.
ethtool -k eth0 - Offloads.
ethtool -s eth0 speed 1000 duplex full autoneg off - Set 1G full-duplex.
PERMISSIONS
Queries: any user. Changes: sudo or CAP_NET_ADMIN. Persistent changes need udev rules or network config files.
HISTORY
Developed by David S. Miller in 2001 for Linux kernel 2.4.x networking. Evolved with kernel features like offloads (2000s), coalescing, channels (2008+). Maintained in net-tools; now standard in iproute2 distributions.


