Як перейменувати мережевий інтерфейс у 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..летки говорять про 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, а потім - відповіді, яку я зв'язав вище.
Pinja-Liina Jalkanen

Відповіді:


29

Моє рішення для цього було створити файл /etc/udev/rules.d/10-rename-network.rulesіз вмістом:

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

1
Цей DID працює для мене на Ubuntu 15.10 (на відміну від більш високоголосних відповідей та коментарів на запитання)
Джонатан Хартлі

1
@ steve-mohan Це правильна відповідь і її слід позначити як правильну.
Хубро

5
Це дійсно працює з 16.04.
EnzoR

Оскільки це головна відповідь - просто хочу зазначити, що насправді працювало для мене .. довелося змінити конфігурацію grub і відновити команду завантаження, щоб відключити перейменування мережевих інтерфейсів, як описано тут: itzgeek.com/how-tos/ mini-howtos /…
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:ffMAC-адресою пристрою, який я хотів змінити. Після перезавантаження назва була потрібною.


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

@Zanna Це зроблено
Дмитро Козлов

2
Після незліченних спроб усього в Інтернеті, це те, що для мене виправлено Ethernet. Моя ситуація (для Google Searches в майбутньому) не була мережею після встановлення 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 (мінімум) на малиновому пі 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.