To control and see the settings of wired Ethernet devices you need to use the ethtool command. It can be used to:
- Get identification and diagnostic information
- Get extended device statistics
- Control speed, duplex, autonegotiation and flow control for Ethernet devices
- Control checksum offload and other hardware offload features
- Control DMA ring sizes and interrupt moderation
- Control receive queue selection for multiqueue devices
- Upgrade firmware in flash memory and much more
Install ethtool
Type the following apt-get command to install ethtool utility under Debian or Ubuntu Linux:
$ sudo apt-get update
$ sudo apt-get install ethtool
OR
# apt-get update
# apt-get install ethtool
Sample outputs:
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: ethtool 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 99.5 kB of archives. After this operation, 296 kB of additional disk space will be used. Get:1 http://mirror.anl.gov/debian/ wheezy/main ethtool i386 1:3.4.2-1 [99.5 kB] Fetched 99.5 kB in 2s (45.6 kB/s) Selecting previously unselected package ethtool. (Reading database ... 23726 files and directories currently installed.) Unpacking ethtool (from .../ethtool_1%3a3.4.2-1_i386.deb) ... Processing triggers for man-db ... Setting up ethtool (1:3.4.2-1) ...
Syntax
The syntax is:
ethtool deviceName ethtool [options] deviceName ethtool eth0
Examples
To see standard information about device eth0, enter:
# ethtool eth0
Sample outputs:
Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Link partner advertised pause frame use: Symmetric Receive-only Link partner advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x00000001 (1) drv Link detected: yes
Find out driver name associated driver information for eth0
# ethtool -i eth0
Sample outputs:
driver: via-rhine version: 1.5.0 firmware-version: bus-info: 0000:00:06.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no
Find out statistics for NIC and driver
# ethtool -S eth1
# ethtool --statistics eth0
Sample outputs:
NIC statistics:
rx_packets: 108048475
tx_packets: 125002612
rx_bytes: 17446338197
tx_bytes: 113281003056
rx_broadcast: 83067
tx_broadcast: 1329
rx_multicast: 3
tx_multicast: 9
rx_errors: 0
tx_errors: 0
tx_dropped: 0
multicast: 3
collisions: 0
rx_length_errors: 0
rx_over_errors: 0
rx_crc_errors: 0
rx_frame_errors: 0
rx_no_buffer_count: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_window_errors: 0
tx_abort_late_coll: 0
tx_deferred_ok: 0
tx_single_coll_ok: 0
tx_multi_coll_ok: 0
tx_timeout_count: 0
tx_restart_queue: 2367
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
tx_tcp_seg_good: 0
tx_tcp_seg_failed: 0
rx_flow_control_xon: 0
rx_flow_control_xoff: 0
tx_flow_control_xon: 0
tx_flow_control_xoff: 0
rx_long_byte_count: 17446338197
rx_csum_offload_good: 107876452
rx_csum_offload_errors: 2386
rx_header_split: 0
alloc_rx_buff_failed: 0
tx_smbus: 0
rx_smbus: 0
dropped_smbus: 0
rx_dma_failed: 0
tx_dma_failed: 0
Setup eth0 negotiated speed
# ethtool -s eth0 speed 100 duplex full
# ethtool --change eth0 speed 10 duplex half
# ethtool eth0
# ethtool eth0 | egrep -i 'speed|duplex'
Sample outputs:
Speed: 10Mb/s Duplex: Half
See ethtool command man page for more inforation:
$ man ethtool
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop













{ 2 comments… read them below or add one }
Hi,
Very nice article
Thanks…
nice.