Чому мій телефон використовує Google Public DNS?


10

Мені було просто цікаво дізнатися, яким сервером DNS використовується мій телефон. Тому я запустив емулятор терміналу, і я ввів:

$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Як бачите, мій телефон використовує 8.8.8.8 та 8.8.4.4 як сервери DNS (сервери Google DNS ).

Вдома (Wifi) мій маршрутизатор налаштований на надання серверів OpenDNS через DHCP. Але на мій телефон cat /etc/resolv.confповертає той самий вихід. Те саме з 3G. І навіть якщо я відключу і Wifi, і 3G, а потім перезавантажую телефон, він все ще використовує загальнодоступні сервери DNS Google.

Я не пам’ятаю, щоб змінити resolv.confчи встановити будь-яку програму, щоб змінити її.

Мій телефон - це HTC Desire із CyanogenMod 7.2.0.1 (Android 2.3.7).

Хтось може мені пояснити, чому мій телефон використовує Google Public DNS? Це загальна конфігурація для будь-яких пристроїв Android чи CyanogenMod ROM?

Відповіді:


11

За словами Стіва Кондіка , це фактично старий код, який залишився від старих версій CyanogenMod:

Це було лише для програм, які старі були пов'язані з uclibc у старих версіях CM. Ймовірно, його можна буде просто зняти.

Однак він також продовжує відзначати :

Також цей файл НЕ записується під час підключення до мережі, оскільки / система читається тільки. Фактичні сервери DNS зчитуються із властивостей системи.

Я також просто перевірив, що сервери, що постачаються DHCP, фактично використовуються, тому ця проблема є недійсною, якщо хтось не докаже іншого.

Таким чином, значення /etc/resolv.confфактично не відображають ваші налаштування DNS. Що ви можете зробити замість цього - скористатися getpropдля пошуку значень DNS. Ви можете вирівняти його досить непогано, якщо ви схоплюєте результат таким чином:

getprop | grep dns

Також варто відзначити: /etc/resolv.confздається, що файл був видалений повністю в пізніших версіях CyanogenMod. У мене взагалі немає такого на CM10, але getpropвін правильно показує мої налаштування DNS.


Чудовий answser, дякую. Однак getprop | grep dnsнічого не повертає. getprop | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'(шукає адресу IPv4) не повертає відповідний результат. Повернуті властивості ro.baseband, ro.build.description, ro.modversionі gsm.version.baseband. Будь-яка ідея?
Морган Курбе

@Morgan: Я думаю, це може бути якась різниця між CM7 (ти працюєш) і CM10 (на що я тестував). Що станеться, якщо ви взагалі не зіткнете вихід? Ви бачите щось відповідне? (можливо, захочете передати його в moreподібне або подібне, оскільки воно може бути тривалим)
eldarerathis

1
@Morgan: У мене немає пристрою пряників для тестування, однак у стандартних бездротових налаштуваннях має бути спосіб зробити це, якщо ви налаштуєте статичний IP (я не думаю, що ви можете це зробити так, якщо використовуєте DHCP, на жаль). На JB я довго натискаю мережу, до якої я підключений, і вибираю "Змінити", щоб дістатися до неї. Це може бути під "Розширеними поселеннями", хоча (кнопка меню знаходиться у списку мереж Wi-Fi). Ви також можете використовувати, setpropале це не збережеться при перезавантаженнях / відключеннях. Наприклад. setprop net.rmnet0.dns1 <your DNS IP>має змінити вартість net.rmnet0.dns1майна.
eldarerathis

1
І я думаю, що більш конкретний буде використаний адаптером ( net.rmnet0.dns1у вашому випадку), хоча він може успадкувати це значення від більш загальної net.dns1властивості.
eldarerathis

1
@Rhyuk: Я не знаю. setpropце може бути тимчасовим рішенням, якщо ви давали йому порожні значення, але вам доведеться запускати його при кожному завантаженні (і я не впевнений, чи справді це спрацювало б).
eldarerathis
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.