Mengapa ponsel saya menggunakan DNS Google Publik?

10

Saya hanya ingin tahu server DNS apa yang digunakan ponsel saya. Jadi saya meluncurkan emulator terminal dan saya masuk:

$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Seperti yang Anda lihat, ponsel saya menggunakan 8.8.8.8 dan 8.8.4.4 sebagai server DNS ( Google Public DNS server ).

Di rumah (Wifi), router saya dikonfigurasi untuk memberikan server OpenDNS melalui DHCP. Tapi, di ponsel saya, cat /etc/resolv.confmengembalikan output yang sama. Hal yang sama dengan 3G. Dan, bahkan jika saya menonaktifkan Wifi dan 3G, dan kemudian reboot ponsel, masih menggunakan server DNS Publik Google.

Saya tidak ingat pernah mengubah resolv.confatau menginstal aplikasi apa pun untuk mengubahnya.

Ponsel saya adalah HTC Desire dengan CyanogenMod 7.2.0.1 (Android 2.3.7).

Adakah yang bisa menjelaskan mengapa ponsel saya menggunakan Google Public DNS? Apakah ini konfigurasi umum untuk perangkat Android apa pun, atau CyanogenMod ROM?

Morgan Courbet
sumber

Jawaban:

11

Menurut Steve Kondik , ini pada dasarnya adalah kode lama yang merupakan sisa dari versi CyanogenMod yang lebih lama:

Ini hanya di sini untuk aplikasi yang secara statis terhubung dengan uclibc dalam versi CM lama. Kemungkinan hanya bisa dihapus.

Namun, ia juga melanjutkan untuk mencatat :

Selain itu, file ini TIDAK ditulis saat menyambung ke jaringan karena sistem hanya dibaca. Server DNS sebenarnya dibaca dari properti sistem.

Saya juga baru saja memverifikasi bahwa server yang disediakan DHCP sebenarnya sedang digunakan, jadi masalah ini tidak valid kecuali ada yang membuktikan sebaliknya.

Jadi nilai dalam /etc/resolv.confsebenarnya tidak mencerminkan pengaturan DNS Anda. Yang bisa Anda lakukan adalah menggunakan getpropuntuk menemukan nilai DNS Anda. Anda dapat menguraikannya dengan lebih baik jika Anda menerima output seperti:

getprop | grep dns

Juga patut dicatat: /etc/resolv.conffile tersebut tampaknya telah dihapus sepenuhnya di versi CyanogenMod yang lebih baru. Saya tidak punya satu di CM10 sama sekali, tetapi getproptidak benar menunjukkan pengaturan DNS saya.

eldarerathis
sumber
Penjawab yang bagus, terima kasih. Namun, getprop | grep dnstidak mengembalikan apa pun. getprop | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'(mencari alamat IPv4) tidak memberikan hasil yang relevan. Sifat dikembalikan ro.baseband, ro.build.description, ro.modversiondan gsm.version.baseband. Ada ide?
Morgan Courbet
@ Organ: Saya kira mungkin ada semacam perbedaan antara CM7 (Anda menjalankan) dan CM10 (apa yang saya uji). Apa yang terjadi jika Anda tidak menangkap output sama sekali? Apakah Anda melihat sesuatu yang relevan? (mungkin ingin menyalurkannya ke moreatau serupa karena bisa panjang)
eldarerathis
1
@Morgan: Saya tidak punya perangkat Gingerbread secara langsung untuk menguji, tetapi harus ada cara untuk melakukannya dalam pengaturan nirkabel standar jika Anda mengkonfigurasi IP statis (Saya tidak berpikir Anda bisa melakukannya dengan cara ini jika Anda menggunakan DHCP, sayangnya). Di JB saya menekan lama jaringan tempat saya terhubung dan memilih "Ubah" untuk mendapatkannya. Mungkin di bawah "Pengaturan lanjutan" (tombol menu saat ada dalam daftar jaringan wifi). Anda juga dapat menggunakan setproptetapi itu tidak akan bertahan di reboot / terputus. Sebagai contoh. setprop net.rmnet0.dns1 <your DNS IP>harus mengubah nilai net.rmnet0.dns1properti.
eldarerathis
1
Dan saya pikir yang lebih spesifik akan digunakan oleh adaptor ( net.rmnet0.dns1dalam kasus Anda), meskipun mungkin mewarisi nilai itu dari net.dns1properti yang lebih umum .
eldarerathis
1
@Rhyuk: Saya tidak tahu. setpropmungkin solusi sementara jika Anda memberikan nilai kosong, tetapi Anda harus menjalankannya di setiap boot (dan saya tidak yakin apakah itu akan berhasil).
eldarerathis