Чому андроїд ігнорує мої тощо / hosts змінюється в браузері?


19

Я переказав /sysяк rw, додав один запис etc/hosts(наприклад 10.0.0.1 x.com www.x.com) і перезавантажив свій пристрій.

Після перезавантаження, якщо я перевіряю etc/hosts, запис нормальний. Якщо я ping x.com, він вводить правильну IP-адресу, яку я ввів.

Але якщо я відкрию веб-браузер (або акцію, або дельфін), і x.comперейду до нього, він перейде до IP-адреси, на яку вирішує DNS.

Що відбувається?

(Мій телефон Nexus One, на якому працює користувальницький Cyanogen 7.1 ROM на базі Android 2.3.7)

Оновлення:
У додатку " LAN Droid " я отримую відредаговану адресу (так 10.0.0.1) також чудово. Здається, що це лише браузери, де він поводиться неправильно.


Просто цікаво: а що, якщо ви зробите це навпаки, і встановите добре відомий домен (або якийсь рекламний сайт), щоб натомість стати localhost? Невдало це завантажувати? І чи справді таке коротке доменне ім’я, як використане у вашому прикладі? (Не дуже цікаво: Internet Explorer перестав приймати файли cookie для двобуквенних доменів . Звичайно, це не пов’язано з вашою проблемою, але, можливо, короткі доменні імена мають інші непарні обмеження в деяких браузерах? Я думаю, що ні.)
Арджан

2
Ви можете це зробити - ls -l /etc/hostsможливо, дозволи / проблеми власності?
t0mm13b

@ t0mm13b "-rw-r - r-- root root"
gcb

@ t0mm13b ви на місці! У моєму випадку це були дозволи. chmod 644 /system/etc/hostsрозібралися
KalenGi

Відповіді:


6

Це звучить так само , як це , аж до пінг роботи , але не в браузері. Його можливе рішення цитується нижче:

Дурне запитання, але ви редагуєте файл на слухавці чи просто натискаєте файл, який ви тут розмістили? Опублікований вами текст у форматі dos, тому в кінці рядка є додаткові символи передачі рядків, які можуть переплутати систему Linux.

Я не знаю, що ви використовували, щоб змінити його, але ви, можливо, захочете перевірити, які символи linefeed / newline використовуються.


відредаговано vi на емуляторі терміналу. спробував примусити ff=unixзараз і set listпобачити будь-який розрив рядка DOS ... навіть пішов вперед і запустив повторне вираження так, як ніби був розрив лінії DOS, нічого не знайдено.
gcb

4

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


2

Чи можете ви встановити strace та порівняти вихідний strace strace на ping та strace у браузері, щоб зрозуміти, чому пошук DNS обробляється по-різному?

Ви впевнені, що не відбувається постійного кешування? Що таке TTL у записах вашого домену?

Android, здається, не використовує /etc/resolv.conf, але, можливо, є деякі властивості, які керують, які програми використовують / etc / hosts та які безпосередньо переходять до DNS-пошуку. https://groups.google.com/forum/?fromgroups#!topic/android-platform/K2Wr4WaEneI


хороші моменти. TTL - 1h, за замовчуванням для всіх правил, які я маю. Потік g.groups здебільшого стосується рішення, до якого сервера імен слід звертатися під час запитів DNS, ця логіка відбувається після etc / hosts. я сподіваюсь. Тепер я проведу страз (дізнаюсь, як це робити раніше) і звітую назад.
gcb

2

Якщо ви створюєте файл хостів на машині Windows, переконайтеся, що кожен рядок відокремлений лише LF (не [CR] [LF], тільки [LF]). Ви можете перевірити це та створити належні файли хостів за допомогою блокнота ++.


0

Думаю, вам потрібно виправити DNS на своєму Android. Перевірте це запитання /programming/2101762/android-flush-dns , особливо "заходьте в налаштування -> програми -> мережеве розташування -> очищення даних".


навіть не мають цієї опції на android 2.3.7. Але телефон із цією зміною на etc / hosts вже місяцями. і я перезавантажую його часто ... сподіваюся, що DNS не кешується місяцями з будь-якої причини.
gcb

0

Я підозрюю, що браузер налаштований на роботу через проксі.

Можливо, ви зможете сказати, використовуючи netstat -n або подивившись у / proc / net / tcp (або ще краще, / proc / # browser_pid # / net / tcp), до якої адреси насправді підключається. Якщо це не відповідає адресі вашого веб-сайту, ймовірно, ви переходите до посередника.


-2

Я зазвичай скажу (але це не стосується вас, на жаль):

Просто спробуйте перезавантажити, якщо зміни залишаються непоміченими, оскільки екземпляр машини Dalvik або базової системи, можливо, кешували колишній запит DNS.

Ви можете спробувати AdAway вручну додати записи до файлу хостів (просто перехреститись, чи це так, як ви робили вручну).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.