Androidでブラウザのetc / hostsの変更が無視されるのはなぜですか?


19

/sysとして再マウントしrw、1つのエントリをetc/hosts(例10.0.0.1 x.com www.x.com)に追加し、デバイスを再起動しました。

再起動後、チェックするetc/hostsと、エントリは正常です。pingを実行するとx.com、入力した正しいIPアドレスにpingを実行します。

ただし、Webブラウザー(ストックまたはDolphin)を開いてを参照するx.comと、DNSが解決するIPアドレスに移動します。

何が起こっていますか?

(私の電話はNexus Oneで、Android 2.3.7に基づいてカスタムCyanogen 7.1 ROMを実行しています)

更新:
アプリ「LAN Droid」で、編集されたアドレスを取得します(そのため10.0.0.1)。間違った動作をするのはブラウザだけのようです。


好奇心が強い:逆に、よく知られたドメイン(または広告サイト)を設定して、代わりにlocalhostにするとどうなるでしょうか?それをロードできませんか?そして、あなたの例で使用されているような本当に短いドメイン名ですか?(それほど楽しい事実:Internet Explorerが2文字のドメインのクッキーを受け入れ停止。もちろん、関係のない問題に、しかし多分?私もないと思い、短いドメイン名は、一部のブラウザでは、他の奇妙な制限があります。)
Arjan

2
あなたはこれを行うことができます- ls -l /etc/hosts、おそらく許可/所有権の問題?
t0mm13b

@ t0mm13b "-rw-r--r--ルートルート"
-gcb

@ t0mm13bあなたがスポットです!私の場合、それは許可でした。chmod 644 /system/etc/hostsそれを整理
カレンギ14年

回答:


6

正確のようなこの音、このブラウザのping作業にではなく、ダウン、。彼の最終的な解決策を以下に引用します。

愚かな質問ですが、携帯電話でファイルを編集しているのですか、それともここに投稿したファイルをプッシュするだけですか?あなたが投稿したのはDOS形式ですので、行末に余分な改行文字があり、Linuxシステムを混乱させる可能性があります。

あなたがそれを変更するのに何を使ったのか分かりませんが、どのような種類の改行/改行文字を使用しているかを確認したいかもしれません。


端末エミュレータでviを使用して編集します。ff=unix今、強制的にset listDOS改行を表示しようとしました... DOS改行が存在するかのように正規表現を実行し、何も見つかりませんでした。
gcb

4

これが役立つかどうかはわかりませんが、hostsファイルが無視されるという問題があり、このスレッドの男によって解決されました-答えはファイルの最後に空白の新しい行を入れることです。


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マシンでhostsファイルを作成する場合、各行がLFのみで区切られていることを確認してください([CR] [LF]ではなく、[LF]のみ)。それを確認し、notepad ++を使用して適切なホストファイルを作成できます。


0

AndroidでDNSをフラッシュする必要があると思います/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を使用して、hostsファイルに手動でエントリを追加することができます(手動で行った場合と同じかどうかをクロスチェックするためだけです)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.