Почему мой сетевой интерфейс называется 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