बदलते नेटवर्क इंटरफेस का नाम Ubuntu 16.04 है


55

मैंने इस नए उबंटू 16.04 एलटीएस संस्करण पर नेटवर्क इंटरफेस नाम बदलने की कोशिश की, लेकिन ऐसा नहीं है /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  

(कुछ सूचनाओं को नजरअंदाज कर दिया गया और दबा दिया गया)

मैंने पहले ही कुछ लिंक आज़मा लिए हैं:

जवाबों:


74

उबंटू के हाल के संस्करणों में नेटवर्क के नाम को कैसे बदलना है, इस बारे में भ्रामक जानकारी है। कुछ जानकारी systemd.link को इंगित करती है, जो कि सिर्फ गलत है क्योंकि उबंटू (16.04 तक) सिस्टमड के इस हिस्से का उपयोग नहीं करता है।

दरअसल, इंटरफ़ेस नाम बदलना लगभग उसी तरह काम करता है जैसा कि दो छोटे अंतरों के साथ किया जाता था: पहला, /etc/udev/rules.d/70-persistent-net.rulesअब फ़ाइल को मैन्युअल रूप से बनाना होगा। इससे यह फायदा होता है कि आपको इस फाइल को ओवरराइट करने वाली किसी भी स्क्रिप्ट के बारे में चिंता करने की ज़रूरत नहीं है और बस उन लाइनों को जोड़ सकते हैं जिनकी आपको ज़रूरत है (आपको किसी भी टिप्पणी की ज़रूरत नहीं है)। दूसरा - और यह वह बदलाव है जिसकी वजह से मुझे यह पता लगाने में बहुत समय लगता है - यह प्रारूप Ubuntu 14.04 LTS की तुलना में थोड़ा बदल गया है:

मैक पते के साथ एनआईसी के इंटरफ़ेस नाम को ठीक करने के लिए लाइन "02: 01: 02: 03: 04: 05" अब "लोकाचार" है:

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

यह रेखा उबंटू 14.04 एलटीएस में लगभग एक समान अंतर के साथ दिखाई देती है: उबंटू 14.04 में, अतिरिक्त स्थिति थी KERNEL=="eth*"। किसी कारण से, यह Ubuntu 16.04 LTS में काम नहीं करता है। यदि यह अतिरिक्त स्थिति मौजूद है, तो पूरी पंक्ति को अनदेखा कर दिया जाता है और आप डिफ़ॉल्ट व्यवहार पर वापस आ जाते हैं (जैसा कि निर्दिष्ट है 80-net-setup-link.rules)।


2
बिंगो! अब मेरे पास मेरे USB डॉकिंग स्टेशन के एनआईसी के लिए enusb01 है। धन्यवाद! # USB प्रदर्शन लिंक डॉकिंग स्टेशन SUBSYSTEM == "नेट", ACTION == "जोड़ें", DRIVY == "? *?", एटीटीआर {पता} == "8c: ae: 4c: fa: 92: bf", एटीटीआर {? dev_id} == "0x0", ATTR {type} == "1", NAME = "enusb1"
flickerfly

मैं कैसे करने के लिए नाम सेट कर सकते हैं enp0s1से enp0s17? क्या यह वही प्रक्रिया है? इसके अलावा, मुझे वर्चुअल नेटवर्क-इंटरफेस जैसे enp0s1:1या enp0s2आदि के लिए क्या करना चाहिए ?
soufrk

2
आपको वास्तव में 16.04 में वह सब निर्दिष्ट करने की आवश्यकता नहीं है। मैं के साथ भाग प्राप्त करने में सक्षम थाSUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"
kbuilds

4
@ क्यूबिल्ड्स, प्रति लिनक्स स्क्रैच से : DRIVERS == "? *?" - यह इसलिए मौजूद है ताकि यूएवी वीएलएएन या ब्रिज सब-इंटरफेस को अनदेखा कर दे (क्योंकि इन सब-इंटरफेस में ड्राइवर नहीं होते हैं)। इन उप-इंटरफेस को छोड़ दिया जाता है क्योंकि जो नाम सौंपा जाएगा वह उनके मूल उपकरणों से टकराएगा।
जॉन डो

1
महत्वपूर्ण: आपको यह सुनिश्चित करने के लिए / आदि / नेटवर्क / इंटरफेस को संपादित करने की आवश्यकता है कि नामांकित इंटरफ़ेस स्वचालित रूप से शुरू हो जाए। अन्यथा, यदि आप एसएसएच पर हैं - तो आप उस मशीन तक पहुंच खो देंगे, न कि बेकार समय का उल्लेख करने की कोशिश करने के लिए कि यह काम क्यों नहीं करता है।
user4551

65

उबंटू 16.04.1 एलटीएस पर, लिनक्स प्लैप्टॉप 4.4.0-31-जेनेरिक्स86_64 मेट। @Geancarlo Abich जवाब में से एक कदम और यह काम किया । रिबूट के बाद सीधे उबंटू ने एक नया नाम बनाया:

अपने / 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)

1
इन चरणों के अद्यतन के बाद, मेरे लिए काम नहीं कर रहा। ifcofig केवल "लो" कार्ड दिखाते हैं, यह नैतिकता नहीं दिखाता है और सुनिश्चित करता है :(
विमल प्रकाश

2
इसने मेरे लिए काम किया। @vimalprakash के पास इस परिवर्तन के बाद ifconfig आउटपुट में केवल 'लो' था। हालाँकि, ऐसा इसलिए है क्योंकि अन्य इंटरफेस नीचे थे (ifconfig -a सभी इंटरफेस देखने के लिए) क्योंकि मेरे / etc / नेटवर्क / इंटरफेस में कॉन्फ़िगरेशन पुराने नामों में थे।
चिट्टी

इसने मेरे लिए काम किया।
पाउलो

क्या आदेश "net.ifnames = 0" और& "biosdevname = 0" करते हैं ??? यहाँ पोस्ट शुद्ध सोने वैसे भी है .... 16.04 xubuntu

2
उबंटू 18.04 पर भी काम किया
शमौन वार्टा


8

मैंने कुछ सुझावों को मिलाने की कोशिश की और मुझे इसका हल मिल गया!

चरण 1 : डिफ़ॉल्ट फर्मवेयर विरासत में मिला नाम अक्षम करें।

से अपनी /etc/default/grubलाइन बदलने को संपादित करें

GRUB_CMDLINE_LINUX=""

सेवा

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

और, अंत में रूट के रूप में चलाएं:

$ sudo update-grub

और अपने सिस्टम को रिबूट करें।

$ sudo reboot

चरण 2 : लगातार फ़ाइल/etc/udev/rules.d/70-persistent-net.rulesको रूट के रूप मेंबनाएँऔर उन्हें भरें।

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

(इंटरफ़ेस का उल्लेख करने के लिए इंटरफेस मैक पते का उपयोग करें जिसे आप नाम बदलना चाहते हैं, और 'एक्स' इंटरफ़ेस नाम मानों को बदलें जो आप चाहते हैं)

परिवर्तन सहेजें और रीबूट करें।

$ sudo reboot

यह मेरे लिए काम करता है।


4
चरण दो आवश्यक नहीं है।
मस्कट

1
हां। 16.04 को @musbach ने क्या कहा, इसकी पुष्टि कर सकते हैं
मेनिक्सेटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.