Apa tujuan dari / etc / hosts?


21

Seperti yang saya pahami, hostsfile tersebut adalah salah satu dari beberapa fasilitas sistem yang membantu dalam menangani node jaringan dalam jaringan komputer. Tapi apa yang seharusnya ada di dalamnya? Ketika saya menginstal Ubuntu secara default

127.0.0.1 localhost 

akan disana. Mengapa?

  • Bagaimana cara /etc/hostskerjanya dalam kasus sistem JVM seperti Cassandra?
  • Kapan alternatif DNS, saya kira tidak di satu komputer?


/etc/hostsKonten saya 127.0.0.2 mycouchdb bookmarkdb myothercouchappdan 127.0.0.3 myapachi websitesaya menggunakannya untuk membantu pengembangan saya berjalan di mesin lokal saya. Saya memiliki 3 layanan mendengarkan pada port 80. Saya tidak ingin menempatkan mereka di DNS, karena mereka hanya lokal.
ctrl-alt-delor

Sudahkah Anda mencoba man 5 hosts?
Reinstate Monica - M. Schröder

Apakah Linux tidak memiliki halaman manual untuk ini di mana dijelaskan secara rinci? Ini adalah pertanyaan paling mendasar.
Rob

Jawaban:


45

File /etc/hostsdimulai di masa lalu DARPA sebagai file resolusi untuk semua host yang terhubung ke internet (sebelum DNS ada). Ini memiliki prioritas maksimum, artinya file ini lebih disukai daripada sistem nama lainnya. 1

Namun, sebagai satu file, itu tidak skala dengan baik: ukuran file menjadi terlalu besar segera. Itulah sebabnya sistem DNS dikembangkan, sistem nama terdistribusi hierarkis. Ini memungkinkan setiap host untuk menemukan alamat numerik dari beberapa host lain secara efisien.

The sangat konsep lama dari /etc/hostsfile yang sangat sederhana, hanya alamat dan nama host:

127.0.0.1      localhost

untuk setiap baris. Itu adalah daftar sederhana dari pasangan host-alamat.2

Penggunaan utamanya saat ini adalah untuk memotong resolusi DNS. Kecocokan yang ditemukan dalam /etc/hostsfile akan digunakan sebelum entri DNS apa pun. Bahkan, jika nama yang dicari (seperti localhost) ditemukan dalam file, tidak ada resolusi DNS yang akan dilakukan sama sekali.


1 Nah, urutan resolusi nama sebenarnya didefinisikan /etc/nsswitch.conf, yang biasanya memiliki entri ini:

hosts:          files dns

yang berarti "coba file (/etc/hosts ); dan jika gagal, coba DNS."

Tetapi perintah itu dapat diubah atau diperluas.


2 (di masa sekarang) File host berisi baris teks yang terdiri dari alamat IP di bidang teks pertama diikuti oleh satu atau lebih nama host. Setiap bidang dipisahkan oleh ruang putih - tab sering disukai karena alasan historis, tetapi ruang juga digunakan. Baris komentar dapat dimasukkan; mereka ditunjukkan oleh octothorpe (#) di posisi pertama dari baris tersebut. Baris yang sepenuhnya kosong dalam file diabaikan. Misalnya, file host biasa mungkin berisi yang berikut ini:

127.0.0.1   localhost loopback
::1         localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27   mycomputer.lan

Contoh ini berisi entri untuk alamat loopback sistem dan nama host mereka, baris pertama adalah konten default khas dari file host. Baris kedua memiliki beberapa nama tambahan (mungkin hanya valid dalam sistem lokal). Contoh tersebut menggambarkan bahwa alamat IP mungkin memiliki beberapa nama host (localhost dan loopback), dan bahwa nama host dapat dipetakan ke alamat IP IPv4 dan IPv6, seperti yang ditunjukkan pada baris pertama dan kedua. Satu nama (mycomputer.lan ) dapat menyelesaikan ke beberapa alamat ( 192.168.0.8 10.0.0.27). Namun, dalam kasus itu, mana yang digunakan tergantung pada rute (dan prioritasnya) yang ditetapkan untuk komputer.

Beberapa OS yang lebih tua tidak memiliki cara untuk melaporkan daftar alamat untuk nama yang diberikan.


5

Menggunakan file / etc / hosts untuk memberikan nama yang dapat dibaca manusia ke sistem lokal dalam lingkungan desktop sangat masuk akal. File host sangat bagus untuk digunakan di jaringan rumah atau bahkan di lingkungan bisnis kecil. Ini tidak boleh sisi publik seperti pengalamatan internet - maka Anda perlu DNS. Jika jaringan lokal cukup besar, atau cukup memotong sub-jaringan yang berbeda, atau alasan berguna lainnya, DNS lebih disukai.

File host lokal & DNS dikelola dengan prioritas berbeda sehingga tidak pernah ada konflik.


4
Saya tidak akan setuju tentang konflik, saya memiliki sejumlah masalah yang sulit di-debug karena host-provision-by-group-A meninggalkan /etc/hostsentri basi yang di masa depan menyebabkan operasi-by-group-B (grup saya) gagal , dan kami akhirnya menetapkan sesuatu untuk membersihkan isi/etc/hosts
thrig

konflik di dalam file bisa ada tentunya tetapi kemudian itu adalah kesalahan pemilik mesin :)
francois P

2
Saya juga tidak setuju dengan tidak pernah ada konflik. Saya harus men-debug kesalahan yang sangat aneh karena entri host basi yang bertentangan dengan perubahan DNS.
Rui F Ribeiro

@ thrig: Mungkin masalahnya adalah grup Anda terlalu besar untuk menggunakan / etc / hosts secara efektif. Berfungsi dengan sangat baik untuk 5 mesin (saat ini) di jaringan rumah saya.
jamesqf

Nah sistem tidak berpikir ada konflik, Ini punya instruksi yang jelas mengenai prioritas hal-hal: p
StarWeaver

3

di linux, berani saya katakan harus selalu ada setidaknya 127.0.0.1 localhostdi dalam file /etc/hosts serta alamat IPv6 yang sesuai untuk localhost .

Ini hanya resolusi nama host ke alamat IPv4 numerik atau IPv6. Ketika Anda mencoba jaringan ke (a) unix.stackexchange.com di suatu tempat di bumi yang mungkin tidak dekat dengan Anda, atau (b) myotherpc di jaringan area lokal di rumah Anda, itu adalah salah satu /etc/hostsatau beberapa server nama domain (DNS) yang sedang melakukan resolusi host sehingga ketika Anda mengetik unix.stackexchage.com yang sebagai manusia adalah apa yang Anda pedulikan, Anda tidak harus mengingat 185.53.179.7 untuk itu yang merupakan hal yang benar-benar perlu diketahui oleh komputer.

Seperti yang ditunjukkan, di linux /etc/nsswitchbiasanya ada yang menentukan urutan resolusi nama host, yang berarti memeriksa DNS terlebih dahulu sebelum memeriksa NIS, lalu terakhir memeriksa file /etc/hostssebaliknya tidak host tidak ditemukan

Bagaimana Anda mengelola pengecekan pesanan dan apa / di mana / siapa yang mengelola layanan DNS atau NIS terserah Anda, atau Anda dapat mengesampingkan semuanya dengan memodifikasi / etc / nsswitch untuk hanya memeriksa/etc/hosts dan tidak pernah mengecek dengan DNS atau NIS atau ...

Untuk jaringan rumah sederhana dari beberapa komputer, katakan 2 ke N, seorang admin cukup mengedit /etc/hosts pada setiap komputer untuk menjadi benar, akan lebih mudah, lebih cepat, lebih murah daripada mengatur Domain Name Server atau layanan lain untuk memiliki satu lokasi master atau wewenang untuk melakukan resolusi nama host ke alamat IP.

untuk pencarian web linux sejarah & alasan di balik localhost . Banyak hal di linux bergantung pada nama localhost yang menyelesaikan ke 127.0.0.1 dan jika itu tidak terjadi akan menyebabkan masalah, dan definisi localhost ini akan / harus terjadi dalam file sistem lokal seperti / etc / hosts.

/etc/hostssecara default biasanya kata terakhir dan hal terakhir untuk sistem operasi linux untuk kembali pada resolusi nama host. pada Windows XP dan 7 file yang sesuai adalah C:\Windows\System32\drivers\etc\lmhosts saya tidak tahu tentang windows 8 atau 10.


Penggunaan khas file host, khususnya di Windows, adalah untuk mengalihkan upaya program untuk 'menelepon ke rumah' ke perangkat nol. Jauh dari saya untuk menyarankan ini mungkin untuk menggagalkan pemeriksaan legalitas.
Laurence Payne

Saya masih belum menemukan editor di iPhone saya yang memungkinkan saya mengedit / etc / hosts ... jadi saya menjalankan DNS di lan saya
ivanivan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.