- Настройка сетевого интерфейса Linux
- Настройка сетевого интерфейса Linux
- 1. Синтаксис и опции ethtool
- 2. Установка ethtool
- 3. Информация про сетевые интерфейсы
- 4. Изменение настроек интерфейса
- 5. Просмотр драйвера
- 6. Статистика интерфейса
- 7. Управление светодиодом
- 8. Сохранение настроек
- Выводы
- Изменение сетевого интерфейса по умолчанию в Linux
- Отключить адаптеры
- Использование утилиты ip
- Похожие записи:
- How to Change the Default Interface in Linux?
- Method 1 – Turn Off Adapters
- Conclusion
- About the author
- John Otieno
Настройка сетевого интерфейса 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
Статьи
Почти все, что мы можем делать в Linux, требует наличия сетевого подключения. Будь то разработка приложений, установка программного обеспечения, создание сценариев, обмен файлами или даже просмотр фильмов, нам необходимо рабочее сетевое подключение.
Сетевой интерфейс — это устройство или точка соединения между устройством и частной или публичной сетью. В большинстве случаев сетевой интерфейс представляет собой физическую карту, такую как беспроводной адаптер, сетевая карта и т.д. Однако это не обязательно означает, что сетевой интерфейс должен быть физическим устройством.
Например, адаптер loopback, который не является физически видимым, реализуется программным обеспечением и доступен на всех устройствах.
Отключить адаптеры
Самый простой способ установить сетевой интерфейс по умолчанию — это отключить все остальные интерфейсы. Например, в Linux вы можете использовать сетевой менеджер GUI или терминал.
Предположим, у вас есть беспроводной адаптер, а вы хотите использовать адаптер Ethernet; в этом случае вы можете отключить адаптер wifi с помощью команды:
ifconfig wlan0 down ifconfig eth0 up
Приведенные выше команды выключат беспроводной адаптер и включат адаптер ethernet.
Это заставит систему переключиться на доступную сеть.
Для выполнения вышеуказанной команды требуются права sudo или root с установленным пакетом net-tools.
Использование утилиты ip
Приведенная выше команда должна вывести список шлюзов по умолчанию, доступных в системе, включая интерфейс по умолчанию.
Пример вывода показан на рисунке:
default via 192.168.0.1 dev wlan0 proto dhcp metric 100 169.254.0.0/16 dev wlan0 scope link metric 1000 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.10 metric 100
Как видно из приведенного выше результата, интерфейс по умолчанию установлен на wlan0. Однако мы можем изменить это, выполнив несколько шагов.
Начните с удаления всех интерфейсов по умолчанию с помощью команды:
Эта команда должна удалить все шлюзы по умолчанию. Вы можете проверить это, выполнив команду ip list:
169.254.0.0/16 dev wlan0 scope link metric 1000 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.10 metric 100
Теперь мы можем добавить интерфейс по умолчанию с помощью команды ip route.
ip route add default via 192.168.0.2 dev eth0
Убедитесь, что вы заменили IP-адрес интерфейса на необходимый вам.
После успешного выполнения команда должна добавить интерфейс eth0 по умолчанию.
Мы можем проверить это, выполнив команду ip route:
default via 192.168.0.2 dev eth0 169.254.0.0/16 dev eth0 scope link metric 1000 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.10 metric 100
Вывод показывает, что интерфейс по умолчанию установлен на eth0 с указанным нами IP-адресом.
Похожие записи:
How to Change the Default Interface in Linux?
“Almost everything productive we can do in Linux requires us to have a network connection. Whether developing apps, installing software, scripting, sharing files, or even watching movies, we need a working network connection. Hence, “I require a network connection” is simply an understatement. The only way to enable network connection on a machine is through a network interface.
A network interface is a device or a point of connection between a device and a private or public network. In most cases, a network interface is a physical card such as a wireless adapter, a network card, etc. However, this does not necessarily mean that a network interface should be a physical device. For example, a loopback adapter that is not physically visible is implemented by software and available on all devices.”
This quick tutorial will show you how to set the default interface in Linux.
Method 1 – Turn Off Adapters
The simplest way to set your default network interface is by disabling all other interfaces. For example, in Linux, you can use the GUI network manager or the terminal.
Suppose you have a wireless adapter and you wish to use the Ethernet adapter; in that case, you can bring down the wifi adapter using the command:
The above commands will shut down the wireless adapter and bring up the ethernet adapter.
That will force the system to switch to the available network.
NOTE: The above command requires sudo or root privileges with the net-tools package installed.
Start by using the command:
The command above should list the default gateways available in the system, including the default interface.
An example output is as shown:
default via 192.168.0.1 dev wlan0 proto dhcp metric 100
169.254.0.0 / 16 dev wlan0 scope link metric 1000
192.168.0.0 / 24 dev wlan0 proto kernel scope link src 192.168.0.10 metric 100
As we can see from the output above, the default interface is set to wlan0. However, we can change this by following a few steps.
Start by removing all the default interfaces with the command:
The command should remove all the default gateways. You can verify by running the ip list command:
169.254.0.0 / 16 dev wlan0 scope link metric 1000
192.168.0.0 / 24 dev wlan0 proto kernel scope link src 192.168.0.10 metric 100
We can now proceed to add a default interface using the ip route command.
NOTE: Ensure to replace the IP address of the interface with your desired one.
Once executed successfully, the command should add the interface eth0 is the default.
We can verify this by running the ip route command:
$ sudo ip route list
default via 192.168.0.2 dev eth0
169.254.0.0 / 16 dev eth0 scope link metric 1000
192.168.0.0 / 24 dev eth0 proto kernel scope link src 192.168.0.10 metric 100
The output shows that the default interface is set to eth0 with our specified IP address.
Conclusion
That’s it for this one. In this article, we discussed how to change your default interface in Linux in two primary methods.
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