विंडोज 7/8 डेवलपर प्रीव्यू पर डीएनएस बदलने से वीपीएन को रोकें


10

मेरे पास एक ग्राहक है जो एक वीपीएन कनेक्शन का उपयोग करता है, हालांकि यह स्वचालित रूप से मेरी DNS सेटिंग्स को एक गैर-मौजूद डीएनएस सर्वर से कॉन्फ़िगर करता है, जिसका अर्थ है कि वैकल्पिक प्रयास किए जाने तक हर DNS रिज़ॉल्यूशन बार, जो वास्तव में सभी इंटरनेट ट्रैफ़िक को धीमा कर देता है।

क्या कोई तरीका है जिससे मैं अपनी DNS सेटिंग्स (UAC को सक्षम किए बिना) को ओवरराइड करने से रोक सकता हूं?

वैकल्पिक रूप से, क्या कोई ऐसा तरीका है जो मैं किसी प्रकार की स्थानीय रूटिंग को सेट कर सकता हूं जो कहता है कि 'जब आईपी पते के लिए डीएनएस अनुरोध आता है, तो वास्तव में आईपी पते का उपयोग करें बी'?

मैं विंडोज 8 डेवलपर पूर्वावलोकन का उपयोग कर रहा हूं (लेकिन मुझे संदेह है कि इसे विंडोज 7 के समान ही काम करना चाहिए)।

धन्यवाद

जवाबों:


18

मेरा मानना ​​है कि वीपीएन कनेक्शन पर डीएनएस सर्वर को वैधानिक रूप से असाइन करने के अलावा इसे रोकने का कोई तरीका नहीं है ।

डीएनएस सर्वरों के आदेश को बदलने के लिए, किसी को इंटरफ़ेस बाइंडिंग ऑर्डर को https://superuser.com/a/314379/120267 के अनुसार बदलने में सक्षम माना जाता है , लेकिन ऐसा लगता है कि वीपीएन कनेक्शन को प्रभावित नहीं करता है विंडोज 7 पर मेरा व्यक्तिगत परीक्षण; मैंने पुष्टि की है कि HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage\Bindइंटरफ़ेस बंधन आदेश सेटिंग्स की परवाह किए बिना, मेरा वीपीएन कनेक्शन लगातार सूची के शीर्ष पर जोड़ा जाता है ।

हालाँकि, आप वीपीएन कनेक्शन स्थापित होने के बाद DNS परिवर्तनों को रीसेट कर सकते हैं।

जानकारी हासिल रहा है

कमांड प्रॉम्प्ट ( Start-> Run...-> cmd) खोलें और फिर चलाएं netsh interface ipv4 show dnsservers। आपको निम्न के समान आउटपुट दिखाई देगा:

Configuration for interface "My VPN"
    Statically Configured DNS Servers:    11.22.33.44
                                          55.66.77.88
   ...

Configuration for interface "Local Network Connection"
    DNS servers configured through DHCP:  192.168.0.1
                                          192.168.0.2
    ...

आपको वीपीएन के लिए इंटरफ़ेस नाम की आवश्यकता है , और वैकल्पिक रूप से आपके गैर-वीपीएन कनेक्शन का पहला डीएनएस सर्वर । इस उदाहरण में, वे क्रमशः माय वीपीएन और 192.168.0.1 हैं।


यह सब स्थापित करना

विकल्प 1: वीपीएन डीएनएस को अक्षम करें

यह मानते हुए कि आपको अपने वीपीएन के डीएनएस सर्वर की आवश्यकता नहीं है, आप बस कमांड प्रॉम्प्ट में निम्नलिखित को चला सकते हैं:

netsh interface ipv4 delete dnsservers name="<Interface Name>" address=all validate=no

Eg: netsh interface ipv4 delete dnsservers name="My VPN" address=all validate=no

यदि आप netsh interface ipv4 show dnsserversफिर से चलते हैं , तो आप देखेंगे कि वीपीएन से जुड़े DNS सर्वर हटा दिए गए हैं; आपके गैर-वीपीएन कनेक्शन के DNS सर्वर का उपयोग होस्टनामों को हल करने के लिए किया जाएगा।


विकल्प 2: सप्लीमेंट वीपीएन डीएनएस

यदि आपको इंट्रानेट होस्टनामों को हल करने के लिए अपने वीपीएन के डीएनएस सर्वर की आवश्यकता है, तो आप कमांड प्रॉम्प्ट में निम्नलिखित को चला सकते हैं:

netsh interface ipv4 add dnsservers name="<Interface Name>" address=<Non-VPN DNS server> index=1 validate=no

Eg: netsh interface ipv4 add dnsservers name="My VPN" address=192.168.0.1 index=1 validate=no

इस स्थिति में, netsh interface ipv4 show dnsserversयह दिखाएगा कि आपके गैर-वीपीएन कनेक्शन का पहला डीएनएस सर्वर आपके वीपीएन के डीएनएस सर्वर की सूची में सबसे ऊपर जोड़ा गया है। इसका उपयोग होस्टनामों को पहले हल करने के लिए किया जाएगा, और यदि असफल हो, तो अपने वीपीएन के नियमित DNS सर्वरों का उपयोग करने के लिए वापस आ जाएं।


आप एक नायक हैं सर, व्यापक उत्तर के लिए धन्यवाद, यह ठीक काम करता है! मैं netsh के साथ खिलवाड़ करने की कोशिश की, लेकिन इस दूर पाने के लिए प्रबंधन नहीं किया ...
Wiebe Tijsma

1

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था; वीपीएन सर्वर से कनेक्ट करने से मेरे कार्य केंद्र (दूरस्थ वीपीएन क्लाइंट) डीएनएस को ओवरराइड किया जाएगा ताकि स्थानीय लैन डीएनएस अस्पष्ट हो जाए। मैंने समस्या को स्टैकओवरफ़्लो ओर अधिक विस्तार से वर्णित किया इससे पहले कि मुझे बताया गया था कि मुझे इसे यहां पोस्ट करना चाहिए था।

इस थ्रेड के माध्यम से पढ़ने के बाद यह स्पष्ट है कि ओवरराइड को OpenVPN क्लाइंट कॉन्फ़िगरेशन का उपयोग करके रोका नहीं जा सकता है। मेरा समाधान OpenVPN कॉन्फ़िगरेशन निर्देशिका में एक बैच फ़ाइल को जोड़ना था जो OpenVPN कनेक्शन के बनने पर निष्पादित होता है। यदि OVPN फ़ाइल को company.ovpn कहा जाता है, तो कनेक्ट पर चलने वाली फ़ाइल को company_up.bat नाम दिया जाना चाहिए।

मैंने फ़ाइल को कुछ समय पहले अपने स्टैकऑवरफ़्लो में मेरे प्रश्न के बाद पोस्ट किए गए संस्करण के बाद से संवर्धित किया है। अब यह इस तरह दिखता है:

1: ping 127.0.0.1 -n 2 > nul
2: netsh interface ip set dns "Local Area Connection 4" static 127.0.0.1
3: route delete 0.0.0.0
4: route add -p 0.0.0.0/0 172.20.20.1 metric 1000
5: exit 0

1: आगे बढ़ने से पहले कुछ सेकंड के लिए प्रतीक्षा करने के लिए एक हैक। OpenVPN क्लाइंट का नवीनतम संस्करण (2.3) बिना देरी के निष्पादित होने पर DNS और रूट परिवर्तनों की अनदेखी करेगा।

2: लोकलहोस्ट को इंगित करने के लिए वीपीएन कनेक्शन का डीएनएस सेट करें। मेरे पास लोकलहोस्ट पर चलने वाली एक रिवाल्वर (मैं सिम्पलडएनएस प्लस का उपयोग करता हूं ) जो कंपनी डोमेन से कंपनी के DNS के लिए प्रश्नों को वीपीएन के ऊपर, और बाकी सब कुछ स्थानीय लैन डीएनएस सर्वर को देती है। ध्यान दें कि मैं वीपीएन से अधिक कंपनी DNS के लिए कंपनी के डोमेन के लिए प्रश्नों को अग्रेषित करने के लिए स्थानीय LAN रिज़ॉल्वर का उपयोग नहीं कर सकता क्योंकि वीपीएन समापन बिंदु स्थानीयहोस्ट पर है। कनेक्शन का नाम ("स्थानीय क्षेत्र कनेक्शन 4") कमांड प्रॉम्प्ट पर "ipconfig / all" के माध्यम से निर्धारित किया गया था।

3: कंपनी वीपीएन सर्वर को वीपीएन के माध्यम से सभी आउटबाउंड ट्रैफ़िक को रूट करने के लिए कॉन्फ़िगर किया गया है , जबकि एक ही समय में आउटबाउंड (इंटरनेट से) एसएसएच कनेक्शन को प्रतिबंधित करना है। यह मेरे वर्कफ़्लो के साथ विवादित है, और मैं पहली बार "0.0.0.0 netmask 0.0.0.0" मार्ग को हटा रहा हूँ ...

4: .. और फिर मैं स्थानीय लैन गेटवे को इंगित करने के लिए 0.0.0.0/0 मार्ग को फिर से जोड़ता हूं, और इसके मेट्रिक (वजन) को 1000 तक सभी ट्रैफ़िक के लिए एक कैच-के रूप में सेट करता हूं जो अन्यथा रूट नहीं किया जाता है।

5: "एक्जिट 0" के बिना ओपनवीपीएन स्क्रिप्ट की त्रुटि चेतावनी को विफल कर देता है (निकास स्थिति 1 के साथ) विफल।

उम्मीद है कि यह किसी के लिए उपयोगी है .. यह मेरे लिए यथोचित रूप से काम कर रहा है (मुझे कनेक्शन खोलने पर हर बार मैन्युअल रूप से मार्ग या डीएनएस समायोजन करने की आवश्यकता नहीं है)।


0

क्या कोई तरीका है जिससे मैं अपनी DNS सेटिंग्स (UAC को सक्षम किए बिना) को ओवरराइड करने से रोक सकता हूं?

कम से कम ऐसा करने का कोई आसान तरीका नहीं है।

वैकल्पिक रूप से, क्या कोई ऐसा तरीका है जो मैं किसी प्रकार की स्थानीय रूटिंग को सेट कर सकता हूं जो कहता है कि 'जब आईपी पते के लिए डीएनएस अनुरोध आता है, तो वास्तव में आईपी पते का उपयोग करें बी'?

आप होस्ट्स फ़ाइल में प्रविष्टियाँ जोड़ सकते हैं ( C:\Windows\System32\drivers\etc\hosts)। इस फ़ाइल में होस्ट नामों से आईपी पते तक मैपिंग शामिल है और इसे DNS अनुरोधों पर पसंद किया जाता है।


वैसे मुझे होस्ट्स फाइल के बारे में पता है, लेकिन यह सब आईपी एड्रेस आधारित है जो दुर्भाग्य से काम नहीं करता है ...
Wiebe Tijsma

ओह, ठीक है, अब मुझे आपका प्रश्न मिलता है। और नहीं, आप एक आईपी से दूसरे में अनुरोधों को पुनर्निर्देशित नहीं कर सकते।
माइकल

0

क्या आप 'रिमोट नेटवर्क पर डिफ़ॉल्ट गेटवे का उपयोग करें' चेकबॉक्स की स्थिति की जांच कर सकते हैं। यह आपके वीपीएन कनेक्शन के गुणों को खोलकर नेटवर्किंग टैब पर जाता है और टीसीपी / आईपी वी 4 या टीसीपी / आईपी वी 6 का चयन करता है और फिर गुणों का चयन करता है और फिर उन्नत होता है। यह सक्षम किया जा सकता है जिसका अर्थ है कि सभी इंटरनेट ट्रैफ़िक वीपीएन कनेक्शन पर रूट किए जाते हैं। यह हमेशा अक्षम किया जाना संभव नहीं है और फिर भी आप वीपीएन के साथ क्या चाहते हैं, लेकिन इसे अक्षम किया जा सकता है, इससे इंटरनेट एक्सेस की गति बढ़ सकती है।

यदि वह मदद नहीं करता है, तो वहां एक DNS टैब है और आप अपने DNS सर्वर को वहां जोड़ने का प्रयास कर सकते हैं। मैंने यह कोशिश की है, लेकिन मैं इन सेटिंग्स को स्वचालित सेटिंग्स को ओवरराइड करने की उम्मीद करूंगा।


इसकी जाँच नहीं की गई है, इसलिए यह वीपीएन पर सभी इंटरनेट ट्रैफ़िक को रूट नहीं कर रहा है (जब अंत में नाम हल हो गया है तो कनेक्शन काफी तेज़ है)। मैं वहाँ DNS सेटिंग्स को बदलने की कोशिश की, लेकिन दुर्भाग्य से यह सब अवैध DNS सेटिंग्स में स्वचालित रूप से वापस बदल जाता है जब मैं कनेक्शन को पुनः आरंभ करता हूं :(
Wiebe Tijsma

यदि आप DNS को बदले जाने से नहीं रोक सकते, तो क्या इस पते पर DNS अनुरोधों को अवरुद्ध करने के लिए फ़ायरवॉल का उपयोग करके इसे तेज़ी से विफल करना संभव है?
sgmoore

0

दुर्भाग्य से netsh dhcp द्वारा असाइन किए गए dns सर्वर को हटा नहीं सकता है। लेकिन इसमें DhcpNameServer पैरामीटर क्लियर करके किया जा सकता है

HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{id}

रजिस्ट्री चाबी।


0

2017 के रूप में यह अब संभव है अगर इसके OpenVPN पर आधारित है

अपने क्लाइंट की फ़ाइल को एक लाइन जोड़ें

पुल-फिल्टर "dhcp- ऑप्शन DNS" को अनदेखा करें

और यह उद्धृत पाठ के साथ शुरू होने वाली सभी पुश की गई लाइनों को अनदेखा कर देगा।

तीन एक्शन कीवर्ड हैं accept ignore reject। मैंने अस्वीकार के लिए उपयोग मामला नहीं खोजा है।


0

मैं बस इस विकल्प को ग्राहक वीपीएन कॉन्फिग से हटाता हूं

setenv ऑप्ट ब्लॉक-आउट-डीएनएस

इसने समस्या को हल कर दिया

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