नेटवर्क इंटरफेस, डेबियन व्हीज़ी के नाम बदलना


14

मैं एक इंटरफ़ेस के लिए एक नाम सेट करने की कोशिश कर रहा हूं, eth0 के बजाय "ethLan"। ऐसा करना यह भी सुनिश्चित करता है कि यदि प्रत्येक नाम रिबूट और कर्नेल पर संगत रहेगा।

मुझे इस विषय में कुछ लेख मिले, लेकिन वे सभी कुछ साल पुराने हैं:
http://www.debian-administration.org/articles/463
http://www.linuxfromscratch.org/hints/downloads/files/ nameif.txt

मैंने वैसा ही किया जैसा उन्होंने कहा और एथलीन मैक को / etc / mactabs / में जोड़ा । इस बिंदु पर मुझे दो समस्याएं हैं:
1) if [...] && /sbin/nameifमैंने जो स्क्रिप्ट /etc/network/if-pre-up.d/ पर रखी है, वह नहीं चलती है। मैंने इसे /etc/init.d/networking में जोड़कर हल कर लिया है , लेकिन पूर्व-अप ..d काम क्यों नहीं करता है ?
2) इंटरफ़ेस तब तक लोड नहीं होगा जब तक कि मैं मैन्युअल रूप से ifconfig ethLan नहीं करता, जब तक कि इसे / etc / नेटवर्क / इंटरफेस में जोड़ने के बावजूद । मैं क्या गलत कर रहा हूं?

जवाबों:


17

आपके द्वारा पाए गए लेख कुछ पुराने हैं। Udev के माध्यम से नेटवर्क इंटरफेस को नाम आवंटित करने के लिए अब एक आसान तरीका है ।

डेबियन और डेरिवेटिव (उबंटू सहित) पर, नामक एक फ़ाइल के लिए बाहर देखो /etc/udev/rules.d/70-persistent-net.rules। यह फाइल /lib/udev/rules.d/75-persistent-net-generator.rulesस्क्रिप्ट की मदद से बनाई गई है /lib/udev/write_net_rules। हर बार जब udv एक नया नेटवर्क डिवाइस देखता है, तो वह इसे एक नया नंबर देगा और उस नंबर को एपेंड करेगा /etc/udev/rules.d/70-persistent-net.rules। इस तरह, इंटरफ़ेस संख्या रिबूट में लगातार बनी रहती है, और यदि आप पुनर्स्थापित करते हैं तो पुनर्स्थापना के बाद बनी रहेगी /etc

(यदि आपका वितरण इन फ़ाइलों को शिप नहीं करता है, तो डेबियन पैकेज में देखें ।)

यदि आप एक इंटरफ़ेस को एक सार्थक नाम देना चाहते हैं और आपके पास है /etc/udev/rules.d/70-persistent-net.rules, तो आपको बस उस फ़ाइल को संपादित करने और बदलने की आवश्यकता "eth0"है "ethLan"udevadm trigger --sysname eth0फ़ाइल संपादित करने के बाद मौजूदा डिवाइस का नाम बदलने के लिए चलाएँ (मुझे लगता है कि इसके लिए इंटरफ़ेस बंद करने की आवश्यकता है)। यदि आपके पास वह फ़ाइल नहीं है, तो आप स्वयं से मेल खाते हुए एक-लाइन लिख सकते हैं (डेबियन कहते हैं कि जटिल स्क्रिप्ट केवल यह स्वचालित रूप से करने के लिए हैं):

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", NAME="ethLan"

1
यदि आप udv नियमों में प्रयोग करने योग्य विशेषताओं की एक आसान सूची चाहते हैं, तो आप कुछ इस तरह की कोशिश कर सकते हैं udevadm info -a /sys/class/net/eth0। ( udevadm(8)विवरण देखें)
ऑस्टिन एडम्स

1
प्रश्न स्पष्ट रूप से व्हीजी के लिए होना चाहिए, फिर भी यह ध्यान देने योग्य हो सकता है कि यह उत्तर नए डेबियन और उबंटू के लिए मान्य नहीं है। सिस्टमड 220-7 इंटरफेस नामकरण के साथ शुरू करने के लिए अन्य तरीकों से किया जाना चाहिए।
सेम्पी

@sampi मेरा उत्तर अभी भी डेबियन जेसी (वर्तमान स्थिर रिलीज) पर लागू होता है। क्या यह खिंचाव पर विफल होता है, या यह केवल एक पदावनत विधि की सिफारिश कर रहा है? क्या आप जानते हैं कि उबंटू की कौन सी रिलीज कटऑफ है?
गिलेस एसओ- बुराई को रोकना '27

@ गाइल्स मैंने यह जानने के लिए कि क्या यह वास्तव में विफल है या केवल एक अनुशंसित पदावनति है, विवरण में पर्याप्त गहराई से नहीं खोदा। ऐसा लगता है कि उबंटू विली और नया प्रयोग सिस्टमड 220-7 से अधिक है
संपी

6

मेरे जैसे खोज इंजन के माध्यम से इस पोस्ट पर आने वाले लोगों के लिए:

डेबियन खिंचाव और नए में, आप udv उपकरणों का नाम बदलने के लिए systemd .link फ़ाइलों का उपयोग कर सकते हैं। मैनपेज के लिए https://manpages.debian.org/stretch/udev/systemd.link.5.en.html देखें ।

एक उदाहरण:

cat /etc/systemd/network/10-uplink0.link 
[Match]
MACAddress=00:0d:b9:49:8a:18

[Link]
Name=uplink0

update-initramfs -uइन अपडेट की गई कॉन्फिगर फ़ाइलों को अपने initramfs में एम्बेड करने के लिए बाद में दौड़ना न भूलें , जहां उन्हें लागू किया जाएगा।


यदि लिंक फाइलें udev.rules.d के साथ एक सिस्टम में मौजूद हैं, तो कौन-सी पूर्वता लेगा?
vfclists

1

ऐसा करने के लिए थोड़ा सरल तरीका है जिसका नाम पैकेज है ifrename। इसकी एक अलग (से udev) कॉन्फ़िगरेशन फ़ाइल है और आप इंटरफेस की पहचान करने के लिए मैक पते का उपयोग कर सकते हैं।

यह wireless-toolsहालांकि के साथ संघर्ष करता है ।


2
यह ध्यान दिया जाना चाहिए कि यदि दोनों को लगातार नाम देने के लिए उपयोग किया जाता है तो ifrenameसंघर्ष होगा udev
मिशा आरिफाइव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.