Я перемонтировал /sys
как rw
, добавил одну запись etc/hosts
(например 10.0.0.1 x.com www.x.com
) и перезагрузил мое устройство.
После перезагрузки, если я проверю etc/hosts
, запись в порядке. Если я пингую x.com
, он пингует правильный IP-адрес, который я ввел.
Но если я открою веб-браузер (стандартный или Dolphin) и перейду к нему x.com
, он перейдет на IP-адрес, к которому относится DNS.
Что происходит?
(Мой телефон - Nexus One, на котором установлена кастомная ПЗУ Cyanogen 7.1 на базе Android 2.3.7)
Обновление:
в приложении « LAN Droid » я получаю отредактированный адрес (так 10.0.0.1
) просто отлично. Похоже, что только браузеры ведут себя неправильно.
ls -l /etc/hosts
возможно, проблема с правами доступа / владением?chmod 644 /system/etc/hosts
разобралсяОтветы:
Это звучит так же , как это , вплоть до пинг работы , но не в браузере. Его возможное решение приводится ниже:
Я не знаю, что вы использовали для его изменения, но вы можете проверить, какой символ перевода строки / перевода строки он использует.
источник
ff=unix
сейчас иset list
увидеть любой разрыв строки в DOS ... даже пошел вперед и запустил регулярное выражение, как если бы был разрыв строки в DOS, ничего не найдено.Не уверен, поможет ли это, но у меня была проблема с игнорируемым файлом хостов, и он был решен парнем из этого потока - ответ заключается в добавлении пустой новой строки в конец файла.
источник
Можете ли вы установить strace и сравнить выходную строку strace на ping с strace в браузере, чтобы понять, почему DNS-запросы обрабатываются по-разному?
Вы уверены, что не происходит постоянного кэширования? Что такое TTL в записях вашего домена?
Похоже, что Android не использует /etc/resolv.conf, но, возможно, есть некоторые свойства, которые контролируют, какие приложения используют / etc / hosts, а какие обращаются непосредственно к поиску DNS. https://groups.google.com/forum/?fromgroups#!topic/android-platform/K2Wr4WaEneI
источник
Если вы создаете файл hosts на компьютере с Windows, убедитесь, что каждая строка разделена только LF (не [CR] [LF], только [LF]). Вы можете проверить это и создать надлежащие файлы hosts, используя notepad ++.
источник
Я думаю, что вам нужно сбросить DNS на вашем Android, проверьте этот вопрос /programming/2101762/android-flush-dns , особенно «зайдите в настройки -> приложения -> Расположение в сети -> Очистить данные».
источник
Я подозреваю, что браузер настроен на работу через прокси.
Возможно, вы сможете с помощью netstat -n или узнать в / proc / net / tcp (или еще лучше / proc / # browser_pid # / net / tcp), к какому адресу он фактически подключается. Если это не соответствует адресу вашего сайта, скорее всего, вы проходите через посредника.
источник
Обычно я бы сказал (но это не относится к вам, увы):
Просто попробуйте перезагрузиться, если изменения останутся незамеченными, потому что экземпляр компьютера Dalvik или базовая система могли кэшировать предыдущий запрос DNS.
Вы можете попробовать AdAway вручную добавить записи в ваш файл hosts (просто для перекрестной проверки, если он делает то же самое, что вы делали вручную).
источник