A
cd ..
Network

Ethtool Network Interface

Configure and query network interface settings with ethtool.

2025-10-18
ethtool, networking, performance

Show interface info

ethtool eth0

Show driver info

ethtool -i eth0

Show statistics

ethtool -S eth0

Show ring buffer settings

ethtool -g eth0

Set ring buffer size

sudo ethtool -G eth0 rx 4096 tx 4096

Show link status

ethtool eth0 | grep "Link detected"

Set speed and duplex

sudo ethtool -s eth0 speed 1000 duplex full autoneg off

Enable auto-negotiation

sudo ethtool -s eth0 autoneg on

Show pause parameters

ethtool -a eth0

Enable flow control

sudo ethtool -A eth0 rx on tx on

Show offload settings

ethtool -k eth0

Enable TCP segmentation offload

sudo ethtool -K eth0 tso on

Disable generic segmentation offload

sudo ethtool -K eth0 gso off

Enable rx/tx checksumming

sudo ethtool -K eth0 rx on tx on

Show EEE settings

ethtool --show-eee eth0

Disable EEE

sudo ethtool --set-eee eth0 eee off

Identify interface (blink LED)

sudo ethtool -p eth0 10

Show cable test

sudo ethtool --cable-test eth0

Reset interface

sudo ethtool -r eth0

Show Wake-on-LAN

ethtool eth0 | grep "Wake-on"

Enable Wake-on-LAN

sudo ethtool -s eth0 wol g

Disable Wake-on-LAN

sudo ethtool -s eth0 wol d

Show coalesce settings

ethtool -c eth0

Set interrupt coalescing

sudo ethtool -C eth0 rx-usecs 50 tx-usecs 50

Show channel settings

ethtool -l eth0

Set channel count

sudo ethtool -L eth0 combined 4

Show private flags

ethtool --show-priv-flags eth0

Set private flag

sudo ethtool --set-priv-flags eth0 flag-name on

Show firmware version

ethtool -i eth0 | grep firmware

Test interface

sudo ethtool -t eth0

Offline test

sudo ethtool -t eth0 offline

Show PHY statistics

ethtool --phy-statistics eth0

Common speed settings

# 100 Mbps full duplex
sudo ethtool -s eth0 speed 100 duplex full

# 1 Gbps full duplex
sudo ethtool -s eth0 speed 1000 duplex full

# 10 Gbps
sudo ethtool -s eth0 speed 10000 duplex full

# Auto
sudo ethtool -s eth0 autoneg on

Persistent settings (systemd)

Create /etc/systemd/network/10-eth0.link:

[Match]
MACAddress=00:11:22:33:44:55

[Link]
WakeOnLan=magic

Persistent settings (NetworkManager)

sudo nmcli connection modify eth0 ethtool.feature-gso off
sudo nmcli connection modify eth0 ethtool.feature-tso off

Check for errors

ethtool -S eth0 | grep -i error

Check for drops

ethtool -S eth0 | grep -i drop

Troubleshooting no link

# Check link
ethtool eth0 | grep "Link detected"

# Check cable
sudo ethtool --cable-test eth0

# Try renegotiate
sudo ethtool -r eth0

# Check driver
ethtool -i eth0

Performance tuning

# Increase ring buffers
sudo ethtool -G eth0 rx 4096 tx 4096

# Enable offloads
sudo ethtool -K eth0 tso on gso on sg on

# Adjust interrupt coalescing
sudo ethtool -C eth0 rx-usecs 50

# Increase channels
sudo ethtool -L eth0 combined 4

Common offload features

rx-checksumming     # RX checksum offload
tx-checksumming     # TX checksum offload
scatter-gather      # Scatter-gather I/O
tcp-segmentation-offload  # TCP segmentation
generic-segmentation-offload  # Generic segmentation
generic-receive-offload  # Generic receive
large-receive-offload  # Large receive

Was this useful?

Share with your team

Browse More