Linux – Determine / Find Ethernet Connection Speed

last updated in Categories , , , , , ,

How do I determine my Ethernet connection speed under Debian Linux 4.0/5.0/6.0/7.0/8.0 server?

You need to use the ethtool command to display or change Ethernet card settings. It is used for querying settings of an ethernet device such as
=> Link speed
=> Auto negotiation
=> Coalescing settings
=> Change the rx/tx ring parameters
=> Setup new speed and much more


Most intelligent network devices use an autonegotiation protocol to communicate what media technologies they support, and then select the fastest mutually supported media technology.

How do I determine ethernet connection speed?

Type the following command to get speed for eth0:
$ ethtool eth0 | less
$ ethtool eth0 | grep -i speed
Sample outputs:

Fig.01: Ubuntu Linux verify the speed of my NIC (network card)
Fig.01: Ubuntu Linux verify the speed of my NIC (network card)

You can also use the following two commands:
$ dmesg | grep eth0 | grep up
$ dmesg | grep bond0 | grep up

OR use the command line utility called mii-tool to checks or sets the status of a network interface’s Media Independent Interface (MII) unit:
$ mii-tool -v eth0


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

12 comment

  1. Is there any similar functionality on Windows?
    I want to see the Duplex and Speed on Windows as well.

    1. yes you have to go to your Ethernet card properties which can me done through device manger and there select advance option and change the LAN link speed either to 10 or 100 Mbps full or half duplex

  2. I’m using Ubuntu 8.10 alpha 3 32bits.
    I tried “ethtool eth0 | grep -i speed ” but needed to add sudo to execute it.
    Without sudo:
    Cannot get device settings: Operation not permitted
    Cannot get wake-on-lan settings: Operation not permitted
    Cannot get link status: Operation not permitted
    jp@jp-desktop810:~$ sudo ethtool eth0 | grep -i speed
    Speed: 100Mb/s

  3. Talk about difficult to find out what my nic link speed is with linux (fedora 8) …
    I would have expected “settings/network or network status” to show me.

    On windows just look at the properties/status of the network card object and it shows link speed, duplex and real time packet count.

  4. On Windows, you type in a fairly long command to get it, instead of just “ethtool “, which is shorter. You’re comparing the graphical tools available on Windows to the command line of Linux. Apples and oranges.

  5. Tried this on ubuntu, uhm, 8 or something (was some old usb livestick i often use to revive data from dead computers and laptops).
    I had to install the ethtool first, but a permission denied. This command worked though:
    sudo apt-get install ethtool
    Then I tried the first command in this article, which gave me no info and I didnĀ“t know howto get out of the program. Closed the terminal and opened it up again, then ran the second command. Permission denied. But a sudo !! did the trick. In short, this would work after doing the apt-get-install:
    sudo ethtool eth0 | grep -i speed

    Hope this helps others out who are just as newb as me :)

  6. @lucb1e

    apt-get and ethtool are administrator tools hence the need to use sudo before the actual commands. Users are normally not able to use them as they can affect the system and possibly cause major failures in connectivty or software.

  7. If you don’t have ethtool installed, you may have mii-tool:

    # mii-tool
    eth0: negotiated 1000baseT-FD flow-control, link ok
    eth1: negotiated 100baseTx-FD flow-control, link ok

  8. Can any one tell me ,How to get Ethernet Link Speed(through command prompt i e Terminal ) in MAC OS X ?
    Thank you

    1. If your interface name is en6, enter:
      ifconfig en6 | grep media
      media: autoselect (100baseTX )
      If your interface name is en0, enter:
      ifconfig en0 | grep media

    Still, have a question? Get help on our forum!