Изменить имя сетевого адаптера linux

Изменить имя интерфейса eth

Всем привет! Появилась потребность изменить интерфейсы в системе. МСВС 5.0. Раньше интерфейсы определялись по-порядку eth0,1,2,3. Теперь они определяются, как eth3,2,0,1. Думали сделать привязку ip к MAC и MAC к eth. В файл с конфой интерфейса добавляем строку:

И создаем UDEV-правило:

SUBSYSTEM==«net», ACTION==«add», DRIVERS==»?*», ATTR

==«00:15:5d:c2:f7:08», ATTR==«1», KERNEL==«eth*», NAME=«eth0»

—-> NAME=«eth0» у тебя там eth3

В файл с конфой интерфейса добавляем строку:

Зачем? Ты хочешь изменить мак адрес у интерфейса?

А потом хочешь у интерфейса со сменённым мак адресом сменить имя?

Это работает не так, В начале ядро назначает имена сетевым интерфейсам и ты можешь создать правило именования с привязкой к мак адресу, а потом сменить мак адрес у сетевого интерфейса.

Не знаю важно это или нет, но правило udev в моей системе вот такое:

ну дак мне и нужно, чтобы интерфейс eth0 стал eth3

так я не меняю сам мак. ifconfig -a, там беру значения mac и добавляю в файл. И нужно чтобы сетевая с таким маком в системе определялась, ни как eth0, а как eth3

ну переименуй тогда в etc/sysconfig/network-scripts/ifcfg-eth3

Повторяю, в начале отрабатывает ядро и udev и в системе интерфейс с маком «00:15:5d:c2:f7:08» будет уже eth3 согласно правилу.

Поэтому и в скриптах инициализации сетевых интерфейсов интерфейс должен указываться уже как eth3.

там беру значения mac и добавляю в файл

Только мак нужно в нижний регистр перевести. Есть просто скопипастить, то не работает. Только что проверил на себе — всё переименовывает, если правильно писать.

Ну и у udev можно нормально поотлаживать в общем-то.

Тут помогут udevadm info -a -p /sys/class/net/

И ещё udevadm test опять же про тот же сетевой адаптер. Там вроде видно как правила работают. Или не работают 🙂

Источник

Переименовываем сетевые интерфейсы в Linux

В этой статье рассмотрим пример как можно переименовать сетевые интерфейсы в дистрибутивах Linux. После обновления systemd (частью которого является udev) до версии 197 и выше, многие пользователи были мягко говоря не довольны новым способом именования сетевых интерфейсов, например eth0 стал вдруг enp2s0.

Чтоб назначить имя сетевому интерфейсу в ручную, достаточно создать правило для udev.

Правила формируются в файлах расположенных по адресу:
/lib/udev/rules.d (возможно также /etc/udev/rules.d, в зависимости от дистрибутива)

Переименовываем название сетевых интерфейсов в Linux

Создадим файл 79-net-name.rules:

Со следующим текстом:

Соответственно, в вашем случае необходимо заменить MAC адрес сетевого интерфейса, а также выбрать желаемое имя.

Чтобы узнать MAC адрес сетевого интерфейса введем следующую команду в терминале:

Читайте также:  Как восстановить xbox windows 10 после удаления

Правил в одном файле может быть несколько. Соответственно для каждого сетевого интерфейса прописываем свою строчку, меняя MAC адрес и имя интерфейса.

Перезагружаемся и радуемся старым и привычным именам сетевых интерфейсов.

На что здесь особо следует обратить внимание

  • Название файла должно начинаться с номера меньше 80, для того чтоб правило обрабатывалось до стандартного правила:
  • MAC адрес адаптера пишется в нижнем регистре, если его написать в верхнем регистре, например 08:00:27:17:С3:72, то правило не будет обработано.

В заключении, пожалуй ещё расскажу о том как отключить стандартные правила udev.

Отключаем стандартные правила udev

Проще всего это сделать добавив строчку net.ifnames=0 к параметрам загрузки ядра.

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Ubuntu 16.04: Изменение наименования сетевых интерфейсов

После установки Ubuntu 16.04.1 имя сетевого интерфейса стало ens33. Добавил в конфигурацию загрузки “net.ifnames=0 biosdevname=0»

Имя стало eth0, теперь я хочу его поменять на, скажем. eth1.

Файл: /etc/udev/rules.d/70-persistent-net.rules отсутствует.

Команда #udevadm trigger —subsystem-match=net —action=add данный файл не создает

ifconfig eth0 down

ip link set eth0 name eth1

ifconfig eth1 up

Ты перепробовал все варианты, выхода нет, вдоль.

PS Создай файл вручную, будь мужиком, . !

в Ubuntu 16.4 отсутствует генератор файла: /lib/udev/write_net_rules

Создал файл /etc/udev/rules.d/70-persistent-net.rules руками:

По сравнению с Debian 7 в файле нет параметра KERNEL==«eth*»

Если кому интересно, правила в стиле циски (имя интерфейса зависит от номера слота и номера порта):

а разве по дефолту не так? Оо

Это относительно недавно стало.

в Ubuntu 16.4 отсутствует генератор файла: /lib/udev/write_net_rules

Его выкинули в очередном systemd. Кстати, так же выкинули из udev код, обеспечивающий обмен имён. То есть, если у тебя eth0 есть, eth1 ты сделаешь, а вот если у тебя есть и eth0, и eth1, то местами ты их с новым udev из нового systemd не поменяешь. Надо откатывать это «нововведение».

Спасибо за примечание, проверил на Debian 8 под виртуалкой c 3 сетевухами — мои изменения сохранились.

Источник

Настройка сетевого интерфейса 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;
Читайте также:  Mac os sd card только чтение

Это далеко не все опции программы, все вы можете посмотреть выполнив такую команду в терминале, если программа установлена:

2. Установка ethtool

Обычно, утилита не поставляется по умолчанию вместе с дистрибутивом, но она есть в официальных репозиториях. Для установки утилиты в Ubuntu или Debian выполните:

sudo apt install ethtool

Для установки ethtool linux в Fedora, CentOS или REHL выполните:

sudo yum install ethtool

А для OpenSUSE команда будет выглядеть вот так:

sudo zypper install ethtool

3. Информация про сетевые интерфейсы

Сначала надо посмотреть список сетевых интерфейсов в системе. Для этого выполните такую команду:

В данном примере, я использовал фильтр egrep чтобы отсеять все интерфейсы, созданные контейнерами Docker, вам этого делать не обязательно. Здесь enp24s0 — это сетевой интерфейс Ethernet, который мы и будем использовать дальше. Выполнив утилиту ethtool без опций можно посмотреть текущие настройки сетевого интерфейса:

sudo ethtool enp24s0

Обратите внимание на пункт 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

А режим дуплекса в half:

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:

sudo ethtool -i enp24s0

6. Статистика интерфейса

Посмотреть статистику по переданных и полученных данных можно с помощью опции -S:

sudo ethtool -S enp24s0

Сбросить эту статистику можно только выгрузив драйвер ядра, который используется для сетевой карты. Для этого сначала отключите сетевой интерфейс:

Читайте также:  Посмотреть активные сессии windows

sudo ip link set dev enp24s0 down

Затем выгрузите модуль ядра с драйвером:

sudo modprobe -r r8169

Верните драйвер обратно и запустите устройство:

sudo modprobe r8169

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. Если вы знаете другие полезные способы настройки, пишите в комментариях!

Источник

dimio.org

Задался целью домашнюю wi-fi сеть перевести на современный протокол шифрования — wpa2. Вроде всё предельно просто должно быть даже в линуксе — ставишь wpa-supplicant, прописываешь имя точки, тип шифрования и ключ в /etc/network/interfaces — и всё работает. Но нет — бился часа четыре, пробовал по-разному — не подключается ноут мой к сети, хотя нетбук и смартфоны легко её подхватывают.

Оказалось, что wi-fi карточка в ThinkPad T40 не поддерживает wpa2 (и wpa тоже) на аппаратном уровне. Я думал, что это исключительно программные решения и даже не догадывался покопать в сторону аппаратной поддержки. В итоге пришлось карточку поменять, благо на e-bay их продаётся много.

Но это всё предыстория. Новая карточка в итоге встала нормально, выглядит в выводе dmesg и lspci как Intel PRO/Wireless 2200BG Mini-PCI Adapter, драйвера под Linux для неё имеются, но она автоматически прописалась под именем eth2, а у меня в скриптах и в conky беспроводной интерфейс прописан как eth1. Соответственно встал вопрос — как в Linux переименовать сетевой интерфейс?

Для Debian (и соответственно Ubuntu) подходит такой рецепт: в файле 70-persistent-net.rules, находящемся по адресу /etc/udev/rules.d/ , в спецификации нужной сетевой карты изменяем в конце строки параметр NAME= , вписывая туда нужное имя интерфейса для сетевой карты с нужным MAC-адресом. Например я вписал вместо NAME=eth2 — NAME=eth1 , а строку с конфигурацией старой wi-fi карты просто закомментировал.

4 мысли о “Изменить имя сетевого интерфейса в Debian/Ubuntu Linux”

Спасибо. Помогло копать дальше. В конце концов, я это файл удалил и после перезагрузки система все сетевые интерфейсы переименовала по умолчанию…

Источник

Оцените статью