Saya telah menghitung ulang /sys
sebagai rw
, menambahkan satu entri ke etc/hosts
(misalnya 10.0.0.1 x.com www.x.com
) dan mem-boot ulang perangkat saya.
Setelah reboot, jika saya periksa etc/hosts
, entri baik-baik saja. Jika saya ping x.com
, ping alamat IP yang benar saya masukkan.
Tapi, jika saya membuka browser web (baik stock atau Dolphin), dan browse ke x.com
, itu akan pergi ke alamat IP yang DNS putuskan.
Apa yang terjadi?
(Ponsel saya adalah Nexus One, yang menjalankan ROM Cyanogen 7.1 khusus berdasarkan Android 2.3.7)
Pembaruan:
Pada aplikasi ' LAN Droid ' saya mendapatkan alamat yang sudah diedit (jadi 10.0.0.1
) baik-baik saja. Sepertinya hanya browser yang berperilaku salah.
ls -l /etc/hosts
, mungkin masalah izin / kepemilikan?chmod 644 /system/etc/hosts
mengatasinyaJawaban:
Ini terdengar persis seperti ini , hingga ping berfungsi tetapi bukan browser. Solusi akhirnya dikutip di bawah ini:
Saya tidak tahu apa yang Anda gunakan untuk memodifikasinya, tetapi Anda mungkin ingin memeriksa karakter linefeed / baris baru apa yang digunakannya.
sumber
ff=unix
sekarang danset list
untuk melihat setiap jeda baris DOS ... bahkan terus maju dan menjalankan regexp seolah-olah ada jeda baris DOS, tidak ada yang ditemukan.Tidak yakin apakah ini membantu tapi saya punya masalah dengan file host yang diabaikan dan diselesaikan oleh seorang pria di utas ini - jawabannya adalah dengan meletakkan baris baru kosong di akhir file.
sumber
Bisakah Anda menginstal strace dan membandingkan output running strace pada ping dengan strace pada browser untuk melihat mengapa pencarian DNS ditangani secara berbeda?
Apakah Anda yakin tidak ada caching terus-menerus? Apa TTL pada catatan domain Anda?
Android tampaknya tidak menggunakan /etc/resolv.conf, tetapi mungkin ada beberapa properti yang mengontrol aplikasi mana yang menggunakan / etc / hosts dan yang langsung menuju pencarian DNS. https://groups.google.com/forum/?fromgroups#!topic/android-platform/K2Wr4WaEneI
sumber
Jika Anda membuat file hosts di mesin windows, pastikan setiap baris dipisahkan oleh LF saja (bukan [CR] [LF], hanya [LF]). Anda dapat memverifikasi itu dan membuat file host yang tepat menggunakan notepad ++.
sumber
Saya pikir Anda perlu menyiram DNS di Android Anda memeriksa pertanyaan ini /programming/2101762/android-flush-dns , terutama "masuk ke pengaturan -> aplikasi -> Lokasi Jaringan -> Hapus data."
sumber
Kecurigaan saya adalah bahwa browser dikonfigurasi untuk bekerja melalui proxy.
Anda mungkin dapat mengetahui menggunakan netstat -n atau mencari di / proc / net / tcp (atau lebih baik lagi, / proc / # browser_pid # / net / tcp) alamat apa yang sebenarnya terhubung. Jika itu tidak cocok dengan alamat situs web Anda, kemungkinan Anda akan melalui perantara.
sumber
Saya biasanya mengatakan (tapi ini tidak berlaku untuk Anda, sayangnya):
Coba saja reboot jika perubahan tidak diperhatikan karena mesin virtual Dalvik atau sistem yang mendasari mungkin telah men-cache permintaan DNS sebelumnya.
Anda dapat mencoba AdAway untuk secara manual menambahkan entri ke file host Anda (hanya untuk memeriksa silang apakah itu sama seperti yang Anda lakukan secara manual).
sumber