Format / etc / hosts di Linux (berbeda dari Windows?)

22

Disisipkan di bawah pertanyaan ini adalah contoh /etc/hostsfile dari Linux (CentOS) dan mesin Windows. File Linux memiliki dua entri tab setelah alamat IP (yaitu localhost.localdomain localhost) dan Windows hanya memiliki satu. Jika saya ingin mengedit file host di Windows untuk memiliki nama mesin (etest) bukan localhost, saya cukup mengganti kata localhost dengan nama mesin yang saya inginkan. Mesin tidak perlu menjadi bagian dari domain.

Di mesin Linux, dua entri localhost.localdomaindan localhostsepertinya menunjukkan bahwa saya akan membutuhkan mesin untuk menjadi bagian dari domain. Apakah ini benar?

Bisakah saya mengedit kedua entri etestsehingga akan membaca:

127.0.0.1       etest etest

atau apakah saya harus mengganti satu entri dengan nama domain?

Selain itu, tolong beri tahu saya untuk apa baris kedua /etc/hostsfile di mesin Linux.

::1     localhost6.localdomain6 localhost6

hosts file di mesin Linux:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain localhost
::1     localhost6.localdomain6 localhost6

hosts file di mesin windows:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

127.0.0.1       localhost
Thomas
sumber
Saya memposting pertanyaan serupa baru-baru ini, tetapi tidak menarik banyak minat. unix.stackexchange.com/questions/11844/etc-hosts-for-debian . Yang ini lebih baik ditulis.
Faheem Mitha

Jawaban:

13

Anda selalu ingin alamat 127.0.0.1 diselesaikan terlebih dahulu ke localhost. Jika ada domain Anda dapat menggunakannya juga, tetapi kemudian pastikan localhost terdaftar kedua. Jika Anda ingin menambahkan alias untuk mesin Anda yang akan mencari ke alamat loopback Anda dapat terus menambahkannya sebagai nilai yang dipisahkan ruang pada baris itu. Menentukan domain di sini adalah opsional, tetapi jangan hapus "localhost" dari opsi.

Caleb
sumber
5
Juga ":: 1" adalah setara ipv6 dari 127.0.0.1 (yang untuk ipv4).
XQYZ
Apakah ini berarti memiliki garis seperti ini alih-alih yang saya posting dengan pertanyaan saya akan lebih bijaksana? Saya telah memasukkan alias yang dipisahkan oleh spasi (etest my hostname) sehingga localhost.localdomain localhost tetap utuh. Jika tidak, silakan kirim contoh apa yang Anda sarankan sebagai entri yang ideal untuk memasukkan nama host mesin saya dan memiliki entri localhost dalam file host.
Thomas
1
127.0.0.1 localhost.localdomain localhost etest
Thomas
1
@ Thomas: Teladan Anda seperti yang seharusnya. Ikuti itu, dan jika Anda perlu menambahkan alias untuk pengujian (misalnya dengan nama host virtual di apache), Anda dapat terus menambahkannya ke baris.
Caleb
22

Format /etc/hostspada Linux dan Windows adalah sama:

IP address        hostname [hostalias]...

di mana tanda kurung adalah cara biasa untuk menunjukkan bahwa sesuatu itu opsional (tidak benar-benar mengetiknya) dan titik-titik ( ...) berarti mungkin ada lebih dari satu.

Anda tidak harus menjadikan bagian host dari domain. Cobalah dan lihatlah. Tetapi itu akan menjadi ide yang baik untuk digunakan .localdomainjika Anda tidak memiliki nama domain asli. Ini dapat membuat resolusi nama host sedikit lebih cepat karena ndotsopsi di /etc/resolv.conf.

Perhatikan bahwa dalam pengertian ini, domain berarti domain DNS (seperti google.comatau stackexchange.com), bukan domain Windows atau semacamnya.

Baris yang dimulai dengan ::1adalah untuk IPv6 . ::1seperti di 127.0.0.1bawah skema pengalamatan baru. Jalankan ifconfig lodan Anda akan melihatnya memiliki dua alamat. Perhatikan entri dimulai dengan inet6.

$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
...

Lihat halaman manual host (5) untuk lebih jelasnya.

Mikel
sumber
(...) berarti ada lebih dari satu: Apakah ekstra dibatasi dengan spasi atau koma atau keduanya?
Guy
1
spasi. Saya kira lebih benar, itu hostname [hostalias[,hostalias]*].
Mikel
6

Saya tidak dapat berbicara tentang bagaimana Windows mungkin berbeda dari Linux, tetapi format definisi mesin lokal memengaruhi hasil yang akan Anda peroleh dari perintah 'hostname'.

Format yang saya temukan bekerja paling konsisten dengan baik adalah ini:

127.0.0.1 etest.mydomain.com etest localhost

Yang penting saya temukan adalah memiliki FQDN terlebih dahulu dan alias, dalam urutan apa pun, setelah itu.

Jika Anda bereksperimen dengan menata ulang nama setelah alamat IP dan kemudian menggunakan perintah 'hostname -s' (nama pendek) dan 'hostname -f' (nama domain yang memenuhi syarat atau FQDN), Anda akan melihat apa yang saya maksud. Seharusnya terlihat seperti ini:

$ hostname -s
etest

$ hostname -f
etest.mydomain.com

'hostname' dengan sendirinya harus mengembalikan nama apa pun yang Anda masukkan untuk host di /etc/conf.d/hostname atau / etc / hostname (lokasi file bervariasi berdasarkan distribusi, tetapi harus ditemukan di bawah / etc di suatu tempat).

Jika Anda mengubah urutan nama, Anda mungkin menemukan bahwa "hostname -f" memberi Anda respons seperti "localhost" atau "hostname: system error". Satu-satunya pengaturan yang saya temukan yang berfungsi dengan benar adalah menempatkan FQDN terlebih dahulu.

Saya selalu mengatur jalur alamat lokal IPv6 (:: 1) dengan cara yang sama, yaitu:

::1 etest.mydomain.com etest localhost

Saya tahu beberapa distribusi mengatur nama IPv6 ke sesuatu seperti ip6-localhost. Saya belum benar-benar menggunakan IPv6, jadi saya tidak bisa mengomentari pengaturan terbaik untuk baris ini. Saya hanya bisa mengatakan bahwa dalam jaringan IPv4 berfungsi untuk memiliki kedua jalur dengan nama yang sama.

Angelo Babudro
sumber
0

Simpan file host Slave sebagai

127.0.0.1 localhost

Simpan file master host sebagai

<private ip> master
<private ip> slave1
<private ip> slave2

100% berfungsi

Puneet
sumber
Harap jelaskan jawaban Anda dan gunakan format yang tepat. Anda tidak perlu memasukkan nama Anda dalam jawaban Anda.
Lambert