- Как посмотреть скорость и дуплекс сетевой карты в Linux? кратко
- ПРОСМОТР СТАТИСТИКИ ИНТЕРФЕЙСА
- Вау!! 😲 Ты еще не читал? Это зря!
- How to Check Link Speed in Ubuntu
- Method 1: Using the IP Command
- Method 2: Ask the Kernel
- Method 3: Network Manager
- Method 4: Mii-Tool/Ethtool
- Conclusion
- About the author
- John Otieno
- Ethtool: как изменить скорость, дуплекс и находить неполадки сетевой карты в Linux
- Что такое полудуплекс, полный дуплекс и автосогласование?
- Что такое дуплексное несоответствие?
- Как использовать команду Ethtool для настройки параметров сетевого адаптера
- Изменение настроек сетевого адаптера
- Сохранение настроек
- Физическое расположение конкретного сетевого адаптера
- Тестирование сетевой карты
- Информация о драйвере
- Заключение
Как посмотреть скорость и дуплекс сетевой карты в 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 имя_устройства
Вау!! 😲 Ты еще не читал? Это зря!
How to Check Link Speed in Ubuntu
The link speed in a basic network refers to the maximum speed that a device can communicate with the wireless router. The link speed is expressed in bits/second and may vary depending on the device and the wireless access point.
In most cases, you will find speeds like 144.4Mbps, 300Mbps, 100Mbps for fast ethernets, or 1000Mbps for devices such as Gigabit ethernets.
I will not dive into how the various layers of the TCP/IP process the speeds. Instead, we’ll focus on how to check for link speed on Ubuntu.
Method 1: Using the IP Command
The very first method to get the link speed of your interface is using the IP command.
We are all familiar with the IP command in Linux; it is part of the net-tools package. It allows us to configure network interfaces in the Linux system, including bringing interfaces up and down, setting IP addresses, netmasks, routes, and more. Thus, it is a powerful tool for network administrators.
To get the link speed of your interface, use the ip command followed by grep as:
In the above command, we grep for qlen, which shows the transmit queue length of the network interface in packets.
The above shows the interfaces, loopback, and eth0, which is an ethernet adapter.
Method 2: Ask the Kernel
As you guessed, in this method, we will view the interface speed directly from the kernel. The network interface information is stored in the /sys/classes/net/[interface_name]/speed.
All we need to do is query the file using a cat as:
Method 3: Network Manager
The simplest and most common is to look at the network interface in the network manager GUI tool.
In Ubuntu, to get the Link speed of the ethernet interface. Click on the Network connection action in the top bar and select “Wired Settings.”
This should take you to the network management window that shows the link speed as shown below:
Method 4: Mii-Tool/Ethtool
The next method is somewhat unconventional but works for systems with the tool installed. In this case, you can use the mii-tool or ethtool. They both allow users to query the device for information.
However, that may require you to have root or a user with sudo privileges to work.
NOTE: If you are on a Linux machine that does not have the tools installed, use the method discussed above as it will work in most systems.
To get the link speed of a network interface using the ethtool, use the command:
The command below shows the link speed for the interface eth0 as shown:
To learn more how to use the ethtool, consider the manual in the 8th section or use the link below:
Conclusion
In this tutorial, we discussed various methods and tricks to get the link speed of network interfaces in Ubuntu.
About the author
John Otieno
My name is John and am a fellow geek like you. I am passionate about all things computers from Hardware, Operating systems to Programming. My dream is to share my knowledge with the world and help out fellow geeks. Follow my content by subscribing to LinuxHint mailing list
Ethtool: как изменить скорость, дуплекс и находить неполадки сетевой карты в Linux
Конфигурация вашей сетевой карты напрямую влияет, насколько эффективно взаимодействуют ваши сервера.
Необходимо понимать, как настройки автосогласования, скорости и дуплекса влияют на передачу данных, чтобы успешно поддерживать сетевое соединение. А также расскажем про дополнительные фичи, которые помогут находить и устранять сетевые неполадки.
В этой статье вы узнаете, как изменить настройки скорости, дуплекса и автосогласования в Linux с помощью команд ethtool .
Что такое полудуплекс, полный дуплекс и автосогласование?
Полудуплексный режим (Half-duplex) позволяет устройству отправлять или получать пакеты по очереди. Устройство, установленное в этот режим, не может выполнять оба действия одновременно.
Когда режим устройства находится в полнодуплексном режиме (Full-duplex), он также может отправлять и получать пакеты одновременно.
Автосогласование (Auto-Negotiation) — это механизм, с помощью которого устройство автоматически выбирает наиболее эффективный режим передачи на основе характеристик своих аналогов. Рекомендуется оставить автосогласование включенным, поскольку оно позволяет устройствам выбирать наиболее эффективные средства для передачи данных.
Что такое дуплексное несоответствие?
Такое происходит когда устройство с включенным автосогласованием подключается к устройству, которое не использует автосогласование. Конец соединения с активным автосогласованием все еще может определить скорость другого конца, но не может правильно определить дуплексный режим. Как правило, конец соединения с автоматическим согласованием будет использовать полудуплекс, тогда как другой конец может быть в дуплексном режиме. Эта ситуация считается дуплексным несоответствием (duplex mismatch).
Несоответствие дуплекса не прекращает связь полностью. Передача отдельных пакетов и небольших объемов данных не вызывают больших проблем. Однако при отправке большого объема данных с любого конца скорость значительно падает. Соединение работает, но производительность снижается, поскольку скорость передачи данных асимметрична и может привести к потере пакетов.
Как использовать команду Ethtool для настройки параметров сетевого адаптера
Ethtool — это команда конфигурации платы сетевого интерфейса, которая позволяет вам получать информацию и изменять настройки сетевого адаптера. Эти настройки включают скорость, дуплекс, автосогласование и многие другие параметры.
Помимо этого, ethtool используется для:
- Получения идентификационной и диагностической информации
- Получения расширенной статистики устройства
- Контроля контрольной суммы
- Контроля размеров кольца DMA и модерации прерываний
- Контроля выбора очереди приема для устройств с несколькими очередями
- Обновления прошивки во флеш-памяти
Для установки ethtool используйте следующие команды:
yum install ethtool [в Fedora, CentOS, RHEL] sudo apt-get install ethtool [в Ubuntu, Debian]
Чтобы продолжить, вам нужно знать имя вашей сетевой карты.
Чтобы найти имя вашей сетевой карты, введите в командном терминале следующую команду:
Вывод покажет нам имя сетевой карты устройства.
enp0s3 Link encap:Ethernet HWaddr 00:1A:2B:3C:4D:5E
Теперь, когда вы определили имя устройства, проверьте текущие настройки скорости, автосогласования и дуплексного режима с помощью команды: ethtool имя_устройства .
В нашем конкретном примере команда выглядит так:
Выходные данные показывают, что текущая скорость равна 1000 Мбит/с, что дуплекс находится в режиме «Full», и что автосогласование включено.
Изменение настроек сетевого адаптера
Команда ethtool –s может использоваться для изменения текущих настроек путем определения значений скорости speed , дуплекса duplex и автосогласования autoneg в следующем формате:
sudo ethtool –s [device_name] speed [10/100/1000] duplex [half/full] autoneg [on/off]
Например, чтобы установить скорость 1000 Мбит/с, дуплексный режим — «полный», а автоматическое согласование — «включено», команда будет выглядеть так:
sudo ethtool –s enp0s3 speed 1000 duplex full autoneg on
Команда ethtool [имя_устройства] необходима для подтверждения того, что изменения были применены.
Сохранение настроек
Изменения, сделанные с помощью Ethtool, по умолчанию отменяются после перезагрузки системы.
Чтобы применить пользовательские настройки при каждой загрузке системы, отредактируйте файл для интерфейса устройства:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Добавьте нужные значения в виде строки в конце файла, используя следующий синтаксис:
ETHTOOL_OPTS prettyprint"> ETHTOOL_OPTS prettyprint"> sudo ethtool -S имя_устройства
Вывод этой команды будет выглядеть так:
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
Использование приведенной выше команды — отличный способ устранения проблем с конкретной сетевой картой.
Физическое расположение конкретного сетевого адаптера
Вот действительно полезный трюк, который предлагает ethtool : допустим у вас есть сервер с несколькими сетевыми картами, и одна из них работает со сбоями, но вы не уверены, какая именно это карта. Вы можете использовать ethtool , чтобы заставить мигать индикатор сетевого адаптера, чтобы определить, какой сетевой адаптер вам нужен. Скажем, если вы хотите мигать светодиодом устройства Ethernet enp0s3 в течение 15 секунд — команда для этого будет выглядеть так:
Светодиод начнет мигать, чтобы вы знали, с какой картой вы имеете дело.
Тестирование сетевой карты
Команда ethtool предлагает пару удобных тестов, которые вы можете запустить на сетевой карте:
- Online — тесты nvram и тест ссылок
- Offline — тестирует регистр, память, loopback, прерывание
Давайте запустим онлайн-тест на нашей сетевой карте. Эта команда выглядит так:
sudo ethtool -t enp0s3 online
После выполнения команда покажет нам результаты:
Учтите, что некоторые устройства не поддерживают offline тестирование.
Информация о драйвере
Чтобы узнать имя драйвера и связанную информацию о драйвере используйте:
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
Заключение
Следуя этому руководству, вы успешно изменили настройки своей сетевой карты с помощью команд ethtool . Вы также лучше поняли, как режимы автосогласования и дуплекса влияют на производительность сервера. И заодно узнали пару интересных функций команды ethtool .