उबंटू: DNS सर्वरों को / etc / नेटवर्क / इंटरफेस में सही तरीके से कॉन्फ़िगर कैसे करें resolvconf?


14

सभी उदाहरण जो मैंने कॉन्फ़िगरेशन ( /etc/network/interfaces) में देखे हैं, आपने दिखाया है कि आप एक इंटरफ़ेस कॉन्फ़िगर करते हैं और फिर नीचे दी गई dns-*लाइनें जैसे:

auto eth0
iface eth0 inet static
        ...
        dns-nameservers 127.0.0.2
        dns-search example.com my.example.com

अब मुझे पता है कि DNS प्रोटोकॉल परिवहन तंत्र से स्वतंत्र है। इसलिए dns-nameserversलाइन पर IPv6 एड्रेस जोड़ने के लिए यह गलत नहीं होना चाहिए ।

हालाँकि, चूंकि मैं IPv6 के लिए इंटरफ़ेस को वैसे भी कॉन्फ़िगर कर रहा हूं, इसलिए dns-nameserversवहां लाइन जोड़ने के लिए यह समझ में आया:

iface eth0 inet6 static
        ...
        dns-nameservers ::2
        dns-search example.com my.example.com

... या किया? क्योंकि जब यह resolvconfबनाता है तो /etc/resolv.confयह सभी IPv6 DNS सर्वरों की उपेक्षा करता है। यह भी नजरअंदाज करने लगता है dns-searchऔर dns-domain। सम्मान के लिए केवल एक ही पंक्ति dns-nameserversIPv4 कॉन्फ़िगरेशन से रेखा है eth0

DNS सर्वरों को कॉन्फ़िगर करने की सही विधि क्या है?


आगे के परिस्थितिजन्य साक्ष्य क्यों यह प्रत्येक संबंधित ifaceश्लोक का हिस्सा होना चाहिए । उद्धरण man 8 resolvconf:

ifup(8) कार्यक्रम में सेटिंग्स के अनुसार कॉन्फ़िगर नेटवर्क इंटरफेस करने के लिए इस्तेमाल किया जा सकता /etc/network/interfaces(5)। जब यह एक इंटरफ़ेस कॉन्फ़िगर करता है, तो ifupपुश नेमसर्वर जानकारी बनाने के लिए, संबंधित श्लोक में लाइनें resolvconfजोड़ें । नेमसर्वर पते जोड़ने के लिए शुरुआत के साथ एक पंक्ति जोड़ें ।dns-iface/etc/network/interfacesdns-nameservers


अगर आपको अभी भी यह समस्या है तो कृपया अपना पूरा / etc / network / interfaces file और / usr / share / resolvconf / डंप-डिबग-इनफार्मेशन का आउटपुट दें जो कि Ubuntu 15.04 में resolvconf पैकेज में शामिल है।
jdthood

जवाबों:


9

iface eth0 inet staticश्लोक या श्लोक दोनों में dns- * विकल्प रखना सही है iface eth0 inet6 static। जब तार्किक इंटरफ़ेस की परिभाषा सक्रिय हो जाती है तो विकल्प सक्रिय हो जाते हैं।

मैंने इसे केवल अपने स्वयं के उबंटू 15.04 मशीन पर परीक्षण किया है जिसे मैं सामान्य रूप से डीएचसीपी के साथ कॉन्फ़िगर करता हूं। मैंने NetworkManager को अक्षम कर दिया और / etc / नेटवर्क / इंटरफेस को संपादित कर दिया ताकि यह इस तरह दिखे:

iface eth0 inet static
        address 192.168.178.22
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8
        dns-search foo

iface eth0 inet6 static
        address fe80::390:f5ff:fef7:96b9/64
        dns-nameservers ::2
        dns-search bar

मैंने तब किया था

$ sudo ifup eth0

परिणाम:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:90:f5:f7:96:b9  
      inet addr:192.168.178.22  Bcast:192.168.178.255  Mask:255.255.255.0
      inet6 addr: fe80::390:f5ff:fef7:96b9/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2114609 errors:0 dropped:1 overruns:0 frame:0
      TX packets:1757693 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:2033346950 (2.0 GB)  TX bytes:1318685445 (1.3 GB)
      Interrupt:20 Memory:f7e00000-f7e20000 

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver ::2
nameserver 8.8.8.8
search bar foo

ध्यान दें कि दोनों श्लोक से पते, dns-nameservers और dns-search विकल्प अब सक्रिय हैं।

[अद्यतित ३० मई २०१५]


1

मेरे RPI पर Ubuntu 16.04.2 LTS चल रहा है, मेरे निष्कर्ष इस प्रकार थे:

नोट: मैंने NetworkManager को अनइंस्टॉल कर दिया और अपना सामान करने के लिए resolvconf को छोड़ दिया। (यह एक निश्चित सर्वर है इसलिए चीजें बहुत नेटवर्क वार नहीं बदलती हैं।)

यदि मेरे पास केवल एक इंटरफ़ेस (प्राथमिक, वायर्ड एक) पर dns-search और dns-nameserver लाइनें थीं, लेकिन दूसरी (wlan0) नहीं, तो रिबूट पर, मेरी /etc/resolv.conf फ़ाइल का लगभग 95% समय होगा खाली करें।

उदाहरण के लिए जब मेरी इंटरफेस फाइल इस तरह दिखती है:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1 
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

फिर से रिबूट करने के बाद मेरा रिज़ोल्व.कॉन्फ़ इस तरह दिखेगा:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

हालांकि, एक या दो रिबूट पर मैंने देखा कि यह डीआईडी ​​है जो मुझे चाहिए था, जैसे

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

समाधान जब मैंने BOTH इंटरफेस (वायर्ड और wlan0) को dns-search और dns-nameserver लाइनें दीं, तो यह सब हर रिबूट (अब तक) पर ठीक काम किया

यानी निम्नलिखित इंटरफेस फ़ाइल मेरे लिए काम करती है:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

और मुझे हर रिबूट (अब तक) के बाद निम्नलिखित सही resolv.conf देता है

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

मुझे लगता है कि यह डुप्लिकेट कॉन्फ़िगरेशन सामान्य है, अगर कुछ हद तक बेमानी है।

निष्कर्ष: यदि किसी इंटरफ़ेस (lo0 के अलावा) में dns-search और dns-nameserver जानकारी का अभाव है, तो resolvconf आपकी resolv.conf फ़ाइल में कुछ नहीं डालता है। (यह ऐसा है जैसे कि ifup ने wlan0 इंटरफ़ेस को दूसरा और ifup ने resolv.conf या ऐसे ही मिटा दिया।)

मुझे यकीन नहीं है कि यह एक बग है या नहीं, हालांकि मुझे गलत लगता है।


-1

अपने कस्टम DNS का उपयोग करने के लिए नेटवर्क इंटरफेस को संपादित करना एक तरीका है ... लेकिन अपने कस्टम dnsnameserver के साथ सिस्टम-वाइड resolv.conf को स्थायी रूप से संशोधित करने के लिए आपको resolvconf पैकेज स्थापित करने की आवश्यकता है (यदि यह पहले से ही डिफ़ॉल्ट रूप से स्थापित नहीं है) और इसके आधार को आबाद करें आपके कस्टम DNS नेमसर्वर्स मूल्यों के साथ कॉन्फ़िगरेशन फ़ाइल। आशा है कि यह लघु गाइड आपको resolv.conf DNS प्रविष्टियों के बारे में आगे के विन्यास में मदद करेगा । http://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/


2
यूनिक्स और लिनक्स में आपका स्वागत है! जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो उस गाइड के आवश्यक हिस्सों को यहां शामिल करना बेहतर होगा , और संदर्भ के लिए लिंक प्रदान करें।
एंथन

@MateiCezar: क्या आप कृपया विस्तार से बता सकते हैं? मुझे यकीन नहीं है कि आपने मेरे प्रश्न को अंत तक पढ़ा है। पैकेज resolvconf है स्थापित। मैं /etc/network/interfacesअपने DNS सर्वरों को क्रमशः IPv4 और IPv6 के लिए कॉन्फ़िगर करना चाहूंगा ।
0xC0000022L

-1

आप /etc/network/interfaces...just पर IPv6 DNS सर्वर का उपयोग करना चाहते हैं। अपने IPv6 DNS नेमर्स प्रविष्टियों को विशिष्ट नेटवर्क इंटरफ़ेस पर इस तरह डालें:

dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888. 

स्थायी रूप से IPv6 dnsnamesers को resolv.conf में जोड़ने के लिए, उसी लिंक का उपयोग करें जिसे मैंने नीचे जोड़ा है और अपने स्वयं के IPv6 DNS नेमर्स के साथ पॉप्युलेट करके resolvconf आधार फ़ाइल संपादित करें:

nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888 

कॉन्फ़िगर / etc / नेटवर्क के लिए / IPv6 के साथ इंटरफेस इस मार्गदर्शिका का उपयोग http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/ और IPv6 के रूप में साथ आईपीवी 4 की जगह यह इस प्रकार है: ऑटो eth0

iface eth0 inet6 static
        address 2800:210:0:1::3
        netmask 64
        gateway 2800:210:0:1::1
        dns-nameservers 2001:4860:4860::8844 

अपने स्वरूपण को निश्चित किया। फिर से, मेरे प्रश्न में स्पष्ट रूप से कहा गया है कि इससे IPv6 के लिए उन DNS सर्वरों को जोड़ा नहीं जा सकता है /etc/resolv.conf। यदि यह किसी तरह से आपके लिए काम करता है तो सटीक सिस्टम संस्करण को जानना उपयोगी होगा।
0xC0000022L 11

मुझे इसे सीधे प्राप्त करने दें ... आप / आदि / नेटवर्क / इंटरफेस से IPv6 DNS रिज़ॉल्वर का उपयोग करना चाहते हैं और किसी तरह उन्हें उस फ़ाइल में जोड़ना आपके लिए काम नहीं करता है?
माटी सेजार

मैं उन्हें /etc/network/interfacesफाइन में जोड़ सकता हूं । क्या नहीं होता है कि वे उसी तरह से स्थानांतरित हो जाएं /etc/resolv.confजैसा उन्हें होना चाहिए। और मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं क्या गलत कर रहा हूं, हां।
0xC0000022L

अभी भी नहीं मिला? / Etc / नेटवर्क / इंटरफेस से उन DNS प्रविष्टियों को /etc/resolv.conf में स्थानांतरित किया जाता है या नहीं? हमें उन namservers प्रविष्टियों से इंटरफेस कभी भी हस्तांतरित या /etc/resolv.com पर नहीं लिखा जाता है, वे उस एनआईसी से अपने दम पर काम करते हैं और सिस्टम-वाइड लागू नहीं होते हैं। बस /etc/resolv.conf फ़ाइल DNS का उपयोग उन इंटरफेस द्वारा किया जाता है जिनके पास dnsnameservers प्रविष्टियों की कमी है।
मतेई सेज़ार

क्षमा करें ... लेकिन फिर भी मुझे समझ में नहीं आता है कि आप इस DNS नेमसर्वर प्रविष्टियों के साथ क्या हासिल करने की कोशिश करते हैं।
माटी सेजार

-1

आप उन IPv6 DNS नेमसर्वरों को सीधे /etc/resolv.conf सिस्टम-वाइड फाइल पर लागू नहीं कर सकते हैं, जो resolvconf बेस फाइल को एडिट करके लिंक के साथ मेरे पिछले उत्तर में सुझाए गए हैं और अभी भी नेटवर्क इंटरफेस फाइल का उपयोग जारी है? आप /etc/resolv.conf में DNS IPv6 नेमसर्वर का एक सेट जोड़ सकते हैं और यदि आप किसी विशिष्ट NIC के लिए अन्य IPv6 नेमसर्वर का उपयोग केवल / etc / नेटवर्क / इंटरफेस पर करना चाहते हैं।


आप अपने अंतिम वाक्य में जो उल्लेख करते हैं, वह वास्तव में यही कारण है कि मैं रेसोल्वॉन्फ बेस कॉन्फिगरेशन का उपयोग नहीं करना चाहता हूं और यह वही है जो मैं कोशिश कर रहा हूं । इसके अलावा यह वही है जो असफल हो रहा है।
0xC0000022L

ठीक है मैंने समझ लिया! लेकिन आप इस तरीके से चीजों को क्यों लागू करना चाहते हैं? किसी भी तरह से आपको केवल उन डीएनएस नेमवेरर्स की जरूरत है, जो कि सिस्टम-वाइड हों, उन्हें नेटवर्क / इंटरफेस से रिसोल्व.कॉन्फ़ में ट्रांसफर करने का कोई कारण है, जब आप उन्हें दोनों में लिख सकते हैं। फ़ाइलें और आप कर रहे हैं !?
bytelinux कॉम

यकीन नहीं है कि आप कितनी मशीनों का प्रबंधन करते हैं, लेकिन मेरे लिए यह कोशिश करना और मेरे जीवन को आसान बनाने के लिए पर्याप्त है। चूंकि /etc/network/interfacesमुझे काम करना है, इसलिए मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं क्या गलत कर रहा हूं।
0xC0000022L
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.