- How do I verify the speed of my NIC?
- 9 Answers 9
- How can I verify the speed of my NIC in ubuntu?
- 3 Answers 3
- Как проверить скорость моей сетевой карты в Linux?
- Различные методы проверки скорости сетевой карты в Linux
- Способ № 1: Использование «ethtool»
- Способ № 2: использование команды «dmesg»
- Способ № 3: Использование «mii-tool»
- Вывод
- Как посмотреть скорость и дуплекс сетевой карты в Linux? кратко
- ПРОСМОТР СТАТИСТИКИ ИНТЕРФЕЙСА
- Вау!! 😲 Ты еще не читал? Это зря!
How do I verify the speed of my NIC?
I just installed a new gigabit network interface card (NIC) in Linux. How do I tell if it is really set to gigabit speeds? I see ethtool has an option to set the speed, but I can’t seem to figure out how to report its current speed.
9 Answers 9
Just use a command like: ethtool eth0 to get the needed info. Ex:
$ sudo ethtool eth0 | grep Speed
If you want to have the full list of all your interfaces with theyr speed, you can use this command: for i in $(netstat -i | cut -f1 -d» » | tail -n+3) ; do echo «$i: $(ethtool «$i» | grep Speed | sed ‘s/Speed://g’)» ; done
This only gives you the negotiated speed of your current network configuration (hence your ethernet port must be connected). The speed indicated also depends on the cable and the other end of the connection. This does NOT give the max supported speed of the NIC on your PC. For that, you need to look under Supported link modes also shown in ethtool . 1000baseT means gigabit ethernet, etc.
It is possible to use the information from the kernel when ethtool is missing:
Example for interface named eth0:
@Christian Yes it is thanks, but only on some of my interfaces which I’ve read is expected so I’m all good
What does it mean if cat /sys/class/net/eth1/speed shows 10000 but «ip a» does only show 1000. Can someone clarify?
It seems /sys/class interface was right. Dmesg also lists 100Mbit/s # dmesg|grep duplex [ 5.417536] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1 . I am running on a special purpose OS build without ethtool .
NOTE: the man page for mii-tool has this disclaimer:
This program is obsolete. For replacement check ethtool.
Use mii-tool to watch the negotiated network speed.
eth0: no link eth1: negotiated 100baseTx-FD, link ok
For Debian based systems, ethtool is not installed by default. But mii-tool is, as part of the essential «net-tools» package. So this was the best solution for me.
I see this in the man page for mii-tool «This program is obsolete. Valid media are only 100baseT4, 100baseTx-FD,100baseTx-HD, 10baseT-FD and 10baseT-HD ethernet cards. For replace-ment check ethtool.» 😐
While mii-tool reports ‘negotiated 100baseTx-FD flow-control, link ok’, both ethtool and cat /sys/class/net/eth…/speed agree on ‘1000Mb/s Full duplex’. This is for a USB 3.0 controller, namely ASIX AX88179 (‘ax88179_178a’ driver for Linux).
There are some great answers here, I just wanted to add a few more options.
1. I know this is not quite what you asked (read on for other ways). But if you want to know the real world performance of your NIC, rather than what your computer says it should be, you can use iperf. I usually do this — because you never know. I bought a 1Gb NIC recently that that only transferred at 672Mbps but it’s uplink was 1Gb. Good thing I checked.
On computer one, run iperf in server mode:
On the other, run iperf in client mode:
If you want to see the full duplex speed, try this instead:
Substitute 192.168.0.10 for the servers IP address
2. On Ubuntu systems, /var/log/kern.log has limited logging of kernel events. It will record link speed and status of a NIC when it changes. I’m sure other distributions probably do something similar or can be setup to do so.
$ tail -n 300 /var/log/kern.log.1 | grep slave0 Aug 28 12:54:04 haze kernel: [ 9452.766248] e1000e: slave0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx Aug 28 12:54:41 haze NetworkManager[921]: [1472403281.8486] device (slave0): link disconnected Aug 28 12:54:41 haze kernel: [ 9489.898476] e1000e: slave0 NIC Link is Down
3. You’ll probably never, ever need to go this far, but you can write c code that to get the speed. Tested working and root is not required.
#include #include #include #include #include #include #include #include #include int main (int argc, char **argv) < int sock; struct ifreq ifr; struct ethtool_cmd edata; int rc; sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP); if (sock < 0) < perror("socket"); exit(1); >strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name)); ifr.ifr_data = &edata; edata.cmd = ETHTOOL_GSET; rc = ioctl(sock, SIOCETHTOOL, &ifr); if (rc < 0) < perror("ioctl"); exit(1); >switch (ethtool_cmd_speed(&edata)) < case SPEED_10: printf("10Mbps\n"); break; case SPEED_100: printf("100Mbps\n"); break; case SPEED_1000: printf("1Gbps\n"); break; case SPEED_2500: printf("2.5Gbps\n"); break; case SPEED_10000: printf("10Gbps\n"); break; default: printf("Speed returned is %d\n", edata.speed); >return (0); >
Using iperf as you stated is the answer if one wants to get current speed and not simply the nic potential speed.
As Khaled mentioned, you should be able to run ethtool with just the interface as an argument. This will list the supported speeds, the advertised speeds, the current speed, and a bunch of other things too:
Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) Link detected: yes
You can also run dmesg , and grep for your interface, but this might not work if your system has been running for a long time and the current buffer no longer has that information (in that case, you’ll have to grep the older /var/log/dmesg.* files):
dmesg |grep eth0 [ 2.867481] e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection [ 19.429444] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 19.431555] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None [ 19.449341] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 26.972379] e1000: eth0: e1000_set_tso: TSO is Enabled [ 29.920458] eth0: no IPv6 routers present
How can I verify the speed of my NIC in ubuntu?
Is there a command that I can verify by its output the speed of my NIC and some information about its characteristics such as duplex full or half .
3 Answers 3
Suppose your NIC name eth0 :
You can verify the speed and some informations by three Commands :
First Command :
Second Command :
FD : full duplex , Logic that enables concurrent sending and receiving. This is usually desirable and enabled when your computer is connected to a switch.
HD : half duplex , his logic requires a card to only send or receive at a single point of time. When your machine is connected to a Hub, it auto-negotiates itself and uses half duplex to avoid collisions.
Third command :
ethtool eth0 ethtool - Display or change ethernet card settings
sudo apt-get install ethtool
Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
Как проверить скорость моей сетевой карты в Linux?
Добавить в избранное
Главное меню » Linux » Как проверить скорость моей сетевой карты в Linux?
« Все мы знаем, что сетевая карта (NIC) действует как мост между компьютерной системой и сетью, к которой эта система подключена. NIC имеет связанную скорость, которая определяет качество вашего взаимодействия с сетью. Поэтому в этом руководстве мы постараемся изучить методы, с помощью которых мы можем проверить скорость сетевой карты в Linux».
Различные методы проверки скорости сетевой карты в Linux
Существуют различные методы проверки скорости сетевой карты (NIC) в системе Linux, которые обсуждаются ниже:
Способ № 1: Использование «ethtool»
В первом методе мы будем использовать утилиту «ethtool» для проверки скорости сетевой карты. Однако, если эта утилита еще не установлена в вашей системе Linux, вам придется сначала установить ее с помощью следующей команды:
После того, как эта утилита установлена в вашей системе, вам необходимо проверить имя интерфейса сетевого интерфейса, скорость которого вы хотите узнать. Для этого вам нужно будет запустить команду, приведенную ниже:
Эта команда отобразит информацию обо всех сетевых интерфейсах вашей системы, как показано на следующем рисунке. Мы выбрали сетевой интерфейс с именем «enp0s3» для демонстрации этого метода, а также двух других методов.
Теперь, чтобы проверить скорость указанной сетевой карты, мы выполним команду, показанную ниже:
Скорость нашего указанного сетевого адаптера выделена на следующем изображении:
Однако вы можете видеть, что вывод вышеупомянутой команды слишком длинный. Поэтому, если вы хотите ограничить этот вывод только скоростью сетевой карты, вам придется изменить его, как показано ниже:
$ sudo ethtool enp0s3 | grep –i speed
Из следующего вывода вы можете визуализировать, что теперь на терминале отображается только скорость NIC.
Способ № 2: использование команды «dmesg»
В этом методе мы будем использовать встроенную команду «dmesg» в Linux для проверки скорости сетевой карты, как показано ниже:
$ dmesg | grep enp0s3 | grep up
Скорость указанной сетевой карты выделена на следующем изображении:
Способ № 3: Использование «mii-tool»
Теперь воспользуемся утилитой mii-tool для проверки скорости сетевой карты в Linux. Эта утилита находится внутри пакета «net-tools»; поэтому сначала мы установим его с помощью команды, показанной ниже:
$ sudo apt install net-tools
После установки этого пакета в вашей системе вам нужно будет выполнить следующую команду, чтобы проверить скорость сетевой карты:
Скорость указанной сетевой карты нашей системы Linux выделена на изображении ниже:
Вывод
С помощью этой полезной статьи вы можете мгновенно изучить три различных метода проверки скорости сетевой карты в Linux. После изучения этих методов вы сами выбираете, какой метод выбрать, чтобы удовлетворить ваши потребности.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как посмотреть скорость и дуплекс сетевой карты в Linux? кратко
Вот работаем мы и работаем в Linux, через ifconfig настраиваем IP-адреса да маски и даже посмотреть — есть ли линк через него можем. Но вот незадача — в отличие от FreeBSD, в Linux команда ifconfig не показывает одного из важнейших параметров: режим работы сетевой карты — т.е. ее скорость и дуплекс.
Как же посмотреть скорость сетевого интерфейса и дуплекс?
Вывод покажет нам имя сетевой карты устройства. Чтобы увидеть текущие значения скорости сетевого линка в Linux, а также — в полнодуплексном ли режиме оно работает или нет — нам понадобится утилита ethtool. Из коробки ее может не быть (вот такие приколы), потому следует поставить.
После этого запускаем ее с указанием — текущая скорость какой сетевой карты нас интересует и глядим в вывод:
$ sudo ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: yes
Это и есть — искомые текущая скорость сетевого подключения и его дуплекс.
ПРОСМОТР СТАТИСТИКИ ИНТЕРФЕЙСА
sudo ethtool -S имя_устройства