Изменение имени сетевого интерфейса Ubuntu 16.04

Изменение имени сетевого интерфейса Ubuntu 16.04

Я попытался изменить имя сетевого интерфейса в этой новой версии Ubuntu 16.04 LTS, но в ней нет файла /etc/udev/rules.d/70-persistent-net.rules.

Итак, я попытался воспользоваться им, /lib/udev/write_net_rulesно его не существует.

Зачем мне эта модификация? Потому что я использую инструмент для моделирования виртуальных платформ, которые используют гибкое лицензирование, и аутентификация должна быть в eth0имени интерфейса.

Любое предложение?

Команда ip linkвозвращает:

user@laptop:~$ ip link 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp6s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether b8:2a:xx:yy:xx:yy brd ff:ff:ff:ff:ff:ff
3: wlp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 5c:e0:xx:yy:xx:yy brd ff:ff:ff:ff:ff:ff

user@laptop:~$ ifconfig 
enp6s0    Link encap:Ethernet  HWaddr b8:2a:xx:yy:xx:yy  
lo        Link encap:Local Loopback  
wlp7s0    Link encap:Ethernet  HWaddr 5c:e0:xx:yy:xx:yy  

(Некоторая информация была проигнорирована и скрыта)

Я уже попробовал некоторые ссылки:

решение1

Существует много вводящей в заблуждение информации о том, как изменить сетевые имена в последних версиях Ubuntu. Часть информации указывает на systemd.link, что просто неверно, поскольку Ubuntu (начиная с 16.04) не использует эту часть systemd.

На самом деле, изменение имени интерфейса работает почти так же, как и раньше, с двумя небольшими отличиями: во-первых, файл /etc/udev/rules.d/70-persistent-net.rulesтеперь нужно создавать вручную. Это имеет то преимущество, что вам не нужно беспокоиться о том, что какой-либо скрипт перезапишет этот файл, и вы можете просто добавить нужные вам строки (вам также не нужны никакие комментарии). Во-вторых, и это изменение стоило мне много времени, чтобы разобраться с ним, формат немного изменился по сравнению с Ubuntu 14.04 LTS:

Строка для исправления имени интерфейса сетевой карты с MAC-адресом «02:01:02:03:04:05» на «eth0» теперь выглядит так:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="02:01:02:03:04:05", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"

Эта строка выглядит почти так же, как в Ubuntu 14.04 LTS, с одним небольшим отличием: в Ubuntu 14.04 было дополнительное условие KERNEL=="eth*". По какой-то причине это не работает в Ubuntu 16.04 LTS. Если присутствует это дополнительное условие, вся строка игнорируется, и вы возвращаетесь к поведению по умолчанию (как указано в 80-net-setup-link.rules).

решение2

На Ubuntu 16.04.1 LTS установлен Linux plaptop 4.4.0-31-genericx86_64 MATE. первый шаг ответа @Geancarlo Abich и это сработало. Ubuntu создала новые имена сразу после перезагрузки:

Отредактируйте файл /etc/default/grub, изменив строку

GRUB_CMDLINE_LINUX=""

к

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

и наконец:

$ sudo update-grub

и перезагрузите систему:

$ sudo reboot
msa@plaptop:~$ ifconfig 
eth0      Link encap:Ethernet  HWaddr 70:5a:0f:d7:03:38  
          inet addr:10.67.10.43  Bcast:10.67.10.255  Mask:255.255.255.0
          inet6 addr: fe80::8c03:edb5:a3d1:ba21/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:63129 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37788 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:51115719 (51.1 MB)  TX bytes:5006758 (5.0 MB)
          Interrupt:16 Memory:f1200000-f1220000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:255 errors:0 dropped:0 overruns:0 frame:0
          TX packets:255 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:21076 (21.0 KB)  TX bytes:21076 (21.0 KB)

wlan0     Link encap:Ethernet  HWaddr 44:85:00:62:c6:e5  
          inet addr:10.67.14.106  Bcast:10.67.14.255  Mask:255.255.255.0
          inet6 addr: fe80::5844:f9dd:32ff:9b45/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25 errors:0 dropped:0 overruns:0 frame:0
          TX packets:86 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5320 (5.3 KB)  TX bytes:14611 (14.6 KB)

решение3

Ubuntu-16.04-сервер-amd64

В /etc/default/grubизменении

GRUB_CMDLINE_LINUX=""

к

GRUB_CMDLINE_LINUX="net.ifnames=0"

Затем введите:

sudo update-grub

и перезагрузите систему

sudo reboot

решение4

Я попробовал смешать несколько предложений и нашел решение!

Шаг 1: Отключить унаследованные имена прошивки по умолчанию.

Отредактируйте, /etc/default/grubизменив строку с

GRUB_CMDLINE_LINUX=""

к

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

и, наконец, запустите от имени root:

$ sudo update-grub

и перезагрузите систему.

$ sudo reboot

Шаг 2: Создайте постоянный файл /etc/udev/rules.d/70-persistent-net.rulesот имени пользователя root и заполните его.

$ sudo gedit /etc/udev/rules.d/70-persistent-net.rules

Пример:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device lan Device
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:yy:XX:yy:XX:yy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="ethX"

# PCI device Wlan Device
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:yy:XX:yy:XX:yy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wlanX"

(Используйте MAC-адрес интерфейса для обозначения интерфейса, который вы хотите переименовать, и измените значения имени интерфейса «X» по своему усмотрению)

Сохраните изменения и перезагрузите компьютер.

$ sudo reboot

Мне это подходит.

Связанный контент