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 eth0

ethtool -i DEVICE — Show driver and firmware information.

ethtool -i eth0

ethtool -d DEVICE — Dump hardware register values.

sudo ethtool -d eth0

ethtool -P DEVICE — Show the permanent (factory) MAC address.

ethtool -P eth0

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 off

ethtool -s DEVICE autoneg on — Enable auto-negotiation.

sudo ethtool -s eth0 autoneg on

ethtool -s DEVICE speed SPEED duplex full autoneg on — Advertise a specific speed with auto-negotiation.

sudo ethtool -s eth0 speed 1000 duplex full autoneg on

ethtool -s DEVICE wol g — Enable Wake-on-LAN (magic packet).

sudo ethtool -s eth0 wol g

ethtool -s DEVICE wol d — Disable Wake-on-LAN.

sudo ethtool -s eth0 wol d

Statistics

ethtool -S DEVICE — Show detailed NIC statistics (rx/tx packets, errors, drops, etc.).

ethtool -S eth0

ethtool -S DEVICE | grep -i error — Show only error counters.

ethtool -S eth0 | grep -i error

ethtool -S DEVICE | grep -i drop — Show only drop counters.

ethtool -S eth0 | grep -i drop

ethtool --phy-statistics DEVICE — Show physical-layer (PHY) statistics.

ethtool --phy-statistics eth0

Offload Features

ethtool -k DEVICE — Show all offload and feature settings.

ethtool -k eth0

ethtool -K DEVICE FEATURE on|off — Enable or disable a specific offload feature.

sudo ethtool -K eth0 tso off

ethtool -K DEVICE tx-checksum-ipv4 off — Disable TX IPv4 checksum offload.

sudo ethtool -K eth0 tx-checksum-ipv4 off

ethtool -K DEVICE gro off gso off tso off — Disable multiple offload features at once.

sudo ethtool -K eth0 gro off gso off tso off

ethtool -K DEVICE rx-checksumming on tx-checksumming on — Enable hardware checksum offload.

sudo ethtool -K eth0 rx-checksumming on tx-checksumming on

Ring Buffers & Coalescing

ethtool -g DEVICE — Show ring buffer sizes (current and maximum).

ethtool -g eth0

ethtool -G DEVICE rx SIZE tx SIZE — Set ring buffer sizes. Larger buffers reduce drops under load.

sudo ethtool -G eth0 rx 4096 tx 4096

ethtool -c DEVICE — Show interrupt coalescing settings.

ethtool -c eth0

ethtool -C DEVICE rx-usecs USECS — Set RX interrupt coalescing delay in microseconds.

sudo ethtool -C eth0 rx-usecs 100

ethtool -C DEVICE adaptive-rx on — Enable adaptive RX coalescing.

sudo ethtool -C eth0 adaptive-rx on

Queues & Channels

ethtool -l DEVICE — Show the number of RX/TX queues (channels).

ethtool -l eth0

ethtool -L DEVICE combined N — Set the number of combined RX/TX queues.

sudo ethtool -L eth0 combined 4

ethtool -x DEVICE — Show the RX flow hash indirection table (RSS).

ethtool -x eth0

ethtool -n DEVICE — Show flow classification rules (ntuple filters).

ethtool -n eth0

Diagnostics

ethtool -t DEVICE — Run the NIC self-test (if supported by driver).

sudo ethtool -t eth0

ethtool -t DEVICE online — Run online self-test (does not disrupt traffic).

sudo ethtool -t eth0 online

ethtool -p DEVICE SECONDS — Blink the NIC LED for physical identification.

sudo ethtool -p eth0 10

ethtool --show-eee DEVICE — Show Energy Efficient Ethernet (EEE) settings.

ethtool --show-eee eth0

ethtool -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

  • ip – manage network interfaces and routes
  • ss – display socket statistics
  • netstat – network connections and statistics