File /etc/hosts
dan DNS tidak bekerja bersama. Mereka memberikan resolusi nama independen (nama jaringan).
Lem yang menghubungkan mereka ada di dalam /etc/nsswitch.conf
untuk sistem linux . Di /etc/netsvc.conf
untuk server AIX, di sistem untuk Windows dan dapat didaftar dengan lookupd -configuration
(cari LookupOrder, mirip dengan:) Cache FF DNS NI DS
di sistem MacOS.
Urutan aktual menjadi kompleks dan biasanya berbelit-belit karena setiap layanan resolusi nama dapat (dan berkali-kali) melihat ke dalam tingkat resolusi lain. Seperti dnsmasq
(server DNS ringan umumnya di 127.0.0.1:53
, atau ::1:53
(atau keduanya)) biasanya membaca dan menyertakan /etc/hosts
konten file. Atau seperti systemd.resolver
(penyelesai dasar yang semestinya hanya menyelesaikan nama-nama yang tidak bertitik seperti mycomputer
) memanggil resolusi DNS langsung untuk nama-nama bertitik ( mycomputer.here.dev.
) dalam beberapa kondisi.
Secara umum, layanan dipanggil secara berurutan dan yang pertama tidak gagal akan menang dan diterima sebagai alamat yang benar. Urutan dasar umum adalah: /etc/hosts
(file), mDNS (nama tidak putus-putus), DNS, NIS, NIS +, LDAP. Dalam beberapa sistem linux ada resolusi terakhir untuk komputer hostname
dalam layananmyhostname
Misalnya, dalam sistem ini (dari cat /etc/nsswitch
):
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
Perhatikan bahwa order
entri yang sangat lama (glibc 2.4 dan sebelumnya) ditetapkan/etc/host.conf
sebagai:
order hosts,bind,nis
Hanya berlaku untuk layanan nama file (file /etc/hosts
).
Efek pada komputer klien (linux) yang terkait dengan NIS dan LDAP ini (biasanya) dikendalikan oleh server DNS yang digunakan (bind, unbound, dll.).
begitu:
- Jika nama host dapat diselesaikan di / etc / hosts, apakah DNS berlaku setelah / etc / hosts untuk menyelesaikan nama host atau memperlakukan alamat IP yang diselesaikan oleh / etc / hosts sebagai "hostname" untuk diselesaikan secara rekursif?
Tidak ada
Jika nama host dapat diatasi /etc/hosts
, DNS
itu tidak berlaku (jika file sebelum DNS).
juga adalah alamat IP yang diselesaikan diperlakukan sebagai "hostname".
Sederhananya adalah: alamat yang diselesaikan.
browser
Peramban dapat menggunakan metode apa pun untuk menyelesaikan nama (setelah memeriksa tembolok dari nama yang diselesaikan). Hanya jika menggunakan metode yang disediakan sistem, urutan yang diberikan di atas berlaku. Browser, seperti program apa pun, dapat memilih untuk menghubungi server DNS secara langsung.
Jika urutan sistem sudah ada /etc/hosts
sebelumnya DNS
, itu berarti bahwa entri dalam file itu akan diutamakan untuk DNS
layanan resolusi.
Begitu:
- ... Apakah ini berarti bahwa / etc / hosts mengesampingkan DNS untuk menyelesaikan nama host?
Ya (jika browser menggunakan resolusi yang disediakan sistem).
Mengapa tidak /etc/hosts
berlaku lagi, sehingga saya tidak dapat terhubung ke situs web?
Hanya sampai cache internal browser dihapus (atau habis waktu) untuk nama tertentu adalah nama yang dicari di luar browser lagi.
Jika peramban memiliki nama yang diselesaikan dalam cache, peramban menggunakannya lagi.
Gunakan ini untuk menghapus cache .
Atau cukup tutup (tunggu sebentar) dan nyalakan kembali browser.
/etc/hosts
dan server nama yang ditentukan secara lokal. Sangat membingungkan untuk menyaksikan pertama kali. (Melihat Anda, browser berbasis Chromium!)