Как переименовать сетевой интерфейс в 15.10?


35

Я решил сделать чистую установку 15.10, и в результате нужно переустановить MATLAB. Лицензии MATLAB привязаны к аппаратному адресу eth0.

Моя карта Ethernet указана как enp1s0, и мне нужно переименовать ее в eth0. только lo указан в списке /etc/network/interfacesи /etc/udev/rules.d/70-persistent-net.rulesне существует, поэтому я не уверен, с чего начать.


1
Вы можете определить udevправило для переименования интерфейса следующим образом: eth0.let говорит, что MAC-адрес интерфейса - это xx:XX:xx:YY:yy:ZZто, что вы можете создать файл, /etc/udev/rules.d/например, 99-rename-net.rulesи вставить SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:XX:xx:YY:yy:ZZ", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"в файл. Если вы не знаете MAC-адрес, вы можете получить его из /sys/class/net/enp1so/addressфайла ..
Heemayl

@heemayl Если вы добавили этот комментарий в качестве ответа, то люди могли бы более легко комментировать его и обсуждать, почему он работает для некоторых людей, а не для других. Объятия!
Джонатан Хартли

Ответ @ heemayl в приведенном выше комментарии не сработал для меня при новой установке Ubuntu 15.10.
Джонатан Хартли,

Выше @jdnz предложил использовать .linkфайлы systemd , но некоторые другие предположили, что это не работает для них. Скорее всего, это не сработало, потому что после редактирования файлов ссылок необходимо обновить initramfs . Итак, сначала следуйте ответу @ jndz, а затем следуйте ответу, который я связал выше.
Пинья-Лийна Джалканен

Ответы:


29

Моим решением было создать файл /etc/udev/rules.d/10-rename-network.rulesс содержимым:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

1
Это ДЕЙСТВИТЕЛЬНО работает для меня в Ubuntu 15.10 (в отличие от ответов и комментариев по этому вопросу с более высоким рейтингом)
Джонатан Хартли,

1
@ steve-mohan Это правильный ответ и должен быть помечен как правильный.
Hubro

5
Это действительно работает с 16.04.
EnzoR

Так как это лучший ответ - просто хочу отметить, что на самом деле работало для меня ... пришлось изменить конфигурацию grub и заново создать
qodeninja

1
Работал на меня в 16.04. ff: ff: ff: ff: ff: ff необходимо заменить на MAC-адрес.
Кен Ширифф

7

У меня была такая же проблема и добавление файлов в /etc/udev/rules.d/не помогло. Похоже, проблема заключается в использовании предсказуемых имен сетевых интерфейсов, как описано здесь . Чтобы создать свою собственную схему именования вручную, т. Е. Назвать ваше устройство «eth0» для MATLAB, вы можете создать свои собственные .linkфайлы, /etc/systemd/network/как описано здесь .

В частности, я создал файл /etc/systemd/network/10-eth.linkс содержимым

[Match]
MACAddress=ff:ff:ff:ff:ff:ff
[Link]
Name=eth0

заменить ff:ff:ff:ff:ff:ffна MAC-адрес устройства, которое я хотел изменить. После перезагрузки имя было по желанию.


1
Это не сработало для меня, и я хотел бы знать, почему.
richvdh

1
Это не сработало для меня в Ubuntu 15.10
Джонатан Хартли,

1
Это не будет работать с 16.04.
EnzoR

6

Если по какой-либо причине ответ, предложенный @zab, не работает для вас, вы также можете отключить эту схему именования, как здесь . Но метод, предложенный @zab, потенциально безопаснее

Я просто не включил biosdevname = 0 в аргумент командной строки, он по умолчанию выключен.

Следующие шаги должны быть сделаны:

$ sudo nano /etc/default/grub

В строке GRUB_CMDLINE_LINUX добавьте net.ifnames = 0

GRUB_CMDLINE_LINUX="[previous parameters] net.ifnames=0"

Затем сгенерируйте новый файл grub:

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

По окончании перезагрузите систему.


1
Не могли бы вы уточнить, чтобы этот ответ все еще был полезен, если эта ссылка не будет доступна в будущем?
Занна

@Zanna Все готово
Дмитрий Козлов

2
После бесчисленных попыток сделать что-нибудь во всем Интернете, это то, что исправило Ethernet для меня. Моя ситуация (для Google Searches в будущем) была без Ethernet после установки Linux Mint (или Ubuntu) через Serva / PXE, потому что глупый сетевой адаптер использует предсказуемое имя сетевого интерфейса вместо eth0. Инструкции были найдены здесь: itzgeek.com/how-tos/mini-howtos/…
ThePCpenguin

На сегодняшний день (со всеми установленными обновлениями) это работает. Спасибо.
Erutan409

2

Это работало для меня на сервере 16.04, так как eno1 показывал, когда я это делал ifconfig -a. Мне пришлось вызвать интерфейс, как ifconfig eno1 upтогда я сделал следующее:

vi /etc/udev/rules.d/10-network.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

Меняет ли это имя сразу или только после перезагрузки?
Xen2050

2

У меня была проблема с сервером 16.04 (минимальная) на Raspberry Pi 3, и ни один из опубликованных ответов не помог. Решением проблемы было отключение предсказуемых имен сетевых интерфейсов, как описано здесь: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

запустив эту команду:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.