एंड्रॉइड किटकैट पर मोबाइल कनेक्शन के DNS को कैसे बदलें?


24

मैं अपने स्थानीय मोबाइल ISP से सेंसरशिप से बचना चाहता हूं (यह imgur को ब्लॉक करता है, उदाहरण के लिए, किसी अज्ञात कारण से।

स्क्रीनशॉट
स्क्रीनशॉट (बड़े संस्करण के लिए छवि पर क्लिक करें)

मुझे पूरा यकीन है कि मैं अपने DNS को Google DNS या OpenDNS में बदलकर इसे दरकिनार कर सकता हूं, लेकिन मैं वास्तव में सुनिश्चित नहीं हूं कि किटकैट पर इसे कैसे पूरा किया जाए।

Info:
Device: Nexus 5
Android version: 4.4.2
Device status: rooted

जवाबों:


18

ठीक है, सबसे पहले पूर्ण प्रकटीकरण : मैं एक ऐप का लेखक हूं जो अब Google Play Store पर है और जो आपको Android 4.4 पर किसी भी मोबाइल कनेक्शन के लिए DNS बदलने में सक्षम बनाता है। ऐप को रूट की आवश्यकता होती है , एक-दो रुपये खर्च होते हैं और इसे ओवरराइड डीएनएस कहा जाता है । मुझे बताया गया, अब हटाए गए उत्तर पर, जब तक मैं इसे स्पष्ट रूप से उजागर नहीं करता, तब तक अपने ऐप से लिंक करना उचित है।

एंड्रॉइड (4.4) की इस रिलीज़ के साथ मुझे जो समस्या है, वह यह है कि, जाहिरा तौर पर कैशिंग कारणों से, सिस्टम व्यवहार को सभी DNS प्रश्नों को सिस्टम डेमॉन नामक पुनर्निर्देशित करने के लिए बदल दिया गया है netd(यहां 4.4 से पहले एंड्रॉइड नेटवर्किंग से संबंधित प्रस्तुति का लिंक दिया गया है जो हालाँकि, इन विषयों का हिस्सा है)।

getprop/ setpropविधि अब और काम नहीं करता। जब वे मूल्य बदल जाते हैं, तो केवल netdडेमॉन द्वारा अनदेखा कर दिया जाता है ।

/dev/socket/netdसॉकेट के माध्यम से डेमॉन से सीधे संवाद करना आवश्यक है । एंड्रॉइड में यह अब एक टूल पेश करता है जिसे बुलाया जाता है ndcजो वास्तव में यह काम करता है।

DNS संबंधित सामान का सिंटैक्स यह है:

# ndc resolver flushif <iface>
# ndc resolver flushdefaultif
# ndc resolver setifdns <iface> <domains> <dns1> <dns2>
# ndc resolver setdefaultif <iface>

एप्लिकेशन अपने आप नेटवर्क डिवाइस का नाम अनुमान लगा लेता है और इन हर बार एक मोबाइल नेटवर्क सक्रिय हो जाता है आदेश लागू होता है।


Setifdns की सही वाक्य रचना है: ndc resolver setifdns <iface> <domains> <dns1> <dns2> ...। उदाहरण:ndc resolver setifdns eth0 "" 8.8.8.8 8.8.4.4
क्रिश्चियन डी'ह्योर्यूज १०'१५

@ Christiand'Heureuse तुम सही हो, मैंने जवाब अपडेट किया, धन्यवाद।
मैक्सचिनी

13

मैं एक iptables नियम का उपयोग करके इस समस्या का "हल" कर रहा हूँ ताकि एक इच्छित DNS सर्वर पर सभी पोर्ट 53 कनेक्शनों को अग्रेषित किया जा सके; 3 जी से जुड़े DNS सेटिंग्स को संशोधित करने के प्रयास के साथ एंड्रॉइड 4.4.2 पर मेरा अनुभव बिल्कुल लियो के रूप में वर्णित किया गया है; गेटप्रॉप में मूल्यों की अज्ञानता | grep dns [0-9] \]: और dhcpd.conf।

iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 8.8.8.8:53

इसका कारण यहां बताया गया है: http://forum.xda-developers.com/showpost.php?p=44722857&postcount=6 सभी ऐप्स एक / dev / सॉकेट या dnsproxyd यूनिक्स सॉकेट के माध्यम से नेट के माध्यम से DNS लुकअप करते हैं। यह थ्रेड यह भी बताता है कि सिस्टम गुणों को अनदेखा क्यों किया जा रहा है।

इसे पूर्ववत करने के लिए, करें

iptables -t nat -L OUTPUT -n -v --line-numbers

, udp dpt: 53 से: xxx.xxx.xxx.xxx: 53 से संबंधित लाइन नंबर खोजें

iptables -t nat -D OUTPUT *linenumber*

2
धन्यवाद! इसके अलावा, इस कारण का सारांश: Google विज्ञापन अवरोधकों के साथ हथियारों की दौड़ खेल रहा है। उन्होंने उस वर्तमान साधन को निष्क्रिय करने का प्रयास किया, जिसमें विज्ञापन अवरोधक काम करते थे, और विज्ञापन अवरोधक एक दूसरे के पास चले गए, जबकि सभी उपयोगकर्ता (विज्ञापन अवरोधक या नहीं का उपयोग करने की परवाह किए बिना) उस Google चाल से हमेशा के लिए नाराज हो जाएंगे। ... मुझे लगा कि हर कोई जानता है कि विज्ञापन अवरोधकों के खिलाफ लड़ना अब तक एक मूर्खतापूर्ण कदम था। मूर्खतापूर्ण गूगल। (भी, ओपनसोर्स ऐप AFWALL इस कस्टम नियम को आसानी से जोड़ने का एक सुविधाजनक तरीका है)
gcb

AfWall + wiki इस तरह से कस्टम iptables नियम लागू करने के बारे में
betatester07

1

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

उपयोग करने के लिए एक अच्छी DNS सेवा Google की सार्वजनिक DNS सेवा होगी। इस तरह के मुद्दों के लिए यह बहुत अच्छी तरह से काम करता है।

यदि इनमें से कोई भी काम नहीं करता है, तो उत्तर की तलाश में रहें। इस तरह की चीजों के लिए एक अच्छी साइट एक्सडीए डेवलपर्स है । वे एंड्रॉइड के लिए चीजों पर कई जवाब देते हैं।


1

मैं KitKat CyanogenMod 11 पर हूं, जिसका अर्थ है मैं डिफ़ॉल्ट रूप से निहित हूं। इसके बावजूद कि मैं केवल विफलता की रिपोर्ट कर सकता हूं:

पहली विधि:

जब मैं adb shellसाथ कोशिश करता हूं

setprop net.rmnet0.dns1 208.67.222.222
setprop net.rmnet0.dns2 208.67.222.222
setprop net.rmnet1.dns1 208.67.222.222
setprop net.rmnet1.dns2 208.67.222.222
setprop net.rmnet2.dns1 208.67.222.222
setprop net.rmnet2.dns2 208.67.222.222
setprop net.dns1 208.67.222.222
setprop net.dns1 208.67.222.222

और फिर जिस पर IP hjfdkhfjkyuiwnwetbyebvtwgqwdi.tk संकल्प का परीक्षण करें ... मुझे एक NXDOMAIN प्रतिक्रिया मिलती है, जिसका अर्थ है कि यह OpenDNS नामांकित व्यक्ति के द्वारा सेट नहीं किया गया है (जो एक वैकल्पिक IP के साथ एक उत्तर लौटाएगा, जो आपको जोड़ता है)।

जब कर रहे हो

getprop | grep dns

मैं केवल वही देखूंगा जो मैंने कॉन्फ़िगर किया है। हालाँकि जब वाईफाई से मोबाइल (3 जी या 4 जी / एलटीई) पर स्विच किया जाता है तो मुझे आईपी दिखाई देता है जिसे मैं अपने मोबाइल कैरियर को सौंपा जाना मानता हूं। "DNSwitch" या "DNS Changer" जैसे ऐप उन रिज़ॉल्वर को नेटवर्क परिवर्तन पर स्वचालित रूप से फिर से सेट कर सकते हैं। हालाँकि जो getpropमुझे रिपोर्ट करता है, वह अभी भी नहीं है जो वास्तव में समाधान कर रहा है।

दूसरी विधि [a]:

एक और तरीका मैंने आजमाया, मोडिफ़ेंग /system/etc/dhcpcd/dhcpcd-hooks/20-dns.confएक सेट की गई चीजें हैं जो वहां तय होती हैं (लेकिन जागरूक नेटवर्क नाम और रिज़ॉल्वर की संख्या अलग-अलग हो सकती है)। सफलता के बिना।

दूसरी विधि [बी]:

और /system/etc/dhcpcd/dhcpcd.confमैंने डीएचसीपी नेगोसिएशन में रिज़ॉल्वर स्वीकार करने के लिए पैरामीटर को हटा दिया। कोई सफलता भी नहीं।

3 वीं विधि:

अभी तक केवल एक चीज जो थोड़ा काम करेगी, वह "गरीब आदमी वीपीएन" का उपयोग कर रही है, एसओएसकेएस 4 का उपयोग करके "एसएसएच टनल" ऐप का उपयोग कर रही है, लेकिन इसका उपयोग करने से मुझे वास्तव में अच्छा परिणाम नहीं मिला।

बायोडाटा:

ऐसा लगता है जैसे या तो DNS सेट कहीं और है, या जैसे ही नेटवर्क मोबाइल है, सभी फॉरवर्ड (अपहृत) कर दिए जाते हैं।

तो, कैसे आया? क्या यह नेटवर्क तटस्थता को ध्वस्त करने के लिए एक उपकरण के साथ वाहक प्रदान करने का एक और गंदा तरीका है?

आपके मामले में आपका प्रश्न उसी के कारण था। क्या आपके पास यह प्रयास करने के लिए SSH है कि क्या SSHTunnel आपके कैरियर सेंसर के आसपास पाने के लिए एक वैकल्पिक समाधान है?


मुझे ब्लॉक को दरकिनार करने का एक तरीका मिल गया है, लेकिन यह बोझिल है और मामला-दर-मामला आधार पर है। मैं रूटेड हूं इसलिए मेरे पास मेजबान फाइल तक पहुंच है। अगला, मैंने imgur के प्रत्यक्ष आईपी पते की तलाश की, फिर मैं उन मूल्यों को मैन्युअल रूप से होस्ट्स फ़ाइल में इनपुट करता हूं। अब के लिए समस्या हल हो गई।
user51893

1

मुझे आज उसी समस्या का सामना करना पड़ा, और ट्रांसफ्यूजन के लिए धन्यवाद। मैंने इसे काम करने के लिए एक ऐप " DNS फॉरवर्ड आर" विकसित करने की कोशिश की । यह सिस्टम पर डीएनएस सर्वर को नहीं बदलता है, लेकिन आगे डीएनएस प्रश्नों को दूसरे सर्वर पर भेज देता है। किटकैट (Nexus 5 / 4.4.3 और Moto Razr / CM11) पर यह वर्कअराउंड मेरे लिए ठीक काम करता है। आशा है कि यह अन्य को भी मदद कर सकता है।


यह वास्तव में काम करता है, यह निश्चित नहीं है कि आप मतदान क्यों करते हैं
वॉरसॉन्ग

0

वर्तमान में मुझे नहीं लगता कि आपके मोबाइल डेटा पर अपने DNS को बदलने का कोई तरीका है। लेकिन अगर आपका फोन रूट किया गया है तो आप सेट डीएनएस जैसे ऐप का उपयोग कर सकते हैं ।


अफसोस की बात यह है कि यह ऐप एंड्रॉइड 4.3 और इसके बाद के संस्करण का समर्थन नहीं करता है :( ऐप के विवरण से लिया गया है: "कृपया MOMENT के लिए एंड्रॉइड 4.3 पर इनस्टॉल न करें, जहां वे KERNEL में उपलब्ध DNS हॉन्डिंग के साथ उपलब्ध हैं। मैं 4.3 उपकरणों के लिए बाजार से भर गया हूँ। "
user51893

आपका प्रश्न कहता है कि आपको Android किटकैट के लिए इसकी आवश्यकता है जो कि एंड्रॉइड 4.4 है। * जबकि एंड्रॉइड 4.3 जेलीबीन है।
करण राज बारुहा २

मैंने पहले ही अपने डिवाइस पर प्ले स्टोर पर ऐप का पेज खोल दिया है, और यह बहुत ऊपर सही कहता है: "आपका डिवाइस इस वर्जन के साथ संगत नहीं है।" इसलिए मुझे यकीन है कि समस्या 4.3 संस्करण से किटकैट तक बनी हुई है।
user51893

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

संकेत: AppBrain पर ऐप्स पृष्ठ पर जाने से कई विकल्प (दाएं हाथ शीर्ष 4) सूचीबद्ध होते हैं। हालाँकि, उस क्षेत्र के अधिकांश समाधानों को रूट एक्सेस की आवश्यकता होती है।
इज़ी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.