Linux – Determine / Find Ethernet Connection Speed

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)

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
🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 12 comments so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersdf duf ncdu pydf
File Managementcat cp mkdir tree
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Modern utilitiesbat exa
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg glances gtop jobs killall kill pidof pstree pwdx time vtop
Searchingag grep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
12 comments… add one
  • ashwani Jul 10, 2008 @ 9:47

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

    • gopi Nov 9, 2010 @ 8:22

      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

  • Juan Pedro Sanchez Aug 26, 2008 @ 15:06

    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

  • bikaron Sep 3, 2008 @ 1:24

    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.

  • Yfrwlf Jul 29, 2009 @ 8:21

    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.

  • lucb1e Mar 9, 2011 @ 12:26

    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 :)

  • cali Aug 17, 2011 @ 17:40


    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.

  • Ian B Mar 8, 2012 @ 17:10

    On amazon Linux on EC2, ethtool only says whether a link is detected or not.

  • biplab Nov 28, 2012 @ 11:20

    ifconfig -a
    cat /proc/net/bonding/bond0
    cat /proc/net/bonding/bond1

  • rduke15 Jul 6, 2014 @ 13:24

    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

  • Karthik Sep 17, 2014 @ 9:06

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

    • 🐧 Vivek Gite Jul 12, 2016 @ 17:23

      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

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum