- Настройка сетевого интерфейса Linux
- Настройка сетевого интерфейса Linux
- 1. Синтаксис и опции ethtool
- 2. Установка ethtool
- 3. Информация про сетевые интерфейсы
- 4. Изменение настроек интерфейса
- 5. Просмотр драйвера
- 6. Статистика интерфейса
- 7. Управление светодиодом
- 8. Сохранение настроек
- Выводы
- Настройка сети в Linux
- Интересное по теме:
- 7 thoughts on “ Настройка сети в Linux ”
Настройка сетевого интерфейса 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
Перед тем, как приступать к настройке сетевого подключения в Линукс, надо начать с того, что посмотреть — какие настройки сети используются сейчас. Для этого надо воспользоваться командой ifconfig. В информационном режиме она доступна и без прав ROOT, хотя для её полноценного использования лучше получить привилегии суперпользователя, введя команду sudo ifconfig. Результатом её работы будет список имеющихся в системе сетевых подключений и их параметров.
В разных версиях Линукс имя сетевого интерфейса может быть сокращением от Ethernet — eth0, eth1, eth2 и т.п.
На интерфейс lo — сокращение от loopback — то есть локальная петля с адресом 127.0.0.1 .
Для примера рассмотрим интерфейс Eth0.
В строке inet addr отображается текущий IP-адрес компьютера в локальной сети, подключенной к этой сетевой карте. В примере это: 192.168.1.144
Bcast — это широковещательный адрес в сети, так называемый Бродкаст(Broadcast).
Mask — это маска сети.
HWaddr — это аппаратный адрес сетевой карты, он же MAC-адрес, используемый на канальном уровне.
Информацию о текущих подключения узнали, теперь рассмотрим настройку локальной сети в Linux. Сделать это можно тремя способами:
1 — Через графическую оболочку
2 — через команду ifconfig или инструмент Network Manager
3 — через конфигурационные файлы сетевого сервиса Netork или Networking.
На мой взгляд, последний способ — самый удобный и надёжный, а значит — правильный. Чтобы настроить сеть в Линукс надо открыть файл, содержащий конфиг интерфейса. Тут всё зависит от того, какой дистрибутив Linux используется.
Вариант 1. В дистрибутивах, основанных на Debian (Ubuntu, Kubuntu и т.п.)
Файл с параметрами сетевого подключения:
Для того, чтобы изменить в linux настройки сети, файл его надо с правами root любым текстовым редактором. Например, через nano:
sudo nano /etc/network/interfaces
Для автоматического получения адресов от DHCP-сервера надо пописать следующее:
allow-hotplug eth0 iface eth0 inet dhcp
Если адрес надо прописать статически, то указываем следующее:
allow-hotplug eth0 iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 dns-nameservers 192.168.1.1
В этом конфиге рассмотрен пример обычной домашней сети, где адрес компьютера будет 192.168.1.2, адрес шлюза и DNS-сервера (их фукнции обычно выполняет wifi-роутер)- 192.168.1.1.
Вариант 2. RedHat-based дистрибутивы (Fedora, OpenSuse, CentOS)
Файл с настройками сети Linux:
/etc/sysconfig/network-scripts/ifcfg-eth0
Открываем его так же через nano или vim:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
В случае автоматического получения настроек от DHCP-сервера:
DEVICE=eth0 BOOTPROTO=dhcp HWADDR=00-1C-1B-11-F6-07 ONBOOT=yes
DEVICE=eth0 HWADDR=00-1C-1B-11-F6-07 IPADDR=192.168.1.2 NETMASK=255.255.255.0 BROADCAST=192.168.1.255 GATEWAY=192.168.1.1 ONBOOT=yes
IP-адреса DNS-серверов в этом случае прописываются в файле
вот пример для публичных DNS-серверов от Google:
nameserver 8.8.8.8 nameserver 8.8.4.4
Настройка сети в Линукс завершена. Остаётся только перезапустить сеть командой:
В качестве постскриптума расскажу как включить и выключить сеть в Linux. Делается это через всё ту же команду ifconfig. Выключить сетевую карту eth0:
Включить сетевую плату в Линуксе обратно:
Полностью остановить работу всех сетевых интерфейсов.
Интересное по теме:
7 thoughts on “ Настройка сети в Linux ”
- Михаил06.12.2017 в 16:35 Не настраивается, Линукс минт 18.3 в чём засада?
enp2s0 Link encap:Ethernet HWaddr 00:16:d3:48:1d:91
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 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:886 errors:0 dropped:0 overruns:0 frame:0
TX packets:886 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:82987 (82.9 KB) TX bytes:82987 (82.9 KB) wlp5s0 Link encap:Ethernet HWaddr 00:13:02:70:76:47
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) wlxf46d048b327f Link encap:Ethernet HWaddr f4:6d:04:8b:32:7f
inet addr:192.168.1.72 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::99f4:be38:665a:3b0d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39068 errors:0 dropped:2423 overruns:0 frame:0
TX packets:24703 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:48902729 (48.9 MB) TX bytes:3037797 (3.0 MB)
- Михаил21.04.2018 в 17:08 Сергей, может вы мне ответите? В общем, настраивал подключение к сети через «Менеджер сети», встроенный по умолчанию в Linux mint 18.3 Cinnamon. Настройки ставил следующие: IPv6 совсем выключил (Method: ignore). IPv4 Method:manual; Address:192.168.1.250; Netmask:250.250.250.0; Gateway 192.168.1.1; DNS servers 8.8.8.8
(Не понял где программа сохраняет эти настройки. В файле interfaces, находящемуся по адресу Файловая система/etc/network/interfaces ничего не поменялось.) IP адрес роутера определил командой ip route show. В качестве роутера стоит Asus RTN-10U. Wi-fi свисток Asus N13. Вот данные lsusb (0b05:17ab ASUSTek Computer, Inc. USB-N13 802.11n Network Adapter (rev. B1) [Realtek RTL8192CU]).
Сеть распозналась корректно и работает, но через 5 минут пропадает. Т.е. Менеджер сетей утверждает, что сеть есть и подключение хорошее, но браузер Firefox не может найти соединение. Проверил соединение с роутером коммандой Ping 192.168.1.1. Соединение отсутствует. Выключил сеть и включил через Менеджер сетей и сразу запустил проверку соединения Ping 192.168.1.1. Лазил в Интернете минут 15. Сеть держится. Возникает предположение, что Linux в определённый момент считает, что устройство бездействует и отключает сеть, если я его не спамлю ping’ом. Как это можно отрегулировать или решения нет и придётся спамить ping?
- Сергей Автор публикации 23.04.2018 в 09:04 Михаил — Здравствуйте. начните с того, что укажите правильно маску — 255.255.255.0. Та, что Вы указали — 250.250.250.0 — неверная.
- Михаил24.04.2018 в 10:44 Сергей, спасибо, но вопрос решён на сайте, откуда Linux mint скачивал. Маска указана верно — его принял интерфейс. Автоматом мне Linux «24» поставил в строке маска. Проблема не в настройках была. Два модуля kernel, а именно rtl8xxxu и rtl8192cu в Linux посчитали, что это их устройства и пытались одним устройством рулить. Вот мой топик (forums.linuxmint.com/viewtopic.php?p=1461156#p1461156).
В результате один нужно было отключить, а именно rtl8192cu, который давал ошибки. Отключение модуля осуществляется командой из терминала:
echo «blacklist rtl8192cu» | sudo tee /etc/modprobe.d/rtl8192cu.conf
Далее перезагружаемся и всё работает.
- CHAYNIK28.11.2021 в 04:01 na pochtu zahozhu — vyyti ne poluchaetsya…………inet namertvo zavisaet………NEIZVESTNOE USTROYSTVO!……..stiraet otvety