अद्यतन नीचे देखें!
मुझे अपने स्थानीय मशीन पर Dnsmasq का उपयोग करने में भी मजा आता है, और मुझे भी यह समस्या थी। यहाँ समाधान है:
से man 5 resolver
:
The configuration for a particular client may be read from a file
having the format described in this man page. These are at present
located by the system in the /etc/resolv.conf file and in the files
found in the /etc/resolver directory.
/etc/resolver/
डिफ़ॉल्ट रूप से मौजूद नहीं है; आप इसे स्वयं बनाएं।
मैन पेज से भी:
domain
Domain name associated with this resolver configuration. This
option is normally not required by the Mac OS X DNS search system
when the resolver configuration is read from a file in the
/etc/resolver directory. In that case the file name is used as the
domain name.
इसलिए यदि आप चाहते थे कि सभी शीर्ष स्तर के डोमेन के dev
स्थानीय प्रश्नों को रेंडर किया जाए, तो आप निम्न करेंगे:
# mkdir /etc/resolver
# echo 'nameserver 127.0.0.1' > /etc/resolver/dev
configd
फ़ाइलों में परिवर्तन नहीं करता है /etc/resolver/
, इसलिए यह सेटिंग नेटवर्क परिवर्तन और रिबूट के माध्यम से बनी रहेगी।
अद्यतन 17 जुलाई 2012
दुर्भाग्य से, ओएस एक्स लायन के रूप में, शीर्ष रिज़ॉल्वर (जैसा कि दिखाया गया है scutil
--dns
) गायब हो जाता है जब कोई इंटरफेस सक्रिय नहीं होता है:
# scutil --dns # Online
DNS configuration
resolver #1
nameserver[0] : 127.0.0.1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
# scutil --dns # Offline
DNS configuration
resolver #1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
ध्यान दें कि रिज़ॉल्वर # 1 खाली है, लेकिन / etc / resolver व्युत्पन्न नेमसेवर प्रविष्टि बनी हुई है।
यह पता चला है कि चूंकि आप रिज़ॉल्वर डोमेन को सीधे / etc / resolver / फ़ाइल में निर्दिष्ट कर सकते हैं, इसलिए विशेष इंटरनेट रूट डोमेन को निर्दिष्ट करने .
से एक वैश्विक रिज़ॉल्वर प्रविष्टि का निर्माण होता है जो इस तरह दिखता है:
resolver #8
nameserver[0] : 127.0.0.1
अब ऑफ़लाइन होने पर भी सभी DNS प्रश्नों को लोकलहोस्ट में भेज दिया जाता है।
बेशक, आपको अभी भी अपने चुने हुए डोमेन को 127.0.0.1 के रूप में हल करना होगा।
# dnsmasq --address=/dev/127.0.0.1
संक्षेप में:
- अपने सभी नेटवर्क इंटरफ़ेस डीएनएस सर्वर को 127.0.0.1 पर सेट करें:
networksetup -setdnsservers ईथरनेट 127.0.0.1
networksetup -setdnsservers वाई-फाई 127.0.0.1
...
- एक फ़ाइल बनाएँ / आदि / रिज़ॉल्वर / जो भी:
नेमवर 127.0.0.1
डोमेन ।
- स्थानीय DNS सर्वर सेट करें और खुश रहें।
सीएफ http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c