Changement du nom des interfaces réseau Ubuntu 16.04

44

J'ai essayé de changer le nom des interfaces réseau sur cette nouvelle version d'Ubuntu 16.04 LTS mais je n'ai pas le fichier /etc/udev/rules.d/70-persistent-net.rules.

J'ai donc essayé d'utiliser / lib / udev / write_net_rules mais ça n'existe pas.

Pourquoi ai-je besoin de cette modification?
Parce que j'utilise un outil pour simuler des plates-formes virtuelles qui utilisent des licences flexibles et que l'authentification doit être au nom de l'interface eth0.

Une suggestion?

La commande ip link retourne

[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  

(Certaines informations ont été ignorées et supprimées XD) J'ai déjà essayé quelques liens:

Le nom de l'interface réseau change après la mise à jour vers 15.10 - modifications apportées à udev Comment renommer une interface Ethernet?

Merci pour l’aide.

    
posée Geancarlo Abich 05.05.2016 - 04:30
la source

4 réponses

59

Il y a beaucoup d'informations trompeuses sur la façon de changer les noms de réseau dans les versions récentes d'Ubuntu. Certaines informations pointent vers systemd.link, ce qui est tout simplement faux car Ubuntu (à partir de 16.04) n'utilise pas cette partie de systemd.

En fait, changer le nom de l'interface fonctionne presque comme avant, avec deux petites différences: tout d'abord, le fichier /etc/udev/rules.d/70-persistent-net.rules doit maintenant être créé manuellement. Cela a l'avantage que vous n'avez pas à vous soucier d'un script remplaçant ce fichier et peut simplement ajouter les lignes dont vous avez besoin (vous n'avez pas besoin de commentaires non plus). Deuxièmement - et c'est le changement qui m'a coûté beaucoup de temps pour le comprendre - le format a légèrement changé par rapport à Ubuntu 14.04 LTS:

La ligne pour fixer le nom d'interface de la carte réseau avec l'adresse MAC "02: 01: 02: 03: 04: 05" à "eth0" est maintenant:

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

Cette ligne est presque identique à Ubuntu 14.04 LTS avec une légère différence: dans Ubuntu 14.04, il y avait la condition supplémentaire KERNEL=="eth*" . Pour une raison quelconque, cela ne fonctionne pas dans Ubuntu 16.04 LTS. Si cette condition supplémentaire est présente, la ligne entière est ignorée et vous revenez au comportement par défaut (comme spécifié dans 80-net-setup-link.rules ).

    
réponse donnée Sebastian Marsching 10.06.2016 - 21:48
la source
53

Sous Ubuntu 16.04.1 LTS, Linux plaptop 4.4.0-31-genericx86_64 MATE. première étape de @Geancarlo Abich a répondu et cela a fonctionné . Ubuntu a créé un nouveau nom directement après le redémarrage:

  

Modifiez votre / etc / default / grub en changeant la ligne depuis

GRUB_CMDLINE_LINUX=""
     

à

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

et enfin:

$ sudo update-grub
     

et redémarrez votre système:

$ 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)
    
réponse donnée floorripper 21.07.2016 - 15:00
la source
10

ubuntu-16.04-server-amd64

Dans le fichier grub, modifiez

GRUB_CMDLINE_LINUX=""

à

GRUB_CMDLINE_LINUX="net.ifnames=0"

Ensuite, tapez:

sudo update-grub

et redémarrez votre système

sudo reboot
    
réponse donnée Syed-anwar Syed-bueraheng Al-I 23.08.2016 - 06:56
la source
8

J'ai essayé de mélanger des suggestions et j'ai trouvé la solution!

Étape 1 : désactivez les noms hérités du microprogramme par défaut.

Modifiez votre /etc/default/grub en changeant la ligne depuis

GRUB_CMDLINE_LINUX=""

à

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

et enfin exécutés en tant que root:

$ sudo update-grub

et redémarrez votre système.

$ sudo reboot

Étape 2 : créez le fichier persistant /etc/udev/rules.d/70-persistent-net.rules en tant que root et remplissez-le.

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

Exemple:

# 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"

(Utilisez les interfaces MAC Address pour faire référence à l'interface que vous souhaitez renommer et modifiez les valeurs de nom d'interface 'X' comme vous le souhaitez)

Enregistrer les modifications et redémarrer.

$ sudo reboot

Cela fonctionne pour moi.

    
réponse donnée Geancarlo Abich 05.05.2016 - 05:12
la source

Lire d'autres questions sur les étiquettes