/Etc/dhcpcd.conf और / etc / नेटवर्क / इंटरफेस के बीच अंतर?


63

मेरे पास / etc / नेटवर्क / इंटरफेस में यह कॉन्फ़िगरेशन है :

auto lo
iface lo inet loopback

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan0
#iface wlan0 inet dhcp
        iface wlan0 inet static
        address 192.168.0.110
        netmask 255.255.255.0
        network 192.168.0.1
        gateway 192.168.0.1
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp


iface eth0 inet static
    address 192.168.0.115
    netmask 255.255.255.0
    network 192.168.0.1
    gateway 192.168.0.1

वायरलेस स्टैटिक आईपी ने काम किया, लेकिन eth0 ने ऐसा नहीं किया।

इसलिए मैंने /etc/dhcpcd.conf में कॉन्फिग करने की कोशिश की :

interface eth0
static ip_address=192.168.0.115/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

और इसने काम किया। मैं भ्रमित हूँ और यहाँ कई प्रश्न हैं:

  1. कब किस फाइल का इस्तेमाल करें?

  2. क्यों वाईफाई / आदि / नेटवर्क / इंटरफेस के साथ काम किया, लेकिन eth0 नहीं किया?

  3. क्या dhcpcd में किसी तरह प्राथमिकता है / etc / नेटवर्क / इंटरफ़ेस ?

  4. कैसे जांच करें कि किस सेवा में प्राथमिकता या कुछ है? और कौन सी सेवा का उपयोग करता है / etc / नेटवर्क / इंटरफ़ेस ?


4
महान सवाल और कुछ मैं पूछने वाला था #raspbian। कई वर्षों के एक Un * x व्यवस्थापक के रूप में, मुझे लगता है कि यह मूलभूत परिवर्तन दस्तावेज़ों की एक पूरी कमी से जटिल है। एक घंटे के परीक्षण और त्रुटि के बाद मैं इस प्रश्न को खोजने के लिए हुआ। मेरी इच्छा है कि मुझे raspberrypi.stackexchange.com/questions/37920/… पहले मिली
एलेस्टेयर मैककॉर्मैक

मुझे लगता है कि सवाल टिप्पणियों में पूछा जाना चाहिए था कि वास्तव में eth0 विफल कैसे हुआ? ip addrआउटपुट और systemctl status networkingआउटपुट क्या है ? क्योंकि अगर ओपी ने ssh पर और ssh में eth0 ip का उपयोग करने के लिए ऐसा करने की कोशिश की, तो संशोधित eth0 ip को eth0 के लिए द्वितीयक ip के रूप में दिया जाएगा ताकि चल रहे ssh सत्र को निर्बाध रखा जा सके, मैंने eth0 ip को OP के रूप में बदलने की कोशिश की उल्लिखित है, लेकिन wlan0 के माध्यम से sshing और यह काम करता है और dhcp पर वरीयता लेता है, मेरे मामले में यह स्ट्रेच पर घिनौना था, लेकिन eth0 के माध्यम से sshing, पिछले उल्लिखित मामले में होता है।
पावेल सायकेट

और हाँ, dhcpcd का भी परीक्षण किया गया है, कोई भी /etc/network/interfacesसेटिंग्स पर वरीयता नहीं लेता है ।
पावेल सायकेट

जवाबों:


65

इस प्रश्न के सभी उत्तरों में अच्छे अंक हैं, लेकिन मुझे लगता है कि आपके विशिष्ट प्रश्नों को सीधे संबोधित करने की कुछ गुंजाइश है।

  1. कब किस फाइल का इस्तेमाल करें?

मैं यह धारणा बनाने जा रहा हूं कि आप एक सामान्य डिग्री के भ्रम से पीड़ित हैं जो इस समय (व्यापक रास्पबेरी पाई समुदाय में) डेबियन 'व्हीज़ी' के स्थान पर डेबियन ' जेसी ' की शुरुआत के साथ हो रहा है । इस परिवर्तन ने बड़ी संख्या में ट्यूटोरियल को अप्रचलित और सर्वश्रेष्ठ भ्रमित किया है।

प्रश्न का उत्तर यह है कि व्हीजी का उपयोग करते समय /etc/network/interfacesनेटवर्क इंटरफेस (गो आकृति) की स्थापना के प्रयोजनों के लिए फ़ाइल में परिवर्तन करना सामान्य था । जेसी का उपयोग करते समय, '/etc/dhcpcd.conf' में परिवर्तन करना आवश्यक होगा। हालाँकि, यदि किसी वायरलेस कनेक्शन ( wlan0) में बदलाव /etc/wpa_supplicant/wpa_supplicant.confकरते हैं, तो आपको नेटवर्क एसआईडी और पासवर्ड को जोड़ने के लिए भी बदलाव करना होगा ।

  1. क्यों वाईफाई / आदि / नेटवर्क / इंटरफेस के साथ काम किया, लेकिन eth0 नहीं किया?

मुझे यकीन नहीं है कि वाईफाई कनेक्शन कैसे काम कर सकता है क्योंकि आपकी फ़ाइलों से कुछ जानकारी गायब है (कम से कम ssid)। जैसा कि जोंस ने बताया, wlan0 विवरण के बाद आने वाले एथो कनेक्शन विवरणों की प्राथमिकता ने संभवतः उन्हें ऑपरेटिव बना दिया (क्योंकि उन्हें फ़ाइल पढ़ने की प्रक्रिया द्वारा अंतिम बार देखा गया होगा)।

  1. क्या dhcpcd में किसी तरह प्राथमिकता है / etc / नेटवर्क / इंटरफ़ेस?

नहीं, वे अलग हैं और जेसी के तहत विभिन्न उद्देश्यों के अनुरूप तैयार किए गए हैं। एक काफी सरल तरीके से जेसी का उपयोग कर के प्रयोजनों के लिए आप काफी उपेक्षा कर सकते हैं interfacesफ़ाइल और के साथ काम dhcpcd.confऔर wpa_supplicant.conf

  1. कैसे जांच करें कि किस सेवा में प्राथमिकता या कुछ है? और कौन सी सेवा का उपयोग करता है / etc / नेटवर्क / इंटरफ़ेस?

फिर से मैं यह धारणा बनाने जा रहा हूं कि यह प्रश्न ' किस फ़ाइल का उपयोग करता है और यदि मुझे एक का उपयोग करना है जो प्राथमिकता लेता है? ' सवाल। जवाब यह है कि जेसी के लिए (और की गोद लेने के साथ एक व्यापक अर्थ में खरखरा से परिवर्तन के साथ है systemd ) `dhcpcd.conf 'और' wpa_supplicant.conf के विन्यास इंटरफेस 'फ़ाइल छोड़ दिया जाएगा' के आदर्श और हो जाएगा ' यह स्वयं के उपकरण हैं।

इसका आपके लिए क्या मतलब है?

अच्छी तरह से (फिर से) यह धारणा बनाते हुए कि आप स्थिर आईपी पते के साथ एक हार्ड वायर्ड (eth0) और वायरलेस (wlan0) कनेक्शन स्थापित करने का प्रयास कर रहे हैं, आप चाहते हैं कि आपकी interfacesफ़ाइल डिफ़ॉल्ट हो क्योंकि यह शुरू में स्थापित थी;

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

आप चाहते हैं कि आपकी dhcpcd.confफ़ाइल दोनों इंटरफेस के लिए फ़ाइल के अंत में कनेक्शन का विवरण शामिल करे और अतिरिक्त प्रविष्टियां शायद इस तरह से दिखेंगी;

# Custom static IP address for eth0.
interface eth0
static ip_address=192.168.0.115/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

# Custom static IP address for wlan0.
interface wlan0
static ip_address=192.168.0.115/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

अंत में आप अपनी wpa_supplicant.confफ़ाइल को संपादित करना चाहेंगे ताकि इसमें वाईफाई नेटवर्क और पासवर्ड के लिए ssid शामिल हो। यह शायद इस तरह से थोड़ा दिखना चाहिए;

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="homenetwork"
    psk="h0mepassw0rd"
}

मुझे उम्मीद है कि इसे बंद कर दिया जाएगा। बहुत वास्तविक संभावना है कि मेरी धारणाएं गलत हैं, लेकिन जब से मैं हाल ही में एक समान सीखने की अवस्था से गुजरा हूं मुझे उम्मीद है कि डेटा उपयोगी है।

मैंने वास्तव में इसे लिखा है और आप मुफ्त ईबुक में जानकारी प्राप्त कर सकते हैं । लीनपब से बस रास्पबेरी पाई पर्याप्त है


1
काम मत करो। अगर हम दोनों इंटरफेस को साथ लाते हैं, तो ifconfig eth0 ऊपर से पिंग करते हैं और बाहर से ssh काम नहीं करते हैं। यदि हम सभी कामों में से किसी एक को dhcp में रखते हैं।
जिउसेप्पे

उम्मीद है कि कोई आपके प्रश्न के
d3noob

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

6

प्राथमिकता आपके init या systemd कॉन्फ़िगरेशन के साथ करना है। Dhcp के संबंध में: यदि आपने स्टेटिक रूप से या मैन्युअल रूप से कॉन्फ़िगर किया गया इंटरफ़ेस है, और dhcp बाद में एक पते का अनुरोध करना शुरू कर देता है, तो यह आपके पास पहले से मौजूद जानकारी को ओवरराइड कर देगा। डेबियन पर, dhcp को उन इंटरफेस के लिए शुरू किया जाता है जिनके लिए आप dhcp निर्दिष्ट करते हैं, और केवल जादुई रूप से ही नहीं। यदि आपके पास अनपेक्षित व्यवहार है, तो आपके पास NetworkManager की तरह पृष्ठभूमि में चलने वाला एक अलग सिस्टम हो सकता है।

प्रति बिंदु:

  1. dhcpcd.conf का उपयोग बिल्कुल न करें, इसे छोड़ दें।
  2. आपके पास एक eth0 hotplug लाइन की अनुमति नहीं है।
  3. अगर dhcpcd नेटवर्किंग के बाद शुरू किया गया है और आपके पास एक इंटरफ़ेस लेने के लिए सेट है, तो यह होगा।
  4. उस क्रम को जांचें जिसमें आप उन सेवाओं को शुरू करते हैं।

4

वायरलेस स्टैटिक आईपी ने काम किया, लेकिन eth0 ने ऐसा नहीं किया।

eth0इंटरफ़ेस शायद प्रणाली बूट पर लाया नहीं है क्योंकि यह पर सूचीबद्ध नहीं है था autoलाइन। से man interfaces:

"ऑटो" शब्द के साथ शुरू होने वाली रेखाओं का उपयोग भौतिक इंटरफेस को पहचानने के लिए किया जाता है, जब if-in -a विकल्प के साथ चलाया जाता है। (यह विकल्प सिस्टम बूट स्क्रिप्ट द्वारा उपयोग किया जाता है।) भौतिक इंटरफ़ेस नामों को एक ही लाइन पर "ऑटो" शब्द का पालन करना चाहिए। कई "ऑटो" श्लोक हो सकते हैं। ifup सूचीबद्ध क्रम में नामित इंटरफेस लाता है।

इस पंक्ति को बदलें:

auto lo

इसके लिए:

auto lo eth0

और फिर यह काम करना चाहिए।

अन्य उत्तरों ने आपके अन्य प्रश्नों को संबोधित किया है। आशा है कि ये आपकी मदद करेगा।


2
यह उत्तर है। ओपी में अन्य समस्याएं भी हैं, लेकिन मेरे जैसे लोगों के लिए जिन्होंने अन्य गाइडों का पालन किया, जिसमें सिर्फ स्थैतिक जानकारी जोड़ी गई थी /etc/network/interfaces, लापता टुकड़ा बस था auto eth0और नेटवर्किंग या रिबूट को पुनरारंभ करें!
एडम कपलान

2

नेटवर्किंग कैसे सेट करें, इसके विवरण के लिए देखें कि मैंने नेटवर्किंग / वाईफाई / स्टेटिक आईपी कैसे स्थापित किया है।

आप चाहें तो पुरानी /etc/network/interfacesविधि का उपयोग कर सकते हैं। दुर्भाग्य से आपके द्वारा सूचीबद्ध फ़ाइल में कई त्रुटियां हैं। आपको मानक कॉन्फ़िगरेशन में से एक के साथ रहना चाहिए।

यदि आप वास्तव में उपयोग करना चाहते हैं /etc/network/interfaces (इसके डिफ़ॉल्ट के अलावा) तो आपको अक्षम करने की आवश्यकता होगी dhcpcd

dhcpcdइस फ़ोरम के लिए स्पष्टीकरण बहुत जटिल है, लेकिन लिंक https://wiki.archlinux.org/index.php/dhcpcd एक अच्छा सारांश प्रदान करता है।


2

सबसे पहले, /etc/network/interfacesफ़ाइल को उसके मूल संस्करण पर वापस लाएँ ...

# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult `/etc/dhcpcd.conf` and `man dhcpcd.conf`

# Include files from `/etc/network/interfaces.d`:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

फिर, /etc/dhcpcd.confफ़ाइल में अपने परिवर्तनों को सरल और बस वायरलेस के लिए रखें ...

(फाइल के नीचे ...)

nohook lookup-hostname

interface wlan0
    static ip_address=192.168.0.53/24
    static routers=192.168.0.1
    static domain_name_servers=8.8.8.8

/etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US

network={
    ssid="The SSID of your Router"
    psk="daPassword"
    scan_ssid=1
    key_mgmt=WPA-PSK
}

0

विदित हो कि रस्पियन जेसी (12/30/2016) के नवीनतम संस्करण में इंटरफेस फ़ाइल की दूसरी पंक्ति में एक दोष है। दूसरी पंक्ति एक टिप्पणी के रूप में रेखा को नामित करने के लिए अग्रणी # प्रतीक को याद कर रही है। इस समस्या के कारण इंटरफ़ेस फ़ाइल सिस्टम द्वारा अपठनीय है। इस त्रुटि के मिलने से पहले मैंने अपनी वाईफाई को काम करने के लिए कई घंटे बिताए।

इसे ठीक करने के लिए, बस लाइन की शुरुआत में एक # प्रतीक जोड़ें।

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