How To Change Speed & Duplex of Ethernet Card in Linux with Ethtool Command?

Ethernet cards, also known as network interface cards (NICs), are hardware components that allow computers to connect to networks. These cards enable data transmission between devices by converting digital signals from a computer into electrical signals that can be sent over the network's physical medium, such as copper wires or fiber-optic cables. Ethernet cards are essential for accessing the internet, file sharing and printing in a local network.

Understanding Ethtool Command

Ethtool is a Linux command-line utility that allows users to query and change various network interface card (NIC) settings. It provides detailed information about the NICs installed in a system, including speed, duplex, auto-negotiation, driver information, and more. Additionally, it can be used to configure many of these settings according to user requirements.

Basic Syntax and Common Options

The basic syntax for using the ethtool command is as follows

ethtool [options] [device]

Common options include

  • -i displays driver information for a particular device

  • -s sets speed and duplex settings

  • -S displays statistics for a particular device

  • -p enables identification LED on an ethernet port

Ethtool supports various types of Ethernet adapters including 10/100/1000Mbps, some wireless network adapters, and virtual interfaces created by VLAN tagging or bridge configurations.

Checking Current Speed and Duplex Settings

Before making any changes to the speed and duplex settings, it is important to check the current configuration of the Ethernet card. To check the current speed and duplex settings of an Ethernet card, run

sudo ethtool eth0

This command will display detailed information about the Ethernet card, including its speed, duplex mode, link status, and more.

Sample Output

Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Auto-negotiation: on
        Supported Wake-on: pumbg
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        Link detected: yes

The most important information includes

  • Speed The current speed (in Mbps) at which the Ethernet card is operating

  • Duplex The current duplex mode (either half or full)

  • Auto-negotiation Whether auto-negotiation is enabled

  • Link detected Whether a valid link has been detected on this interface

Changing Speed and Duplex Settings

Auto-negotiation vs Manual Configuration

Auto-negotiation allows devices on the same network to automatically detect and configure their respective speeds and duplex modes. This is usually sufficient for most networks as it ensures that all devices can communicate without any issues.

However, in some cases, auto-negotiation may not work properly due to cable quality or device compatibility issues. In such situations, manual configuration may be required.

Setting Speed Manually

To set a specific speed, use the following command

sudo ethtool -s eth0 speed 100 autoneg off

This sets the speed to 100Mbps and disables auto-negotiation. Replace eth0 with your interface name and 100 with your desired speed (10, 100, or 1000).

Setting Duplex Mode

Duplex mode determines whether a connection can transmit and receive data simultaneously or only one at a time

  • Half-duplex allows transmission and reception of data, but not simultaneously

  • Full-duplex allows simultaneous transmission and reception of data, increasing network performance

To configure duplex mode, use

sudo ethtool -s eth0 duplex full autoneg off

Replace full with half if half-duplex is desired.

Combined Speed and Duplex Configuration

You can set both speed and duplex in a single command

sudo ethtool -s eth0 speed 1000 duplex full autoneg off

Verifying Changes

After making changes, verify them by running

sudo ethtool eth0

This will display the current configuration, allowing you to confirm that your changes have been applied successfully.

Re-enabling Auto-negotiation

To re-enable auto-negotiation, use

sudo ethtool -s eth0 autoneg on

This will restore automatic speed and duplex negotiation between devices.

Common Use Cases

  • Legacy device compatibility Older devices may require specific speed/duplex settings

  • Troubleshooting network issues Forcing specific settings can help diagnose problems

  • Performance optimization Manual configuration may be needed for specialized network setups

Conclusion

Ethtool is a powerful utility for configuring Ethernet card speed and duplex settings in Linux. While auto-negotiation works well in most scenarios, manual configuration can be essential for troubleshooting or working with legacy equipment. Always verify changes and test thoroughly before implementing in production environments.

Updated on: 2026-03-17T09:01:39+05:30

7K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements