उबंटू 18.04: / etc / नेटवर्क / इंटरफेस पर वापस जाएं


44

उबंटू 18.04 के आसपास कुछ समय शुरू, Ubuntu devs क्लासिक उपयोग बंद कर दिया /etc/init.d/networkingऔर /etc/network/interfacesनेटवर्क को विन्यस्त करने की विधि और कुछ करने के लिए बंद कर बात कहा जाता है netplan। इसने बहुत से लोगों को बहुत क्रोधित किया है और व्यापक रूप से एक बुरा कदम माना गया है। क्या नेटवर्क को कॉन्फ़िगर करने के लिए netplanसही /etc/network/interfacesविधि को निकालना और उपयोग करना संभव है ?


2
सिर्फ नेटप्लान से कॉन्फ़िगर क्यों नहीं? ज्यादातर स्थितियों में, यह बहुत सीधा है।
मिर्ची 5

3
@ chili555 यह हो सकता है कि मुझे सिर्फ बदलाव को स्वीकार करना है और कुछ नया सीखना है। मैं यह जानना चाहूंगा कि क्या यह उस तरह से वापस लौटना तुच्छ है, जैसा होना चाहिए। बहुत कुछ systemd, मैं समझता हूं कि विघटनकारी परिवर्तन कभी-कभी फायदेमंद हो सकता है और गले लगाया जा सकता है। हालाँकि, यह निश्चित रूप से उन समयों में से एक नहीं है जब परिवर्तन की आवश्यकता थी या लाभदायक थी।
jdgregson

1
यह तुच्छ नहीं है और त्रुटि के मामले में आसानी से प्रतिवर्ती नहीं है। यदि आप खतरनाक तरीके से जीना चाहते हैं, तो मुझे जवाब देने में खुशी होगी। दूसरी ओर, हम कुछ मिनटों में नेटप्लान को कॉन्फ़िगर कर सकते हैं। आप क्या पसंद करेंगे? पीएस- मैं पूरी तरह से समझने के लिए नाटक नहीं करता हूं कि कैसे बहिष्करण /etc/network/interfaces, बड़े सिस्टमड चित्र में फिट बैठता है। मैं सिर्फ इतना ही कर सकता हूं कि जिन लोगों ने बदलाव की शुरुआत की, वे जानते हैं कि यह एक बेहतर फिट क्यों है।
मिर्ची 5

1
या, बस ठीक से नेटप्लान कॉन्फ़िगर करें और किया जाए।
मिर्ची 5

1
@ chili555 नेटप्लान वर्चुअल नेटवर्क इंटरफेस का समर्थन नहीं करता है। यहां देखें: askubuntu.com/questions/990825/virtual-interface-in-netplan
user3751385

जवाबों:


43

निम्न प्रक्रिया Ubuntu 18.04 (बायोनिक बीवर) के लिए काम करती है

I. ifupdown पैकेज को पुनर्स्थापित करें :

# apt-get update
# apt-get install ifupdown

द्वितीय। अपने / etc / नेटवर्क / इंटरफेस फ़ाइल को कॉन्फ़िगरेशन श्लोक के साथ कॉन्फ़िगर करें जैसे:

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug enp0s3
auto enp0s3
iface enp0s3 inet static
  address 192.168.1.133
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  # Only relevant if you make use of RESOLVCONF(8)
  # or similar...
  dns-nameservers 1.1.1.1 1.0.0.1

तृतीय। कॉन्फ़िगरेशन को प्रभावी बनाएं (कोई रिबूट की आवश्यकता नहीं):

# ifdown --force enp0s3 lo && ifup -a
# systemctl unmask networking
# systemctl enable networking
# systemctl restart networking

चतुर्थ। अवांछित सेवाओं को अक्षम और हटा दें:

# systemctl stop systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl disable systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# systemctl mask systemd-networkd.socket systemd-networkd \
networkd-dispatcher systemd-networkd-wait-online
# apt-get --assume-yes purge nplan netplan.io

फिर, आप कर रहे हैं।

नोट: आप अवश्य , अपने सिस्टम (नेटवर्क, इंटरफ़ेस नाम ...) के अनुसार मूल्यों को अनुकूलित करें।

वी। डीएनएस रिज़ॉल्वर

डीएनएस ठूंठ रिसोल्वर के रूप में systemd-RESOLVED.SERVICE (8) द्वारा उपलब्ध कराए गए के उबंटू बायोनिक ऊदबिलाव (18.04) कर उपयोग करते हैं, तुम्हारी वजह चाहिए भी DNS संपर्क करने के लिए /etc/systemd/resolved.conf फ़ाइल में जोड़ें। उदाहरण के लिए:

....
DNS=1.1.1.1 1.0.0.1
....

और फिर एक बार किए गए systemd- हल सेवा को पुनरारंभ करें:

# systemctl restart systemd-resolved

Ifupdown INTERFACES (5) फ़ाइल में DNS प्रविष्टियाँ, जैसा कि ऊपर दिखाया गया है, केवल तभी प्रासंगिक हैं जब आप RESOLVCONF (8) या इसी तरह का उपयोग करते हैं।


9
खैर, च *** उन्हें। बस apt-get installजब आप कोई नेटवर्क विन्यास मिल गया है। क्या शानदार विचार है, कैनोनिकल।
वेलकन

1
@Velkan आप अपने नेटवर्क को नेटप्लान के साथ पूर्व-कॉन्फ़िगर कर सकते हैं, फिर बाद में ifupdown पर वापस स्विच कर सकते हैं;) लेकिन मैं आपसे सहमत था। किसी तरह विहित गलत निर्णय ले सकते हैं। उदाहरण के लिए, वे सॉफ्टवेयर्स को तोड़ते हैं जो नेटवर्किंग कॉन्फ़िगरेशन (नेटप्लान के लिए कोई प्रदाता नहीं) के लिए ifupdown पर निर्भर करते हैं। यह हमारे नियंत्रण कक्ष सॉफ्टवेयर (स्थिर
सीरी

3
@StephenBoston मैं आपसे पूरी तरह सहमत हूँ। हालाँकि, भले ही Canonical नई तकनीक की शुरुआत करके आगे बढ़ने की कोशिश करे, लेकिन यह कम आक्रामक तरीके से ऐसा कर सकता है। मेरा मतलब है, विकल्प को अंतिम उपयोगकर्ता के लिए छोड़ दिया जाना चाहिए। कार्यस्थानों के लिए, ifupdown से netplan में परिवर्तन निश्चित रूप से एक बड़ी बात नहीं है, लेकिन जब आपको उबंटू सर्वर से निपटना पड़ता है, तो यह एक और कहानी है क्योंकि अधिकांश स्थिर सॉफ्टवेअर एडेप्टर को आवश्यक रूप से प्रदान नहीं करते हैं ... जो कि सिस्टमड के लिए एक ही कहानी है। मुझे हर दिन डेबियन और उबंटू दोनों से निपटना है। Ubuntu के साथ समस्या यह है कि वे पिछड़े संगतता के बारे में ज्यादा परवाह नहीं करते हैं।
नक्सविन

1
लघु सुधार: # systemctl unmak networking-># systemctl unmask networking
संतोष

1
इसके अलावा, यदि आप उपयोग करते हैं dns-domainऔर dns-searchइंटरफेस फ़ाइल में, आपको Domainsहल किया गया पैरामीटर को कॉन्फ़िगर करना चाहिए ।conf, मुझे लगता है? वैसे भी, महान काम है कि सब यहाँ एक साथ, शायद मुझे बहुत समय बचा लिया :)
OttoEisen

10

नेटप्लान टीम ने अपने FAQ पर एक आधिकारिक उत्तर यहां पोस्ट किया है :

Ifupdown में वापस कैसे जाएं

...

एक रनिंग सिस्टम पर, नेटप्लान को ifupdown और config / etc / network / interfaces को मैन्युअल रूप से इंस्टॉल करके हटाया जा सकता है जैसा कि उपयोगकर्ताओं ने पहले किया है।

इंस्टॉल समय पर, कोई उपयोगकर्ता ifcdown को preseeding netcfg / do_not_use_netplate = true द्वारा उपयोग करने का विकल्प चुन सकता है। यह इंस्टालेशन मीडिया को बूट करते समय कमांड लाइन पर प्रिज़ेड लाइन को जोड़कर किया जाता है (जैसे कि मीडिया बूट मेन्यू में, F6 दबाएँ, 'e' टाइप करें, और कमांड लाइन में जोड़ें)।

अधिक पूर्ण निर्देशों के लिए नक्सविन का उत्तर देखें।


9

नेटप्लान और याम्ल, सबसे अच्छे रूप में, सर्वर-ओनली वातावरण में नाजुक हैं (इंडेंटेशन गलतियां आपको खर्च करेंगी)। इंटरफेस काफी क्षमा कर रहा था कि इसने सर्वर पर नेटवर्क सेटिंग्स को प्रबंधित करना काफी आसान बना दिया था।
नेटप्लान नई परतों का परिचय देता है। लेकिन असली समस्या यह है कि U18 ifupdown को तोड़ता है, और NetPlan के साथ काम खत्म नहीं करता है। यदि आप DNS को प्रबंधित करते हुए ifupdown को पुनर्स्थापित करके / etc / network / interfaces में लौटते हैं, तो अब इंटरफेस फ़ाइल में काम नहीं करता है। किसी भी dns-nameservers प्रविष्टियों को नजरअंदाज कर दिया जाता है। इसके बजाय dns /etc/resolv.conf में सेट है। लेकिन आप उस फ़ाइल को संपादित नहीं कर सकते क्योंकि यह हर बार मशीन के बूट हो जाने पर फिर से लिखा जाता है। WTF? नेटप्लान को एक जीयूआई द्वारा प्रबंधित करने के लिए डिज़ाइन किया गया था ताकि सर्वर-ओनली कैंप में हम में से एक को एक नाजुक प्रणाली के साथ छोड़ दिया जाए जिसे हमें चारों ओर से टिप करना होगा। अच्छा उबंटू नहीं!
क्यों न आप हमें नेटप्लेन खत्म करने में मदद करने के लिए बूटअप पर नेटप्लान में / etc / network / interfaces में सेटिंग्स को रीडायरेक्ट करने का एक तरीका दें?


1
इस सवाल का जवाब कैसे देता है?
पियरे.विरेंस

@Dan Desjardins DNS रिज़ॉल्वर समस्या के संबंध में स्वीकृत उत्तर देखें। मूल रूप से, ifupdown INTERFACES (5) फ़ाइल में आपके द्वारा डाली गई DNS प्रविष्टियाँ केवल तभी प्रासंगिक होती हैं जब आप resolvconf (8 या समान) का उपयोग करते हैं। DNSD stub resolver को SystemD-RESOLVED.SERVICE (8) द्वारा प्रदान किए जाने के लिए, आपको अपने DNS को /etc/systemd/resolved.conf फ़ाइल में जोड़ना होगा। ऐसा करने से वे लगातार बने रहेंगे। दूसरा समाधान SYSTEMD-RESOLVED को अक्षम करना है। सेवा (8) सेवा और स्थापित / सेटअप resolvconf (8)। ​​इस उम्मीद में कि मैं पर्याप्त स्पष्ट हूं।
नक्सविन

2

सिर्फ नेटप्लान से कॉन्फ़िगर क्यों नहीं?

ठीक है, क्योंकि यह 18.04-Desktop में कॉन्फ़िगर किया गया है, यह NetworkManager के लिए सभी इंटरफेस को नियंत्रित करने वाली एक एकल पंक्ति है।

हालांकि यह संभवतः 95% उपयोगकर्ताओं के लिए उपयुक्त है, याद रखें कि NetworkManager केवल एक सत्र में लॉग इन करने के बाद ही चलाया जाता है।

क्या आप चाहते हैं कि आपकी मशीन सर्वर / डेस्कटॉप के रूप में कार्य करे, उदाहरण के लिए, स्थानीय मशीनों में फ़ाइलों की सेवा शुरू करें, VNP सर्वर के रूप में कार्य करना, आदि ... या किसी भी चीज़ को "फैंसी" करने से पहले किसी को भी कभी भी लॉग इन करना है, बस साधारण तथ्य यह है कि पर, आपको परेशानी होगी कि यह मानक 18.04-Desktop में कैसे कॉन्फ़िगर किया गया है।

बेशक, विकल्प सर्वर-नेटप्लान कॉन्फ़िगरेशन का उपयोग करना होगा, जो, जहां तक ​​मैंने पढ़ा है (स्वयं द्वारा जाँच नहीं किया गया है), इसके बजाय सिस्टमड-नेटवर्क पर हाथ नियंत्रित करता है। इस मामले में आप बेहतर सीखेंगे कि पुराने System V init के प्रतिस्थापन के रूप में systemd चीजें कैसे करता है।

क्या आपको इस रास्ते पर जाना चाहिए, फिर भी आपको नेटप्लान यमल में बदलाव करना होगा, क्योंकि डेस्कटॉप संस्करण पर नियंत्रण नेटवर्क मैनजर को दिया जाता है।


3
कम से कम एक कारण मौजूद है: नेटप्लान ओपनवेविच का समर्थन नहीं करता है।
कामिलियन

5
netplan आईपी एलियासेस का समर्थन नहीं करता (eth0: 0 शैली)। मैं विश्वास नहीं कर सकता कि इस तरह की चीज उबंटू सर्वर में अपना रास्ता कैसे पा सकती है!
हामिद फदिशी

क्योंकि मेरी netplanनिर्देशिका खाली है!
dsgdfg

NetworkManager सेवा बहुत पहले शुरू हो जाती है और इसमें सत्र या लॉग-इन उपयोगकर्ता की आवश्यकता नहीं होती है।
थेलर

1

कुंजी जान रही cloud.initहै कि वास्तविक नियंत्रण कार्यक्रम है।
कहा जा रहा है कि netplanविन्यास फाइल में लाइन "वैकल्पिक: सच" अनिवार्य है।
यह जानते हुए कि यह आसान बना दिया।

मैंने अभी हटा दिया 01-network-manager-all.yamlऔर इसे कॉपी किया /root/save/। फिर इसके स्थान पर एक अच्छा अच्छा विन्यास रखें 50-cloud-init.yaml: इसकी सामग्री निम्नलिखित है:

network:
  version: 2
  renderer: networkd
  ethernets:
    eports:
      match: 
        name: enp*
        optional: true
  bonds:
    bond0:
      interfaces: [eports]
      addresses: [192.168.2.5/24]
      gateway4: 192.168.2.1
      nameservers:
        addresses: [127.0.0.1, 8.8.4.4]          
      parameters:
        mode: 0          
        mii-monitor-interval: 100

फिर रिबूट करें और यह ठीक काम करना चाहिए।

ज्ञात अच्छा विन्यास Ubuntu 18.04 पर नेटप्लान का उपयोग करते हुए बंधे 802.3ad नेटवर्क को कॉन्फ़िगर करने से आया है ।


1
यहां सवाल यह है कि इफूपैड पर वापस स्विच कैसे किया जाता है;) भविष्य में, आपको उन्हें प्रदूषित किए बिना सवालों के जवाब देने की कोशिश करनी चाहिए, यहां तक ​​कि इसके माध्यम से प्रारंभिक विषय पर रहना हमेशा आसान नहीं होता है;)
नक्सविन

0

इस जवाब के अनुसार, समाधान सभी परिचालन .yaml फ़ाइलों को हटाने के लिए है: Ubuntu 17.10 अक्षम नेटप्लान

मैं बिना पीछे हटे कुछ भी नहीं निकालूंगा। हम इतनी आसानी से फ़ाइलों को एक तरफ ले जाकर आसानी से कर सकते हैं। सबसे पहले, फाइलों का पता लगाएं:

sudo updatedb
locate netplan | grep yaml

मेरे 18.04 सिस्टम पर, यह प्रतीत होता है कि एकमात्र ऑपरेशनल फ़ाइल /etc/netplan/01-network-manager-all-yaml है। चलो इसे हिलाएं:

mkdir ~/netplan
sudo mv /etc/netplan/01-network-manager-all.yaml  /home/user/netplan

... जहां उपयोगकर्ता आपका उपयोगकर्ता नाम है।

अब यह सुनिश्चित करने के लिए जांचें कि फ़ाइल वास्तव में चली गई है:

ls /etc/netplan

अब आवश्यकता के अनुसार / etc / network / interfaces को अपना जोड़ दें।

रीबूट।

कोई सुधार?

फुटनोट: ऐसा करने की सटीक प्रक्रिया को खोजना मुश्किल है। हमें जाते ही थोड़ा सा परिष्कार करना पड़ सकता है।


मुझे कोशिश करनी होगी कि यह कैसे चले। केवल दूसरा सवाल यह होगा कि रिबूट किए बिना परिवर्तनों को कैसे लागू किया जाए। में आप इस्तेमाल कर सकते हैं अतीत ifup/ ifdown, /etc/init.d/networking restart, service networking restart, और systemd तरह-तरह systemctl restart networking, systemctl restart Network-Manager.serviceआदि, लेकिन इनमें से कोई भी उबंटू 18.04 स्थापित करने के बाद मेरे लिए संभव थे।
jdgregson

इसका परिणाम क्या है: sudo ip link set eth0 downइसके बाद: sudo ifup -v eth0पौराणिक eth0 के लिए अपने इंटरफ़ेस को बदलें।
चिली ५५५

ifupdownडिफ़ॉल्ट रूप से स्थापित नहीं होता है, इसलिए जब आप ifupइसे कॉल करते हैं तो आपको यह बताता है कि इसे कैसे स्थापित किया जाए। हालाँकि, sudo ip link set eth0 downइसके बाद sudo ip link set eth0 upइंटरफ़ेस बंद और वापस चालू होता है।
jdgregson

बहुत बढ़िया! तो आप हल कर रहे हैं और सभी सेट?
मिर्ची 5

सावधान, सभी * .yaml फाइलें नेटप्लान से संबंधित नहीं हैं, इसलिए केवल नेटप्लान से संबंधित निर्देशिकाओं को हटा दें!
JanC
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.