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

40

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

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

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

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

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

[email protected]:~$ 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

[email protected]:~$ 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  

(Некоторая информация была проигнорирована и подавлена ​​XD) Я уже пробовал некоторые ссылки:

Изменение имени сетевого интерфейса после обновления до 15.10 - udev меняется Как переименовать интерфейс Ethernet?

Спасибо за помощь.

    
задан Geancarlo Abich 05.05.2016 в 04:30
источник

4 ответа

49

Существует много вводящей в заблуждение информации о том, как изменить имена сетей в последних версиях 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 ).

    
ответ дан Sebastian Marsching 10.06.2016 в 21:48
47

В 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
[email protected]:~$ 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)
    
ответ дан floorripper 21.07.2016 в 15:00
10

убунт-16,04-сервер-amd64

В файле grub измените

GRUB_CMDLINE_LINUX=""

к

GRUB_CMDLINE_LINUX="net.ifnames=0"

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

sudo update-grub

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

sudo reboot
    
ответ дан Syed-anwar Syed-bueraheng Al-I 23.08.2016 в 06:56
7

Я попытался смешать некоторые предложения, и я нашел решение!

Шаг 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

Это работает для меня.

    
ответ дан Geancarlo Abich 05.05.2016 в 05:12