안드로이드가 브라우저에서 내 etc / hosts 변경을 무시하는 이유는 무엇입니까?


19

나는 다시 탑재 한 /sys바와 같이 rw, 하나 개의 항목을 추가 etc/hosts(예를 10.0.0.1 x.com www.x.com) 내 장치를 다시 부팅.

재부팅 후 확인 etc/hosts하면 항목이 정상입니다. I 핑 경우 x.com, 내가 입력 한 올바른 IP 주소를 ping합니다.

그러나 웹 브라우저 (스톡 또는 Dolphin)를 열고로 x.com이동하면 DNS가 확인하는 IP 주소로 이동합니다.

무슨 일이야?

(내 전화는 Android 2.3.7 기반의 맞춤형 Cyanogen 7.1 ROM을 실행하는 Nexus One입니다.)

업데이트 :
앱 ' LAN Droid '에서 편집 된 주소 (그래서 10.0.0.1)도 잘 얻 습니다. 브라우저가 잘못 작동하는 것 같습니다.


궁금한 점이 있습니다. 다른 방법으로 수행하고 잘 알려진 도메인 (또는 일부 광고 사이트)을 localhost로 설정하면 어떻게됩니까? 그런 다음로드하지 않습니까? 그리고 그것은 당신의 예제에서 사용 된 것과 같은 짧은 도메인 이름입니까? (그리 재미있는 사실 : Internet Explorer가 두 개의 문자로 된 도메인에 대한 쿠키를 허용 정지 . 물론, 관련이없는 문제로,하지만 어쩌면 ? 내가 생각하지 생각 짧은 도메인 이름은 일부 브라우저에서 다른 이상한 제한이 있습니다.)
Arjan

2
이 작업을 수행 할 수 ls -l /etc/hosts있습니까? 권한 / 소유권 문제 일 수 있습니까?
t0mm13b

@ t0mm13b "-rw-r--r-- 루트 루트"
gcb

@ t0mm13b 당신이 자리에 있습니다! 제 경우에는 권한이었습니다. chmod 644 /system/etc/hosts그것을 분류
KalenGi

답변:


6

정확히 같은이 소리가 브라우저 핑 작업을하지만 아래. 그의 최종 솔루션은 다음과 같습니다.

어리석은 질문이지만 핸드셋에서 파일을 편집하거나 여기에 게시 한 파일을 밀고 있습니까? 게시 한 내용은 dos 형식이므로 줄 끝에 문자를 추가하여 Linux 시스템을 혼동시킬 수 있습니다.

어떤 것을 사용하여 수정했는지 모르지만 사용중인 줄 바꿈 / 줄 바꾸기 문자를 확인하고 싶을 수 있습니다.


터미널 에뮬레이터에서 vi로 편집되었습니다. ff=unix지금 강요 하고 set listDOS 줄 바꿈을 보려고했습니다 ... 심지어 DOS 줄 바꿈이있는 것처럼 아무것도 찾지 못했습니다.
gcb

4

이것이 도움이되는지 확실하지 않지만 무시 된 호스트 파일에 문제가 있고이 스레드 의 사람이 해결했습니다 . 답은 파일 끝에 빈 줄을 새로 작성하는 것입니다.


2

strace를 설치하고 ping에서 strace를 실행하는 출력을 브라우저의 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 후에 발생합니다. 나는 희망. 이제 strace를 실행하고 (이전의 방법 찾기) 다시보고합니다.
gcb

2

Windows 시스템에서 호스트 파일을 작성하는 경우 각 행을 LF로만 분리하십시오 ([CR] [LF]가 아니라 [LF] 만). notepad ++를 사용하여이를 확인하고 적절한 호스트 파일을 작성할 수 있습니다.


0

안드로이드에서 DNS를 플러시해야한다고 생각합니다.이 질문 /programming/2101762/android-flush-dns , 특히 "설정-> 응용 프로그램-> 네트워크 위치-> 데이터 지우기"를 확인하십시오.


안드로이드 2.3.7에는이 옵션조차 없습니다. 그러나 전화는 현재 몇 달 동안 etc / hosts 에서이 변경 사항이 있습니다. 그리고 자주 재부팅합니다 ... 어떤 이유로 든 DNS가 몇 달 동안 캐시되지 않기를 바랍니다.
gcb

0

브라우저가 프록시를 통해 작동하도록 구성되어 있다고 의심됩니다.

netstat -n을 사용하거나 / proc / net / tcp (또는 더 나은 방법은 / proc / # browser_pid # / net / tcp)에서 실제로 연결되어있는 주소를 확인하여 알 수 있습니다. 그것이 귀하의 웹 사이트 주소와 일치하지 않으면 귀하는 중개자를 겪을 가능성이 있습니다.


-2

나는 일반적으로 말합니다 (그러나 이것은 당신에게 적용되지 않습니다).

Dalvik 머신 인스턴스 또는 기본 시스템이 이전 DNS 요청을 캐시했을 수 있으므로 변경 사항이 눈에 띄지 않으면 재부팅을 시도하십시오.

AdAway를 사용하여 호스트 파일에 항목을 수동으로 추가 할 수 있습니다 (수동으로 수행 한 것과 동일한 지 교차 확인하기 위해).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.