Ethtool используется для просмотра и изменения параметров драйвера сетевого устройства и параметров оборудования, особенно для проводных сетевых устройств.
При необходимости вы можете изменить параметры карты Ethernet, включая автоматическое согласование, скорость, дуплекс и т.д.
Конфигурация вашей карты Ethernet позволяет вашему компьютеру эффективно обмениваться данными по сети.
Этот инструмент предоставляет много информации об устройствах Ethernet, подключенных к вашей системе Linux.
В этой статье мы покажем вам, как изменить параметры и как их просматривать.
Эта статья поможет вам устранить неполадки, связанные с картами Ethernet в системе Linux.
Следующая информация поможет вам понять, как работает карта Ethernet.
- Полудуплекс: полудуплексный режим позволяет устройству отправлять или получать пакеты одновременно.
- Полный дуплекс: полнодуплексный режим позволяет устройству отправлять и получать пакеты одновременно.
- Автосогласование. Автосогласование – это механизм, который позволяет устройству автоматически выбирать наилучшую скорость сети и режим работы (полнодуплексный или полудуальный режим).
- Скорость: по умолчанию карта использует максимальную скорость, и вы можете изменить ее в соответствии с вашими потребностями.
- Обнаружение соединения: обнаружение соединения показывает состояние сетевой карты. Если он показывает «no», попробуйте перезапустить интерфейс. Если обнаружение канала все еще говорит «no», проверьте, есть ли какие-либо проблемы с кабелями, подключенными между коммутатором и системой.
- Как установить ethtool на Linux
- Как проверить доступные сетевые интерфейсы на Linux
- Как проверить информацию о сетевой карте (NIC) на Linux
- Как проверить драйвер сетевой карты и версию прошивки на Linux
- Как проверить статистику использования сети на Linux
- Как изменить скорость устройства Ethernet на Linux
- Как включить / отключить автосогласование для устройства Ethernet в Linux
- Как изменить несколько параметров одновременно
- Как проверить автосогласование, RX и TX конкретного интерфейса на Linux
- Как определить конкретную сетевую карту из нескольких устройств
- Как установить эти параметры на Linux постоянно
Как установить ethtool на Linux
По умолчанию ethtool уже должен быть установлен на большинстве систем.
Если нет, вы можете установить его из официального репозитория дистрибутива.
Для систем RHEL / CentOS 6/7 используйте команду yum для установки ethtool.
$ sudo yum install -y ethtool
Для систем RHEL / CentOS 8 и Fedora используйте команду dnf для установки ethtool.
$ sudo yum install -y ethtool
$ sudo apt-get install ethtool
$ sudo zypper install -y ethtool
$ sudo pacman -S ethtool
Как проверить доступные сетевые интерфейсы на Linux
Вы можете использовать команду ip или команду ifconfig (не рекомендуется в современном дистрибутиве), чтобы проверить имя и другие подробности о доступных и активных сетевых интерфейсах.
# ip a или # ifconfig 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:10:22:35:23:sf brd ff:ff:ff:ff:ff:ff inet 192.164.23.100/24 brd 192.164.23.255 scope global eth0 valid_lft forever preferred_lft forever
Как проверить информацию о сетевой карте (NIC) на Linux
Получив имя интерфейса Ethernet, вы можете легко проверить его, используя команду ethtool, как показано ниже.
- Старые дистрибутивы Linux использовался формат eth [X]. Например, RHEL 6 и их более старые версии.
- Современные дистрибутивы Linux используют форматы enp [XXX] или ens [XXX]. Например, большинство современных дистрибутивов Linux использует этот формат, включая RHEL 7, Debian 10, Ubuntu 16.04 LTS.
# ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 1000baseT/Full 10000baseT/Full Supported pause frame use: No Supports auto-negotiation: No Supported FEC modes: Not reported Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 10000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: off MDI-X: Unknown Supports Wake-on: uag Wake-on: d Link detected: yes
Как проверить драйвер сетевой карты и версию прошивки на Linux
Вы можете проверить версию драйвера, версию прошивки и информацию о шине, используя команду ethtool с опцией «-i», как показано ниже.
# ethtool -i eth0 driver: vmxnet3 version: 1.4.16.0-k-NAPI firmware-version: expansion-rom-version: bus-info: 0000:0b:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
Как проверить статистику использования сети на Linux
Вы можете просмотреть статистику использования сети с помощью команды ethtool с опцией «-S».
Данная опция показывает количество переданных, полученных, ошибок и т. д.
# ethtool -S eth0 NIC statistics: Tx Queue#: 0 TSO pkts tx: 2053 TSO bytes tx: 7167572 ucast pkts tx: 4028081 ucast bytes tx: 399093197 mcast pkts tx: 0 mcast bytes tx: 0 bcast pkts tx: 0 bcast bytes tx: 0 pkts tx err: 0 pkts tx discard: 0 drv dropped tx total: 0 too many frags: 0 giant hdr: 0 hdr err: 0 tso: 0 ring full: 0 pkts linearized: 0 hdr cloned: 0 giant hdr: 0 Tx Queue#: 1 TSO pkts tx: 1955 TSO bytes tx: 6536945 ucast pkts tx: 3711838 ucast bytes tx: 346309662 mcast pkts tx: 0 mcast bytes tx: 0 bcast pkts tx: 1186 bcast bytes tx: 49812 pkts tx err: 0 pkts tx discard: 0 drv dropped tx total: 0 too many frags: 0 giant hdr: 0 hdr err: 0 tso: 0 ring full: 0 pkts linearized: 0 hdr cloned: 0 giant hdr: 0 Rx Queue#: 0 LRO pkts rx: 0 LRO byte rx: 0 ucast pkts rx: 5084776 ucast bytes rx: 4673133395 mcast pkts rx: 0 mcast bytes rx: 0 bcast pkts rx: 154143 bcast bytes rx: 45415676 pkts rx OOB: 0 pkts rx err: 0 drv dropped rx total: 0 err: 0 fcs: 0 rx buf alloc fail: 0 Rx Queue#: 1 LRO pkts rx: 0 LRO byte rx: 0 ucast pkts rx: 6346769 ucast bytes rx: 4835534292 mcast pkts rx: 0 mcast bytes rx: 0 bcast pkts rx: 3464 bcast bytes rx: 714646 pkts rx OOB: 0 pkts rx err: 0 drv dropped rx total: 0 err: 0 fcs: 0 rx buf alloc fail: 0 tx timeout count: 0
Как изменить скорость устройства Ethernet на Linux
При необходимости вы можете изменить скорость Ethernet.
Когда вы сделаете это изменение, интерфейс автоматически перейдет в автономный режим, и вам нужно будет вернуть его в оперативный режим с помощью команды ifup, команды ip или nmcli.
# ethtool -s eth0 speed 100 # ip link set eth0 up
Как включить / отключить автосогласование для устройства Ethernet в Linux
Вы можете включить или отключить автосогласование с помощью команды ethtool с опцией «autoneg», как показано ниже.
# ethtool -s eth0 autoneg off # ethtool -s eth0 autoneg on
Как изменить несколько параметров одновременно
Если вы хотите изменить несколько параметров интерфейса Ethernet одновременно с помощью команды ethtool, используйте формат, показанный ниже:
Синтаксис:
ethtool –s [device_name] speed [10/100/1000] duplex [half/full] autoneg [on/off]
# ethtool –s eth0 speed 1000 duplex full autoneg off
Как проверить автосогласование, RX и TX конкретного интерфейса на Linux
Для просмотра деталей автосогласования в конкретном устройстве Ethernet используйте следующий формат.
# ethtool -a eth0
Как определить конкретную сетевую карту из нескольких устройств
Эта опция очень полезна, если вы хотите идентифицировать определенный физический интерфейсный порт среди других.
Приведенная ниже команда ethtool помигает светодиодом порта eth0.
# ethtool -p eth0
Как установить эти параметры на Linux постоянно
После перезапуска системы изменения, сделанные с помощью ethtool, будут по умолчанию отменены.
Чтобы сделать пользовательские настройки постоянными, необходимо обновить свои значения в файле конфигурации сети.
В системах на основе RHEL вы должны использовать переменные ETHTOOL_OPTS.
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 ETHTOOL_OPTS="speed 1000 duplex full autoneg off"
В системах на основе Debian.
# vi /etc/network/interfaces post-up ethtool -s eth0 speed 1000 duplex full autoneg off
Линукс-Минт 18.3. Сетевая карта Гуляет скорость интернета. За день может быть сколько угодно раз. По тарифу 200, по факту 0т 0,6 до 184. Вызов мастера ничего не дал (НетбайНет). Уверяют, что с их стороны все нормально. Что это у меня сетевуха переключается 10/100/1000 как хочет и когда хочет. Большую часть дня при загрузке страницы можно сходить покурить.
Рекомендация мастера – принудительно установить в 1000, т.к. порт на оборудовании Гигабитный. Но поскольку это Линукс, а не Виндовс, то он понятия не имеет как тут все далается. Я в принципе тоже, т.к. не програмист, не админ, а простой рядовой юзер!
Вот нарыл разных статей, пытаюсь повторить команды, но… увы. Все как было так и есть.
Сетевуха строго в 1000 не программируется. Привожу данные вывода в Терминале.
# udo lshw -class network
*-network
описание: Ethernet interface
продукт: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
производитель: Realtek Semiconductor Co., Ltd.
физический ID: 0
сведения о шине: pci@0000:02:00.0
логическое имя: enp2s0
версия: 06
серийный №: 50:3e:aa:15:ce:4a
размер: 1Gbit/s
capacity: 1Gbit/s
разрядность: 64 bits
частота: 33MHz
возможности: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
конфигурация: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl_nic/rtl8168e-2.fw ip=176.193.218.137 latency=0 link=yes multicast=yes port=MII speed=1Gbit/s
ресурсы: IRQ:16 ioport:d800(размер=256) память:feaff000-feafffff память:fbefc000-fbefffff
# sudo ifconfig
enp2s0 Link encap:Ethernet HWaddr 50:3e:aa:15:ce:4a
inet addr:176.193.218.137 Bcast:176.193.223.255 Mask:255.255.224.0
inet6 addr: fe80::8e26:1e4d:b14:2cf7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:90138 errors:0 dropped:0 overruns:0 frame:0
TX packets:50581 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:92046213 (92.0 MB) TX bytes:12889205 (12.8 MB)
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1478 errors:0 dropped:0 overruns:0 frame:0
TX packets:1478 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:165149 (165.1 KB) TX bytes:165149 (165.1 KB)
# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 50:3e:aa:15:ce:4a brd ff:ff:ff:ff:ff:ff
inet 176.193.218.137/19 brd 176.193.223.255 scope global dynamic enp2s0
valid_lft 4799sec preferred_lft 4799sec
inet6 fe80::8e26:1e4d:b14:2cf7/64 scope link
valid_lft forever preferred_lft forever
# ethtool enp2s0
Settings for enp2s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
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
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes
# ethtool -i enp2s0
driver: r8169
version: 2.3LK-NAPI
firmware-version: rtl_nic/rtl8168e-2.fw
expansion-rom-version:
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
snigirev@Linux64 ~ $ ethtool -s enp2s0 autoneg off
Cannot set new settings: Operation not permitted
not setting autoneg
# sudo ethtool -s enp2s0 autoneg off
Cannot set new settings: Invalid argument
not setting autoneg
# sudo ethtool –s enp2s0 speed 1000 duplex full autoneg off
ethtool: bad command line argument(s)
For more information run ethtool -h
Вроде бы все нормально. Единственно, что я вижу, так это не соответствие драйвера. На сколько это критично?
Я так понял, что установленный драйвер r8169, а прошивка в чипе 8168.
А где найти этот драйвер? И как его установить?