Почему мой сетевой интерфейс называется enp0s25 вместо eth0?

Многие мои скрипты перестали работать после установки Ubuntu 15.10, и у меня возникают проблемы с запоминанием этого нового имени, так как я годами привык к ethx и wlanx. Есть ли причина для этого изменения? Должен ли я привыкнуть к этому или я могу просто переименовать его и вернуться к старому доброму eth0?

$ ifconfig

enp0s25   Link encap:Ethernet  HWaddr 77:5a:5e:a6:86:d5  
      inet addr:192.168.31.239  Bcast:192.168.31.255  Mask:255.255.255.0
      inet6 addr: fe80::725a:b6ff:fea6:86d7/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:4833 errors:1332 dropped:0 overruns:0 frame:666
      TX packets:5589 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:3266446 (3.2 MB)  TX bytes:1046654 (1.0 MB)
      Interrupt:20 Memory:d3500000-d3520000

1 ответ

Решение

Это называется предсказуемым именованием сетевого интерфейса и является частью systemd, к которому Ubuntu переходила с версии 15.04.

Основная идея заключается в том, что в отличие от предыдущей схемы именования * nix, где зондирование оборудования происходит в произвольном порядке и может меняться между перезагрузками, здесь имя интерфейса зависит от физического местоположения оборудования и может быть предсказано / угадано , посмотрев на lspci или же lshw вывод. И наоборот, мы можем угадать информацию о его физическом положении в системе pci. В вашем случае это будет шина pci 0, слот 2. Согласно статье freedesktop.org, на самом деле существует 3 способа назначения имени интерфейса: на основе BIOS/ встроенного программного обеспечения для встроенных плат, на основе информации PCI и на основе MAC адрес интерфейса. Обратитесь сюда для других примеров.

Согласно странице freedesktop.org, одной из причин перехода к предсказуемому именованию является то, что классическое соглашение об именах может привести к угрозе безопасности программного обеспечения в многоинтерфейсных системах, когда устройства добавляются и удаляются при загрузке. Кроме того, согласно комментарию Сэма Хейнса: "На большом сервере со многими портами Ethernet это бесценно: вы можете сразу сказать, какой интерфейс идет к какому порту, а добавление или удаление оборудования не меняет названия других портов".

См. Как переименовать сетевой интерфейс в 15.10, если вы решите вернуться к другой версии именования.

FWIW файл freedesktop.org PredictableNetworkInterfaceNames называет комментарии исходного файла каноническими, но этот файл был изменен для удаления комментариев - см. https://github.com/systemd/systemd/pull/12518.

Вот быстрое исправление, которое я использую в системах на основе Debian и RHEL

# Изменить / etc / grub / default

Шаг 1.) Добавьте это в строку ниже "net.ifnames = 0 biosdevname= 0"

GRUB_CMDLINE_LINUX= "net.ifnames = 0 biosdevname= 0"

Шаг 2.) Обновите GRUB

Это зависит от вашей ОС.

Ubuntu/Mint на основе Debian:

update-grub

Centos / RHEL

grub2-mkconfig -o /boot/grub2/grub.cfg

Источник: http://realtechtalk.com/Linux_How_To_Change_NIC_Name_to_eth0_instead_of_enps33_or_enp0s25-2303-articles

Другие вопросы по тегам