ओएस एक्स पर डीएचसीपी को डीएनएस सर्वरों को ओवरराइड करना संभव है, लेकिन फिर भी उन्हें कमबैक के लिए रखा गया है?


9

डिफ़ॉल्ट रूप से मैं Google सार्वजनिक DNS सर्वरों का उपयोग करना चाहता हूं और जब ये विफल हो रहे हों, तो इंट्रानेट को वापस करने के लिए।

क्या यह संभव है? ... मैं एक सेटअप की तलाश कर रहा हूं जो तब टूटेगा जब मैं अपने लैपटॉप को किसी अन्य नेटवर्क पर स्थानांतरित नहीं करूंगा।

यह स्वीकार्य होगा अगर मुझे इस वाईफाई नेटवर्क कनेक्शन (केवल इस मामले में चाल करने के लिए, और दूसरों के लिए चूक का उपयोग करने के लिए) के लिए एक समाधान विशिष्ट मिला।


इसका क्या मतलब है "जब Google सार्वजनिक DNS सर्वर विफल हो रहे हैं"? नेटवर्क स्थानों को बदलने और / या बस अलग DNS के प्रवेश को स्क्रिप्ट करने के बहुत सारे तरीके हैं, लेकिन यह स्पष्ट नहीं है कि आप Google DNS की विफलता का परीक्षण कैसे करेंगे। इससे भी बदतर, वीपीएन के बारे में नीचे की टिप्पणी चीजों को और जटिल कर देगी यदि आप इसे अपनी आवश्यकताओं में मिलाते हैं।
bmike

मुझे आश्चर्य है कि यह संभव नहीं है। मेरे पास कभी-कभी DNS सर्वर होते हैं जो मुझे डीएचसीपी के माध्यम से दिए जाते हैं इसलिए मैं Google का उपयोग करता हूं। हालाँकि, मैं अब कैप्टिव पोर्टल को लागू करने के लिए DNS का उपयोग करने वाले किसी भी नेटवर्क का उपयोग नहीं कर सकता। अगर मेरे पास बैकअप के रूप में डीएचसीपी की आपूर्ति की गई सर्वर हो सकता है तो यह इसे हल करेगा। क्या आपको एक समाधान मिला?
जेक

जवाबों:


4

आप ipconfig getpacketडीएचसीपी अनुशंसित DNS सर्वर को खोजने के लिए उपयोग कर सकते हैं :

$ ipconfig getpacket en0 
...
domain_name_server (ip_mult): {192.168.3.2, 192.168.42.1}
...

इसलिए, मान लें कि आप Wi-Fiएडॉप्टर और उसके डिवाइस का उपयोग कर रहे हैं en0, आप कर सकते हैं:

#!/bin/bash

default_servers=$( ipconfig getpacket en0 | \
   perl -ne'/domain_name_server.*: \{(.*)}/ && print join " ", split /,\s*/, $1' )
networksetup -setdnsservers Wi-Fi 127.0.0.1 $default_servers

2

हां, आप सूची के शीर्ष पर Google DNS सर्वर जोड़ सकते हैं और अपने स्वयं के (इंट्रानेट सर्वर) के साथ उन का पालन कर सकते हैं।

  • पर जाएं सिस्टम प्राथमिकताएं> नेटवर्क
  • बाईं ओर सूची से अपना नेटवर्क इंटरफ़ेस चुनें
  • दाईं ओर उन्नत बटन पर क्लिक करें
  • संवादों के DNS टैब में, प्रविष्टियों को हटाने के लिए "+" को जोड़ने या "-" पर क्लिक करें (आप दोहरी क्लिक करके प्रविष्टियों को संपादित भी कर सकते हैं या चयन करके और पते पर क्लिक करके)
  • पहले दो प्रविष्टियों के रूप में Google DNS पते जोड़ें
  • नीचे अपने इंट्रानेट DNS सर्वर जोड़ें
  • ओके पर क्लिक करें
  • अप्लाई पर क्लिक करें
  • सिस्टम वरीयताएँ बंद करें

1
मुझे यह पता है, लेकिन समस्या यह है कि यह मेरे लिए दूसरे स्थान से एक ही वीपीएन का उपयोग करना असंभव बनाता है। यह एक और समाधान होना चाहिए, शायद वीपीएन सर्वर (पीपीटीपी) में कॉन्फ़िगर करने के लिए या 127.0.0.1 पते के साथ एक डीएनएस को कॉन्फ़िगर करने के लिए और एक स्थानीय डीएनएस को कॉन्फ़िगर करने के लिए जो अभी भी डीएचसीपी प्रदान किए गए डीएनएस सर्वर का उपयोग करता है।
सोर्विन

1

कमांड-लाइन से ऐसा करने का एक तरीका भी है यदि आप एक नेटवर्क व्यवस्थापक हैं जो बैच में ऐसा करने का तरीका खोज रहे हैं:

networksetup listallnetworkservices
# look for the correct network device here, probably "Wi-Fi"
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

"वाई-फाई" को सही नेटवर्क डिवाइस से बदलें। आप, इसके बजाय, उपयोग की इच्छा कर सकते हैं:

device=`networksetup listallnetworkservices | grep Wi-Fi`
sudo networksetup -setdnsservers "$device" 8.8.8.8 8.8.4.4

1

मैं वही करने की कोशिश कर रहा हूं। मैं स्थानीय रूप से कैशिंग डीएनएस सर्वर को मैन्युअल रूप से चलाने जा रहा हूं और जैसे ही मैं जुड़ता हूं, यह इंट्रानेट सीखता है।

मैं उत्साहित हूँ कि डीएनएस सर्वर भी पुनरावर्ती कॉल करने से पहले इंट्रानेट और इंटरनेट होस्टनाम के बीच अंतर करने में सक्षम हो सकता है ।

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

मैं सफल होने पर वापस रिपोर्ट करूंगा ...

पहले 50%

DNS सर्वर की विकिपीडिया तुलना को देखने के बाद , Dnsmasq मेरी सूची में सबसे ऊपर आता है।

बाहर मुड़ता है brewके लिए एक forumla है dnsmasq, और यह भी कुछ servicesउप-इंटरफ़ेस के लिए लिखा है brew... महान, के बारे में सोचने के लिए कम है, बस config बाहर काम करना है।

$ brew install dnsmasq  # [libidn] internation domain names
$ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
# To have launchd start dnsmasq now and restart at startup:
$ sudo brew services start dnsmasq 

( brewयह भी है bind, लेकिन न्यूनतम स्थिति आकर्षक है मुझे - नेटवर्क कॉन्फ़िगरेशन करते समय इसे खाली करने के लिए नहीं)।

करने के लिए

  • मेरे नए डीएनएस का उपयोग करने के लिए नेटवर्क प्राथमिकताएं कॉन्फ़िगर करना और
  • dnsmasqयह सुनिश्चित करने के लिए कॉन्फ़िगर करें कि यह इंट्रानेट सेटिंग्स का उपयोग कर सकता है। (असली चुनौती)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.