Linux ethtool Command: Inspect Network Link and Driver Settings

ethtool queries or sets the link speed, auto-negotiation, driver, and statistics information of an Ethernet interface. It is useful for checking the link status when the physical connection is unstable.

What is the ethtool command?

Speed, Duplex, and Link detected show the results of negotiation between the device and the switch. Supported items vary depending on the NIC, driver, and virtualization environment. Even if the link is detected, it does not mean that IP settings, routing, DNS, or the peer service are functioning properly.

Basic syntax

ethtool [options] interface

The installed implementation and options may vary by distribution. Check the description for the current system with man ethtool.

Examples

Checking link status

Find the actual interface name using ip link show and then query it.

ethtool enp1s0

Driver information

Check the driver name and firmware version.

ethtool -i enp1s0

Interface Statistics

Check error and drop counters provided by the driver.

ethtool -S enp1s0

Distinguishing Link Speed and Connection Status

ethtool retrieves information about a network interface's link speed, duplex mode, and driver-supported features. Check the interface name with ip link.

sudo ethtool eth0

Part of the example output (values may differ or be empty on virtual devices):

Speed: 1000Mb/s
Duplex: Full
Link detected: yes

Link detected: yes means that a physical or virtual link is detected, but it does not indicate that the IP address, default route, DNS, or internet connection is working. You can check the driver with ethtool -i eth0. Options to change link settings may disconnect the connection, so distinguish between commands for viewing and changing.

Main Options and Format

Options/Format Description
-i Display driver and firmware information.
-S Display NIC and driver statistics.
-k Display the status of features such as offload.
-a Display flow control settings.
-s Change link settings such as speed and duplex. Caution is needed.

Precautions when using

If speed or auto-negotiation is changed on the remote server using ethtool -s, the connection may be disconnected. Record the current values with the query command and compare them with the switch port settings before making changes. Some physical link values may not be provided or may have different meanings on virtual interfaces.

Frequently Asked Questions

Link detected: If yes, does it mean the network is normal?

It is closer to meaning that a physical link is detected. IP addresses, routing, DNS, and service responses need to be checked separately.

Official Documentation

The exact behavior of the option and differences depending on implementation can be found in the official documentation related to ethtool.

More in This Category
Linux Tutorial / Find Files and Commands with find, locate, which, and whereis

Linux Tutorial / Find Files and Commands with find, locate, which, and whereis

Compare find and locate for file searches, then use which, whereis, and Bash type to distinguish executable paths from shell command resolution.

Linux parted Command: Inspect and Manage Partitions

Linux parted Command: Inspect and Manage Partitions

Learn how to inspect and Manage Partitions with the Linux parted command, including practical examples, key options, and important precautions.

Linux ip Command: Inspect and Configure Network Interfaces and Routes

Linux ip Command: Inspect and Configure Network Interfaces and Routes

Learn how to inspect and Configure Network Interfaces and Routes with the Linux ip command, including practical examples, key options, and important precautions.

Linux csplit Command: Split Files at Lines or Patterns

Linux csplit Command: Split Files at Lines or Patterns

Learn how to split Files at Lines or Patterns with the Linux csplit command, including practical examples, key options, and important precautions.

Linux Tutorial / Manage Files and Directories: Create, Copy, Move, and Delete

Linux Tutorial / Manage Files and Directories: Create, Copy, Move, and Delete

Practice creating, copying, renaming, moving, and deleting files and directories in a dedicated folder while checking each result safely.

Linux man Command: Read Command Manual Pages

Linux man Command: Read Command Manual Pages

Learn how to use the Linux man command to find and read command manuals, sections, options, and related pages, with essential options, practical examples, output interpretation, and common troubleshooting tips.

Linux env Command: Display Variables and Run Commands with a Custom Environment

Linux env Command: Display Variables and Run Commands with a Custom Environment

Learn how to use the Linux env command to display environment variables or run a command with temporary variable values, with essential options, practical examples, output interpretation, and common troubleshooting tips.

Linux ssh Command: Connect to a Remote Host Securely

Linux ssh Command: Connect to a Remote Host Securely

Learn how to connect to a Remote Host Securely with the Linux ssh command, including practical examples, key options, and important precautions.

Linux groups Command: Show a User's Group Memberships

Linux groups Command: Show a User's Group Memberships

Learn how to show a User's Group Memberships with the Linux groups command, including practical examples, key options, and important precautions.

Linux umask Command: Control Default File Permissions

Linux umask Command: Control Default File Permissions

Learn how to control Default File Permissions with the Linux umask command, including practical examples, key options, and important precautions.