Ağ Arabirimleri adını değiştirme Ubuntu 16.04


55

Bu yeni Ubuntu 16.04 LTS sürümündeki ağ arabirimlerinin adını değiştirmeye çalıştım, ancak yok /etc/udev/rules.d/70-persistent-net.rules.

Bu yüzden kullanmaya çalıştım /lib/udev/write_net_rulesama yok.

Bu değişikliğe neden ihtiyacım var? Çünkü esnek lisans kullanan sanal platformları simüle etmek için bir araç kullanıyorum ve kimlik doğrulamanın eth0arayüz adında olması gerekiyor .

Herhangi bir öneri?

Komut ip linkdöner:

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  

(Bazı bilgiler göz ardı edildi ve bastırıldı)

Zaten bazı bağlantılar denedim:

Yanıtlar:


74

Ubuntu’nun son sürümlerinde ağ adlarının nasıl değiştirileceği hakkında çok fazla yanıltıcı bilgi var. Bazı bilgiler Ubuntu (16.04 itibariyle) sistemd'in bu bölümünü kullanmadığı için yanlış olan systemd.link'e işaret eder.

Aslında, arabirim adını değiştirmek, iki küçük farkla neredeyse eskisi gibi çalışır: İlk önce, dosyanın /etc/udev/rules.d/70-persistent-net.rulesşimdi manuel olarak oluşturulması gerekir. Bunun avantajı, bu dosyanın üzerine yazılan herhangi bir komut dosyası için endişelenmenize gerek kalmaması ve yalnızca ihtiyacınız olan satırları ekleyebilmenizdir (herhangi bir yoruma gerek yoktur). İkincisi - ve bu, çözmem için çok zaman harcayan değişiklik - bu, Ubuntu 14.04 LTS ile karşılaştırıldığında biraz değişti:

NIC'nin arayüz adını MAC adresi "02: 01: 02: 03: 04: 05" olan "eth0" olan sabitlemek için satır şimdi:

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

Bu çizgi, Ubuntu 14.04 LTS'deki ile neredeyse aynı gibi görünüyor; küçük bir fark var: Ubuntu 14.04'te, ek koşul vardı KERNEL=="eth*". Nedense, bu Ubuntu 16.04 LTS'de çalışmaz. Bu ek koşul mevcutsa, tüm satır yoksayılır ve varsayılan davranışa geri dönersiniz (belirtildiği gibi 80-net-setup-link.rules).


2
Bingo! USB Docking Station NIC için şimdi enusb01 var. Teşekkürler! # USB Ekran Bağlantısı Bağlama İstasyonu dev_id} == "0x0", ATTR {type} == "1", NAME = "enusb1"
saat

Nasıl adını ayarlayabilirsiniz enp0s1gelen enp0s17? Aynı işlem mi? Ayrıca, ben gibi sanal ağ-arayüzleri için ne yapmalıyım enp0s1:1veya enp0s2vs.?
soufrk

2
Bunların hepsini 16.04'te belirtmeniz gerekmez. Ben SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"
kaçmayı başardım

4
kbuilds, Linux başına Sıfırdan : DRIVERS == "? *" - Bu, Udev'in VLAN veya köprü alt arayüzlerini görmezden gelmesi için var (çünkü bu alt arayüzlerin sürücüleri yoktur). Bu alt arabirimler atlanır çünkü atanacak ad üst aygıtlarıyla çakışır.
John Doe

1
Önemli: yeniden adlandırılan arabirimin otomatik olarak başladığından emin olmak için / etc / network / interfaces komutunu düzenlemeniz gerekir. Aksi takdirde, eğer SSH kullanıyorsanız - neden işe yaramadığını anlamaya çalışırken boşa harcadığınız zamandan söz etmeyin.
user4551

65

Ubuntu 16.04.1 LTS'de, Linux 4.4.0-31-genericx86_64 MATE plakasını açtı. @Ceancarlo Abich'in bir adımını cevapladı ve çalıştı . Ubuntu, yeniden başlatıldıktan hemen sonra yeni bir ad oluşturdu:

Satırı değiştirerek / etc / default / grub'unuzu düzenleyin

GRUB_CMDLINE_LINUX=""

için

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

ve sonunda:

$ sudo update-grub

ve sisteminizi yeniden başlatın:

$ 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)

1
Bu adımların güncellenmesinden sonra benim için çalışmıyor. ifcofig sadece "lo" kartı göstermiyor, eth ve ens göstermiyor :(
vimal prakash

2
Bu benim için çalıştı. @vimalprakash Ayrıca, bu değişiklikten sonra ifconfig çıkışında sadece 'lo' ifadesi vardı. Ancak, çünkü / etc / network / arabirimlerindeki konfigürasyonlar eski isimlerden beri diğer arayüzlerin kapalı olması (tüm arayüzleri görmek için ifconfig -a işlevini yapın).
chitti

Benim için çalıştı.
Paulo,

komutları ne "net.ifnames = 0" && "biosdevname = 0" yapmak ??? Buradaki yazı zaten altın saf .... 16.04

2
Ubuntu 18.04'te de çalıştı
Simon Warta

12

Ubuntu-16.04-sunucu amd64

Olarak /etc/default/grub, değişim

GRUB_CMDLINE_LINUX=""

için

GRUB_CMDLINE_LINUX="net.ifnames=0"

Ardından, şunu yazın:

sudo update-grub

ve sisteminizi yeniden başlatın

sudo reboot

3
Daha iyiGRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
musbach

8

Bazı önerileri karıştırmaya çalıştım ve çözümü buldum!

Adım 1 : Varsayılan Firmware devralınan adlarını devre dışı bırakın.

Çizginizi /etc/default/grubdeğiştirerek adresinizi düzenleyin

GRUB_CMDLINE_LINUX=""

için

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

ve, nihayet kök olarak çalıştırın:

$ sudo update-grub

ve sisteminizi yeniden başlatın.

$ sudo reboot

Adım 2 : Kalıcı dosyayı/etc/udev/rules.d/70-persistent-net.ruleskök olarakoluşturunve doldurun.

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

Örnek:

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

(Yeniden adlandırmak istediğiniz arayüze atıfta bulunmak için MAC Adresi arayüzlerini kullanın ve 'X' arayüz adı değerlerini istediğiniz gibi değiştirin)

Değişiklikleri kaydedin ve yeniden başlatın.

$ sudo reboot

Bu benim için çalışıyor.


4
İkinci adım gerekli değildir.
musbach

1
Evet. @ Musbach'ın 16.04'te söylediklerini onaylayabilir mi
menixator
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.