ethtool — Inspect and Configure Network Interfaces on Linux
Practical guide to ethtool — query and configure link speed, duplex, offload features and ring buffers on Linux, with diagnostic examples.
ethtool gives you direct access to the driver and hardware layer of Linux network interfaces: query link speed, duplex mode, auto-negotiation, driver version, ring buffer sizes, and offload features – all without a reboot. Whether you're diagnosing packet drops, enabling Wake-on-LAN, or tuning queue depth for maximum throughput, ethtool puts you in direct control of your NIC.
Basic Information
ethtool DEVICE — Show interface settings: speed, duplex, link status, auto-negotiation.
ethtool eth0ethtool -i DEVICE — Show driver and firmware information.
ethtool -i eth0ethtool -d DEVICE — Dump hardware register values.
sudo ethtool -d eth0ethtool -P DEVICE — Show the permanent (factory) MAC address.
ethtool -P eth0Link & Speed
ethtool DEVICE | grep 'Link detected' — Check if a cable is plugged in and link is active.
ethtool eth0 | grep 'Link detected'ethtool DEVICE | grep 'Speed' — Check the current link speed.
ethtool eth0 | grep 'Speed'ethtool -s DEVICE speed SPEED duplex full autoneg off — Set link speed and duplex manually. Disable auto-negotiation.
sudo ethtool -s eth0 speed 1000 duplex full autoneg offethtool -s DEVICE autoneg on — Enable auto-negotiation.
sudo ethtool -s eth0 autoneg onethtool -s DEVICE speed SPEED duplex full autoneg on — Advertise a specific speed with auto-negotiation.
sudo ethtool -s eth0 speed 1000 duplex full autoneg onethtool -s DEVICE wol g — Enable Wake-on-LAN (magic packet).
sudo ethtool -s eth0 wol gethtool -s DEVICE wol d — Disable Wake-on-LAN.
sudo ethtool -s eth0 wol dStatistics
ethtool -S DEVICE — Show detailed NIC statistics (rx/tx packets, errors, drops, etc.).
ethtool -S eth0ethtool -S DEVICE | grep -i error — Show only error counters.
ethtool -S eth0 | grep -i errorethtool -S DEVICE | grep -i drop — Show only drop counters.
ethtool -S eth0 | grep -i dropethtool --phy-statistics DEVICE — Show physical-layer (PHY) statistics.
ethtool --phy-statistics eth0Offload Features
ethtool -k DEVICE — Show all offload and feature settings.
ethtool -k eth0ethtool -K DEVICE FEATURE on|off — Enable or disable a specific offload feature.
sudo ethtool -K eth0 tso offethtool -K DEVICE tx-checksum-ipv4 off — Disable TX IPv4 checksum offload.
sudo ethtool -K eth0 tx-checksum-ipv4 offethtool -K DEVICE gro off gso off tso off — Disable multiple offload features at once.
sudo ethtool -K eth0 gro off gso off tso offethtool -K DEVICE rx-checksumming on tx-checksumming on — Enable hardware checksum offload.
sudo ethtool -K eth0 rx-checksumming on tx-checksumming onRing Buffers & Coalescing
ethtool -g DEVICE — Show ring buffer sizes (current and maximum).
ethtool -g eth0ethtool -G DEVICE rx SIZE tx SIZE — Set ring buffer sizes. Larger buffers reduce drops under load.
sudo ethtool -G eth0 rx 4096 tx 4096ethtool -c DEVICE — Show interrupt coalescing settings.
ethtool -c eth0ethtool -C DEVICE rx-usecs USECS — Set RX interrupt coalescing delay in microseconds.
sudo ethtool -C eth0 rx-usecs 100ethtool -C DEVICE adaptive-rx on — Enable adaptive RX coalescing.
sudo ethtool -C eth0 adaptive-rx onQueues & Channels
ethtool -l DEVICE — Show the number of RX/TX queues (channels).
ethtool -l eth0ethtool -L DEVICE combined N — Set the number of combined RX/TX queues.
sudo ethtool -L eth0 combined 4ethtool -x DEVICE — Show the RX flow hash indirection table (RSS).
ethtool -x eth0ethtool -n DEVICE — Show flow classification rules (ntuple filters).
ethtool -n eth0Diagnostics
ethtool -t DEVICE — Run the NIC self-test (if supported by driver).
sudo ethtool -t eth0ethtool -t DEVICE online — Run online self-test (does not disrupt traffic).
sudo ethtool -t eth0 onlineethtool -p DEVICE SECONDS — Blink the NIC LED for physical identification.
sudo ethtool -p eth0 10ethtool --show-eee DEVICE — Show Energy Efficient Ethernet (EEE) settings.
ethtool --show-eee eth0ethtool -m DEVICE — Show transceiver module (SFP/SFP+) information.
ethtool -m eth0 Conclusion
ethtool is the essential diagnostic tool for Linux network cards: a few commands reveal link problems, let you tune buffers and queues for peak throughput, and activate hardware features like TSO or checksum offloading. For persistent settings across reboots, configure them via udev rules or NetworkManager.
Further Reading
- ethtool(8) – manual page – every option at a glance
- ethtool – Wikipedia – background and history
- ethtool – kernel documentation – Netlink API reference