ethtool is useful utility used for Network Interface Card configuration. It provides simple and fast way to get and set configuration about IP address, interface speed, interface duplex or half duplex etc.
List and Printer Interface Properties
We will start with simply listing given network interface properties. We will see that there is a lot of network interface properties which is outputted by
ethtool . For this operation we do not need to provide any option. We will just provide the interface name which is
ens33 in this case.
$ ethtool ens33
We listed following properties of network interface
Supported link modesshows supported network speed and duplex modes.
Supports auto-negotitionshows whether interface supports auto set link mode.
Speedshows currently set network interface speed.
Duplexshows currently set duplex status
Auto-negotiationshows current auto-negotiate mode.
List and Print Network Interface Driver Settings
Network Interfaces are managed and used with drivers. Drivers are operating system level modules which is the same for network interface cards with same chipset. We can list currently used driver of given network interface card with the
-i option and the interface name.
$ ethtool -i ens33
List and Print Auto-negotiation of Network Interface Driver
As stated previously auto-negotiation is used to determine link speed of the network interface transmitter. The other end of the link is another factor for link speed. We can enable auto-negotiation for talk the link speed with the remote host and set the best speed for the link. We can print current auto-negotiation setting with the
-a and network interface name.
$ ethtool -a ens33
Display Statistics of The Network Interface
Network statistics provides useful information about network utilization of the system. Statistics provides information like rx_packets, tx_packets,rx_bytes,tx_bytes etc. We can list network interfaces statistics with
-S option and the interface name.
$ ethtool -S ens33
Set Auto-Negotiation of Network Interface
We can change auto-negotiation of the given network interface card. We will use
-s option with
autoneg off parameter to disable or
autoneg on to enable. We need root privileges becauase of system level chages.
$ sudo ethtool -s ens33 autoneg on
$ sudo ethtool -s ens33 autoneg off
Set Speed of Network Interface
We can change the speed of the network interface card. This can be useful if remote interface do not supports auto-negotiation or there are link speed related problems. We will use
-s option with
speed 100 to set speed to 100Mbps. Also disabling auto-negotiation is good practice.
$ sudo ethtool -s ens33 speed 100 autoneg off
Blink Specified Network Interface Led
As we know network interface cards have some leds to give information about traffic and link. We can blink these leds by using
ethtool. This may be useful if we need to blink leds to specify network interface card. We will use
-p for this operation.
$ sudo ethtool -p ens33
Make Changes and Configurations Permanent
After a system reboot all configurations will be reset. But we can make these configuration permanent in order to save configuration time. Just add following lines to the related operation system configuration file.
Ubuntu, Debian, Mint, Kali
post-up /sbin/ethtool -s duplex full speed 100
Fedora, CentOS, RHEL
# File /etc/sysconfig/network/scripts/ens33
/sbin/ethtool -s duplex full speed 100