Eth0 ifdown नहीं कर सकता (मुख्य इंटरफ़ेस)


51

मैं ifdownडेबियन 6.0.5 पर एक इंटरफ़ेस नहीं कर सकता :

user@box:/etc/network$ sudo ifdown eth0 && sudo ifup eth0
ifdown: interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.

user@box:/etc/network$ cat interfaces 
auto lo
iface lo inet loopback

allow-hotplug eth0 
allow-hotplug eth1 

auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254

auto eth1
iface eth1 inet manual

जैसा कि मार्को ने अनुरोध किया है:

user@box:/etc/network/$ cat /run/network/ifstate 
lo=lo
eth1=eth1

4
क्या होता /run/network/ifstateहै?
मार्को

मैंने इस फ़ाइल की सामग्री के साथ अपना प्रश्न अपडेट किया है, eth0 इसमें नहीं है। एक त्वरित "Google" मुझे इस फ़ाइल का अर्थ बता रहा है (जैसा कि मैंने इसे पहले एक्सेस नहीं किया है), मुझे लगता है कि मैं देख सकता हूं कि समस्या कहां है :)
jwbensley

@Marco; इसने वास्तव में मेरी समस्या को ठीक कर दिया है, यदि आप इसे उत्तर के रूप में पोस्ट करते हैं तो मैं इसे सही के रूप में चिह्नित कर सकता हूं :)
jwbensley

जवाबों:


55

फ़ाइल की सामग्री की जाँच करें /run/network/ifstateifupऔर ifdownइस फ़ाइल का उपयोग यह नोट करने के लिए करें कि कौन से नेटवर्क इंटरफेस को ऊपर और नीचे लाया जा सकता है। इस प्रकार, ifupआसानी से भ्रमित किया जा सकता है जब अन्य नेटवर्किंग उपकरण एक इंटरफ़ेस (जैसे ifconfig) लाने के लिए उपयोग किए जाते हैं ।

से आदमी ifup

यह कार्यक्रम रिकॉर्ड रखता है कि नेटवर्क इंटरफेस ऊपर या नीचे हैं। असाधारण परिस्थितियों में ये रिकॉर्ड इंटरफेस की वास्तविक स्थिति के साथ असंगत हो सकते हैं। उदाहरण के लिए, एक इंटरफ़ेस जिसे ifup और बाद में deconfigured का उपयोग करके लाया गया था, ifconfigफिर भी ऊपर रिकॉर्ड किया जाएगा। इसे ठीक करने के आप उपयोग कर सकते हैं --forceविकल्प के लिए मजबूर करने ifup या ifdownयह क्या समझता है इंटरफ़ेस की वर्तमान स्थिति होने के लिए के बावजूद विन्यास या deconfiguration आदेशों को चलाने के लिए।


8
इस उत्तर को जोड़ने के लिए, मैं जोड़ने के लिए किया था eth0=eth0के लिए /run/network/ifstateयह इंटरफ़ेस समझते हैं और इसे ठीक से कॉन्फ़िगर करने के लिए मिलता है। इस उत्तर ने मुझे फ़ाइल की ओर संकेत करने में मदद की, लेकिन इसके अलावा सुझाव देना बंद कर दिया, जिससे मेरी समान समस्या का समाधान हो गया।
डेविड पार्स

1
@DavidParks क्या आप सुनिश्चित हैं कि इंटरफ़ेस को इस रूप autoमें चिह्नित किया गया है /etc/network/interfaces? यह /run/network/ifstateफ़ाइल को मैन्युअल रूप से संशोधित करने की आवश्यकता के बिना प्रकट होना चाहिए ।
मार्को

1
--forceमेरे लिए जवाब था; यह पता चला ifupहै कि पहली बार में फेल होने की आज्ञा के कारण इंटरफ़ेस ऊपर नहीं लाया गया /etc/network/if-pre-up.d; मेरे लिए भाग्यशाली नेटवर्क है!
sanmai

32

ifdownएक उच्च-स्तरीय कार्यक्रम है जिसमें बहुत सारी चीजें होती हैं जिनकी आपको आवश्यकता नहीं हो सकती है। इसके अतिरिक्त, यह हर जगह उपलब्ध नहीं है। अधिक पोर्टेबल तरीका आपके लिए काम कर सकता है:

$ sudo ifconfig eth0 down

यदि आप ऐसा नहीं कर सकते हैं ifup, तो आपको कुछ विन्यास समस्या है। मैन्युअल रूप से इसे साथ लाना ifconfig eth0 upशायद उस मामले में सही बात नहीं है। डेबियन पर, ifupएक द्विआधारी निष्पादन योग्य है, इसलिए आपको संभवतः straceयह पता लगाना होगा कि यह कहाँ लटका हुआ है:

$ sudo strace -e open ifup eth0

यह आपको बताएगा कि ifupयह काम करते समय कौन सी फाइलें खोल रहा है, जो आपको समस्या में डाल सकता है।

अन्य प्रणालियों पर (जैसे RHEL और डेरिवेटिव) ifupएक शेल स्क्रिप्ट है, इसलिए इसे डीबग करना बहुत आसान है:

# sh -x `which ifup` eth0

sh -xइसके साथ एक शेल स्क्रिप्ट चलाना , इसे चलाने वाली हर लाइन को प्रिंट करता है, जिससे आप निष्पादन का पता लगा सकते हैं।


एक फटा हुआ जवाब, लेकिन मार्को ने समस्या पाई है। मैंने कोशिश की sudo ifconfig eth0 down && sudo ifconfig eth0 upजो इंटरफ़ेस को ऊपर और नीचे फ्लैप करेगा लेकिन मैं मैन्युअल रूप से एक if-up स्क्रिप्ट को ट्रिगर करने की कोशिश कर रहा था जो मैं लिख रहा हूं और उसने ऐसा नहीं किया। मेरे / etc / network / run / ifstate फ़ाइल को अपडेट करने के बाद, ifdown / up अब काम करता है। आपकी जानकारी के लिए धन्यवाद! :)
jwbensley

कहना भूल गया, -x विकल्प के साथ महान विचार! धन्यवाद!
jwbensley

1
ifdownएक उच्च-स्तरीय कार्यक्रम है जो बहुत कुछ करता है जिसकी आपको आवश्यकता हो सकती है। ifconfig eth0 downअधिक पोर्टेबल है और हमेशा चलाया जा सकता है, लेकिन यह उन सफाई कार्यों को नहीं करता है जो कर ifdownसकते हैं।
गिल्स एसओ- बुराई को रोकना

मेरा सुझाव यह नहीं है कि आप ifconfigहर समय बचने का उपयोग करें ifup/down। मैंने इसे केवल एक समस्या निवारण कदम के रूप में सुझाया। जैसा कि मैंने समस्या को समझा, यह इसके बजाय उपयोग करने का नतीजा निकला , जिससे उच्च-स्तरीय तंत्र भ्रमित हो गया। लेकिन, मुझे नहीं पता था कि मैंने अपना जवाब कब पोस्ट किया। ifconfigifup/down
वारेन यंग

20

मैंने इसे पहले देखा है जब एथिक्स को ठीक से कॉन्फ़िगर नहीं किया गया था /etc/network/interfaces। यह कुछ इस तरह की जरूरत है: -

auto eth0
   iface eth0 inet dhcp

अनुचित रूप से कॉन्फ़िगर की गई /etc/network/interfacesफ़ाइल के साथ भी , आप अभी भी eth0 को नीचे ला सकते हैं:

$ sudo ip link set eth0 down

मेरे साथ भी ठीक ऐसा ही हुआ। मैं इसे जोड़ना भूल गया auto। धन्यवाद।
माइक

2

इस समस्या से जूझ रहे किसी व्यक्ति के लिए:

मैंने फ़ाइल ifstate को चेक किया। "इंटरफ़ेस-नेम" पर / रन / नेटवर्क।

यह खाली था इसलिए मैंने "इंटरफ़ेस-नाम" (eth0) को ifstate में शामिल किया। "इंटरफ़ेस-नाम" फ़ाइल / रन / नेटवर्क पर।



0

मुझे जो मदद मिली, वह है मुझे rmलॉक फाइल को हटाने के लिए कमांड को कॉल करना/run/network/

क्या ls -laऔर आपको .ifstateउस नाम के नीचे एक छिपी हुई फ़ाइल या कुछ देखना चाहिए ।

निकालें और फिर कोशिश करें: ifdown && ifup

यदि आप चिंतित हैं तो आप कुछ तोड़ सकते हैं बस निर्देशिका के बाहर उस फ़ाइल की एक प्रतिलिपि बनाएँ और निर्देशिका के अंदर एक को हटा दें।

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