Perubahan ke /etc/hosts
file tampaknya segera berlaku. Saya ingin tahu tentang implementasinya. Sihir apa yang digunakan untuk mencapai fitur ini?
networking
hosts
rudwna
sumber
sumber
Jawaban:
Keajaiban membuka
/etc/hosts
file dan membacanya:The
getaddrinfo(3)
fungsi, yang merupakan satu-satunya nama menyelesaikan standar antarmuka, hanya akan membuka dan membaca/etc/hosts
setiap kali dipanggil untuk menyelesaikan nama host.Aplikasi yang lebih canggih yang tidak menggunakan standar
getaddrinfo(3)
, tetapi masih entah bagaimana menambah/etc/hosts
campuran (misalnyadnsmasq
server DNS) mungkin digunakaninotify(7)
untuk memantau perubahan pada/etc/hosts
file dan membaca kembali hanya jika diperlukan.Browser dan aplikasi semacam itu tidak akan melakukan itu. Mereka akan membuka dan membaca
/etc/hosts
setiap kali mereka perlu menyelesaikan nama host, bahkan jika mereka tidak menggunakan resolib libc secara langsung, tetapi mereplikasi kerjanya dengan cara lain.sumber
Resolusi nama, antara lain, dikelola oleh
/etc/nsswitch.conf
. Berikut ini kutipannya:Perhatikan
hosts
barisnya. Bunyinya: "Ketika menyelesaikan nama host, pertama-tama baca/etc/hosts
file untuk mencari nama host, jika tidak ditemukan kemudian jalankan permintaan DNS, jika tidak ditemukan kemudian coba sistem nama host yang dikonfigurasi secara lokal".Jadi, inilah mengapa sangat cepat. Perhatikan bahwa itu tidak tergantung pada layanan jaringan pada mesin, jadi tidak ada layanan untuk memulai ulang atau memuat ulang.
sumber
/etc/hosts
. Mengapa tidak menggunakan versi cache?