- Настройка сетевого интерфейса Linux
- Настройка сетевого интерфейса Linux
- 1. Синтаксис и опции ethtool
- 2. Установка ethtool
- 3. Информация про сетевые интерфейсы
- 4. Изменение настроек интерфейса
- 5. Просмотр драйвера
- 6. Статистика интерфейса
- 7. Управление светодиодом
- 8. Сохранение настроек
- Выводы
- Изменяем скорость и дуплекс сетевой карты в Linux
- Установка ETHTOOL#
- Узнать скорость, дуплекс и прочую информации о сетевом интерфейсе eth0#
- Изменение настроек скорости и дуплекса#
- Изменение настроек скорости и дуплекса на постоянной основе#
- Изменить скорость сетевой карты со 100Mbit на 1000Mbit
Настройка сетевого интерфейса Linux
В сегодняшней статье мы поговорим про настройку сетевого интерфейса с помощью утилиты ethtool. С помощью неё вы можете менять такие низкоуровневые настройки сетевой карты, как скорость передачи данных и метод выбора скорости при подключении, смотреть статистику и используемый драйвер, управлять светодиодом на карте, а также многое другое.
Мы разберемся как установить утилиту в популярных дистрибутивах, как её использовать и какие опции она поддерживает, а потом рассмотрим примеры работы.
Настройка сетевого интерфейса Linux
1. Синтаксис и опции ethtool
Синтаксис ethtool довольно простой, утилите достаточно передать опции и имя сетевого интерфейса, с которым вы хотите работать:
$ ethtool опции интерфейс параметры
Вот основные опции утилиты, которые мы будем использовать в этой статье:
- —version — выводит версию утилиты;
- -g, —show-ring — позволяет посмотреть информацию о буфере RX и TX пакетов;
- -G, —set-ring — позволяет установить размер буфера RX и TX пакетов, работает только для беспроводного интерфейса;
- -i, —driver — выводит имя используемого драйвера;
- -P, —show-permaddr — выводит постоянный MAC адрес устройства;
- -r, —negotiate — выполняет повторное согласование скорости передачи данных, если включено автоматическое согласование;
- -S, —statistics — выводит статистику;
- -s, —change — позволяет менять настройки сетевого интерфейса;
- -k, —show-offload — позволяет посмотреть какие технологии offload включены;
- —reset — позволяет сбросить настройки различных компонентов сетевой карты, для сброса всех настроек используйте значение параметра all;
Это далеко не все опции программы, все вы можете посмотреть выполнив такую команду в терминале, если программа установлена:
2. Установка ethtool
Обычно, утилита не поставляется по умолчанию вместе с дистрибутивом, но она есть в официальных репозиториях. Для установки утилиты в Ubuntu или Debian выполните:
Для установки ethtool linux в Fedora, CentOS или REHL выполните:
А для OpenSUSE команда будет выглядеть вот так:
sudo zypper install ethtool
3. Информация про сетевые интерфейсы
Сначала надо посмотреть список сетевых интерфейсов в системе. Для этого выполните такую команду:
В данном примере, я использовал фильтр egrep чтобы отсеять все интерфейсы, созданные контейнерами Docker, вам этого делать не обязательно. Здесь enp24s0 — это сетевой интерфейс Ethernet, который мы и будем использовать дальше. Выполнив утилиту ethtool без опций можно посмотреть текущие настройки сетевого интерфейса:
Обратите внимание на пункт Supported link modes, здесь перечислены поддерживаемые скорости передачи данных и режимы дуплекса для них. Скорость измеряется в мегабитах и обычно доступны значения 10, 100 и 1000.
Режим дуплекса, выводимый в параметре Duplex отвечает за приём и передачу данных. При значении full сетевая карта может одновременно принимать и отправлять данные, а режиме half только принимать или отправлять данные. Текущая скорость передачи данных выводится немного ниже параметра Duplex.
Ещё есть параметр Advertised auto negotiation. Он отвечает за то будет ли скорость передачи данных и режим дуплекса настраиваться автоматически в зависимости от возможностей обоих соединённых устройств. По умолчанию этот параметр включён и рекомендуется его таким и оставить.
4. Изменение настроек интерфейса
Менять все эти настройки и многие другие можно с помощью опции -s. Например чтобы отключить автоматическое согласование параметров работы выполните:
sudo ethtool -s enp24s0 autoneg off
Затем можно вручную установить скорость передачи данных:
sudo ethtool -s enp24s0 speed 10
sudo ethtool -s enp24s0 duplex half
Всё это можно объединить в одну команду:
sudo ethtool -s enp24s0 speed 10 duplex half autoneg off
После изменения скорости передачи данных надо снова поднять сетевой интерфейс:
sudo ip link set dev enp24s0 up
Теперь при просмотре настроек сетевой карты вы увидите новые значения:
5. Просмотр драйвера
Чтобы посмотреть используемый драйвер используйте опцию -i:
6. Статистика интерфейса
Посмотреть статистику по переданных и полученных данных можно с помощью опции -S:
Сбросить эту статистику можно только выгрузив драйвер ядра, который используется для сетевой карты. Для этого сначала отключите сетевой интерфейс:
sudo ip link set dev enp24s0 down
Затем выгрузите модуль ядра с драйвером:
Верните драйвер обратно и запустите устройство:
sudo ip link set dev enp24s0 up
После этого статистика будет сброшена:
7. Управление светодиодом
Если в вашем компьютере установлено несколько сетевых карт и вам надо определить какой их них принадлежит то или иное имя в системе, можно использовать опцию -p. Ей надо передать количество секунд на протяжении которых светодиод на разъёме должен гореть:
sudo ethtool enp24s0 -p 100
Таким образом вы можете подсветить интерфейс ethtool.
8. Сохранение настроек
Все выполненные с помощью ethtool настройки актуальны только до перезагрузки. Чтобы их сохранить после перезагрузки надо создать скрипт, выполняющий нужные команды после старта системы или же использовать возможности network-scripts. Например в Ubuntu или Debian можно добавить команду, которая выполняет нужные настройки в файл /etc/network/if-pre-up.d/ethtool. Например:
sudo vi /etc/network/if-pre-up.d/ethtool
/sbin/ethtool -s enp24s0 speed 10 duplex half
Для CentOS следует добавить параметр ETHTOOL_OPTS в файл настройки сетевого интерфейса, Например:
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp24s0
ETHTOOL_OPTS=»speed 10 duplex half autoneg off»
Выводы
В этой небольшой статье мы рассмотрели как выполняется настройка сетевого интерфейса Linux с помощью утилиты ethtool. Если вы знаете другие полезные способы настройки, пишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Изменяем скорость и дуплекс сетевой карты в Linux
Для изменения скорости и дуплекса сетевой карты, можно воспользоваться утилитой ethtool.
Установка ETHTOOL#
Для установки ethtool, выполните одну из следующих команд, в зависимости от Вашего дистрибутива Linux.
Установка ethtool в Fedora, CentOS, RHEL и т. д.:
Установка ethtool в Ubuntu, Debian и т. д.:
# sudo apt-get install ethtool
Узнать скорость, дуплекс и прочую информации о сетевом интерфейсе eth0#
Для того, чтобы узнать текущую скорость, дуплекс и прочую информацию об интерфейсе eth0, выполните следующую команду с правами пользователя root.
Пример результата выполнения команды:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Settings for eth0: Supported ports: [ 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 auto-negotiation: Yes Speed: 100Mb/s Duplex: Half Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: d Current message level: 0x000000ff (255) Link detected: yes
Изменение настроек скорости и дуплекса#
Данные изменения являются временными и перестанут действовать после перезагрузки. См. п.4, если Вам необходимы изменения на постоянной основе. Примеры Активировать функцию Авто-Определения: # ethtool -s eth0 autoneg on
Отключить функцию Авто-Определения, установить режим Полу-Дуплекса и задать Скорость 10 Mb/s: # ethtool -s eth0 speed 10 duplex half autoneg off
Отключить функцию Авто-Определения, установить режим Полного Дуплекса и задать Скорость 100 Mb/s: # ethtool -s eth0 speed 100 duplex full autoneg off
Изменение настроек скорости и дуплекса на постоянной основе#
Для Fedora/CentOS/RHEL Для того, чтобы настройки сохранились после перезагрузки, необходимо внести изменения в файл /etc/sysconfig/network-scripts/ifcfg-eth0 для интерфейса eth0. # vi /etc/sysconfig/network-scripts/ifcfg-eth0
Добавьте следующую строку для отключения функции Авто-Определения, установки Полного Дуплекса и Скорость 100 Mb/s: ETHTOOL_OPTS=»speed 100 duplex full autoneg off»
Перезапустите интерфейс для применения настроек: # ifdown eth0 && ifup eth0
Изменить скорость сетевой карты со 100Mbit на 1000Mbit
Сетевая карта гигабитная это точно. Запускал на этом микросервере Win8 Live в настройках подключения показывает гигабит. Расшарил каталог, скинул файл с другого ПК. Скорость была около 30 мегабайт/сек (хоть и не 1000, но так и так больше 100Mbit). В настройках маршрутизатора тоже показывает гигабит по этому подключению.
Устанавливаю Ubuntu server 16.04 (пробовал ставить ubuntu 17.04, но там не работает https пришлось отказаться от данной версии, понятно, что можно было настроить, но нахрапом я не нашел инфу, да и вопрос сейчас не об этом). Теперь маршрутик в настройках пишет, что по данному подключению 100Mbit (патч-корд используется тот же самый, что и при запуске Win8 Live).
Команда ifconfig выдает следующее:
enp2s0 Link encap:Ethernet HWaddr 00:e0:4c:66:86:82 inet addr:192.168.1.48 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::2e0:4cff:fe66:8682/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1882 errors:0 dropped:0 overruns:0 frame:0 TX packets:137 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:235906 (235.9 KB) TX bytes:18090 (18.0 KB) 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:164 errors:0 dropped:0 overruns:0 frame:0 TX packets:164 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:12080 (12.0 KB) TX bytes:12080 (12.0 KB)
Команда 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 Link partner advertised pause frame use: Symmetric Link partner advertised auto-negotiation: Yes Speed: 100Mb/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 -s eth1 speed 100 duplex full autoneg off
ethtool -s enp2s0 speed 1000 duplex full autoneg off
Вывод на экране после ее ввода такой:
Cannot get current device settings: No such device not setting speed not setting duplex not setting autoneg
Что делать дальше ХЗ. Может дело в драйверах? В таком случае, где их брать и как устанавливать из терминала?
Заранее благодарен за помощь.
UPD. По ссылке такая же проблема, только человеку нужно изменить 100Mbit на 10Mbit. Данную проблему они решили.
Здесь инструкция по изменению скорости сетевого интерфейса
Там перед командами вводят sudo. В моем случае это никак не помогло.