Android neden tarayıcıdaki vs / hosts değişikliklerini görmezden geliyor?


19

/sysOlarak yeniden monte ettim rw, etc/hosts(örneğin 10.0.0.1 x.com www.x.com) bir giriş ekledim ve cihazımı yeniden başlattım.

Yeniden başlattıktan sonra, kontrol edersem etc/hosts, giriş gayet iyi. Ping x.comatarsam, girmiş olduğum doğru IP adresine ping atar.

Ancak, bir web tarayıcısı (stok veya Dolphin) açar ve göz x.comatarsam, DNS'nin çözümlediği IP adresine gider.

Ne oluyor?

(Telefonum, Android 2.3.7 tabanlı özel Cyanogen 7.1 ROM çalıştıran bir Nexus One)

Güncelleme:
App ' LAN Droid ' Ben düzenlenen adres (çok 10.0.0.1) çok iyi olsun. Görünüşe göre sadece yanlış davrandığı tarayıcılar.


Sadece merak ediyorum: Ya bunu başka bir şekilde yaparsanız ve bunun yerine iyi bilinen bir alan adı (veya bazı reklam siteleri) localhost olacaksa? Bunu yükleyemiyor mu? Ve gerçekten örneğinizde kullanılan gibi kısa bir alan adı mı? (Not-so-fun-gerçek: Internet Explorer iki harfli alanlar için çerez alımını durdurdu . Tabii ki, ilgisiz sorununuza ama belki ? I olmasa sanırım kısa alan adları bazı tarayıcılarda diğer garip sınırlamaları vardır.)
Arjan

2
bunu yapabilir misiniz - ls -l /etc/hosts, muhtemelen izinler / sahiplik sorunu?
t0mm13b

@ t0mm13b "-rw-r - r-- kök kökü"
gcb

@ t0mm13b yerdesiniz! Benim durumumda izinler vardı. chmod 644 /system/etc/hostsdizildi
KalenGi

Yanıtlar:


6

Aynen böyle bu sesler bu tarayıcıya ping çalışma için değil, aşağı,. Nihai çözümü aşağıda belirtilmiştir:

Aptalca bir soru, ama dosyayı ahizede düzenliyor musunuz yoksa buraya gönderdiğiniz dosyayı mı gönderiyorsunuz? Gönderdiğiniz dosya dos biçimindedir, bu nedenle satırın sonunda bir linux sistemini karıştırabilecek ekstra satır besleme karakterleri vardır.

Ne değiştirmek için kullandığınızı bilmiyorum, ancak ne tür satır besleme / yeni satır karakterlerini kullandığını kontrol etmek isteyebilirsiniz.


terminal emülatöründe vi ile düzenlenmiştir. ff=unixşimdi zorlamak ve set listherhangi bir DOS satır sonu görmek için çalıştı ... hatta devam etti ve herhangi bir DOS satır sonu varmış gibi bir regexp çalıştırın, hiçbir şey bulunamadı.
gcb

4

Bu yardımcı olur, ancak ben yok sayılan bir ana bilgisayar dosyası bir sorun vardı emin değilim ve bu iş parçacığı üzerinde bir adam tarafından çözüldü - cevap dosyanın sonuna boş yeni bir satır koymaktır.


2

DNS aramalarının neden farklı şekilde ele alındığını görmek için strace yükleyebilir ve ping üzerindeki çıkış koşu bandını tarayıcıdaki strace ile karşılaştırabilir misiniz?

Devam eden önbellekleme olmadığından emin misiniz ? Alan adı kayıtlarınızdaki TTL nedir?

Android /etc/resolv.conf kullanmıyor gibi görünebilir, ancak hangi uygulamaların / etc / hosts kullandığını ve doğrudan DNS aramasına giden bazı özellikleri vardır. https://groups.google.com/forum/?fromgroups#!topic/android-platform/K2Wr4WaEneI


güzel nokta. TTL 1h, sahip olduğum tüm yakalama kuralı için varsayılan. G.groups iş parçacığı çoğunlukla DNS sorguları sırasında hangi ad sunucusunun vurulacağına karar verir, bu mantık etc / hosts'den sonra gerçekleşir. umuyorum. Şimdi strace çalıştıracağım (daha önce nasıl yapacağınızı öğrenin) ve geri rapor vereceğim.
gcb

2

Host dosyasını bir Windows makinesinde oluşturuyorsanız, her satırın yalnızca bir LF ile ayrıldığından emin olun ([CR] [LF] değil, sadece [LF]). Bunu doğrulayabilir ve notepad ++ kullanarak uygun bir ana bilgisayar dosyası oluşturabilirsiniz.


0

Android'inizde DNS'yi temizlemeniz gerektiğini düşünüyorum , bu soruyu kontrol edin /programming/2101762/android-flush-dns , özellikle "ayarlara gidin -> uygulamalar -> Ağ Konumu -> Verileri temizle".


android 2.3.7 bu seçeneği bile yok. Ama telefon aylardır vb / ana bilgisayarlarda bu değişiklik ile. ve sık sık yeniden başlatın ... Umarım DNS aylardır herhangi bir nedenle önbelleğe alınmaz.
gcb

0

Şüphem, tarayıcının bir proxy üzerinden çalışacak şekilde yapılandırılmış olmasıydı.

Netstat -n kullanarak veya / proc / net / tcp (ya da daha iyisi, / proc / # browser_pid # / net / tcp) hangi adrese bağlandığını söyleyebilirsiniz. Bu, web sitenizin adresiyle eşleşmiyorsa, muhtemelen bir aracıdan geçiyorsunuzdur.


-2

Normalde derdim (ama bu sizin için geçerli değil, ne yazık ki):

Dalvik makine örneği veya temel alınan sistem eski bir DNS isteğini önbelleğe almış olabileceğinden, değişiklikler fark edilmezse yeniden başlatmayı deneyin.

Ana bilgisayarlar dosyanıza manuel olarak giriş eklemek için AdAway'i deneyebilirsiniz (yalnızca manuel olarak yaptığınızla aynı olup olmadığını kontrol etmek için).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.