Mengapa nama host saya muncul dengan alamat 127.0.1.1 daripada 127.0.0.1 di / etc / hosts?

205

Ini mungkin sedikit pertanyaan noobish, tapi saya melihat / etc / hosts di instal Xubuntu baru saya dan melihat ini:

127.0.0.1 localhost
127.0.1.1 myhostname

Pada sebagian besar 'nix yang saya gunakan, baris kedua dihilangkan, dan jika saya ingin menambahkan nama host saya ke file host, saya hanya akan melakukan ini:

127.0.0.1 localhost myhostname

Apakah ada perbedaan antara kedua file ini dalam arti praktis?

Tom
sumber
Saya heran bisakah saya menghapus baris kedua atau akankah beberapa proses di debian / ubuntu membuat ulang baris dan menambahkannya kembali?
simgineer

Jawaban:

159

Tidak ada banyak perbedaan di antara keduanya; 127/8(misalnya: 127.0.0.0=> 127.255.255.255) semuanya terikat ke antarmuka loopback.

Alasan mengapa didokumentasikan dalam manual Debian di Ch. 5 Pengaturan Jaringan - 5.1.1. Resolusi nama host .

Pada akhirnya, ini adalah solusi bug; laporan aslinya adalah 316099 .

Daniel Pittman
sumber
5
Alasan sebenarnya: "Mengaitkan nama host sistem dengan yang terakhir memiliki efek yang tidak diinginkan dari membuat 'localhost.localdomain' nama host kanonik yang terkait dengan nama host sistem. Yaitu, 'hostname --fqdn' dikembalikan 'localhost.localdomain'."
cmroanirgo
Saya benar-benar melacaknya kembali ke dokumen ini lists.debian.org/debian-boot/2005/06/msg00938.html dan tampaknya karena Thomas merasa perlu menggunakan 1,1 alih-alih 0,1, yang setara, perbaiki saya jika saya salah, tetapi itu berarti jawaban ini benar-benar hanya remah roti?
Brian Thomas
@BrianThomas pesan itu menunjukkan mengapa mereka tidak setara. Mereka ingin localhostdan myhostnamemenjadi berbeda - jika tidak, satu akan menjadi alias yang lain. Catatan ini tidak berfungsi di IPv6 di mana hanya ada satu alamat loopback. Ini dapat dihindari dengan menggunakan modul NSS seperti yang disebutkan dalam utas, karena dapat lebih fleksibel daripada / etc / hosts dan mengembalikan nama kanonik yang berbeda meskipun mereka memiliki alamat IP yang sama. Saya tahu ini karena sistem saya dikonfigurasi menggunakan modul NSS .
sourcejedi
46

Untuk meringkas informasi yang ditautkan ke:

  • Sangat berguna untuk memiliki entri dalam /etc/hostsmenerjemahkan nama domain yang sepenuhnya memenuhi syarat mesin ke alamat IP permanennya.
  • debian-installer, dan lebih khusus lagi, netcfgkomponennya, saat ini (setidaknya hingga Maret 2013) membuat entri ini.
  • Jika mesin tidak diketahui memiliki alamat IP permanen, debian-installer masih menginginkannya memiliki entri seperti itu.
  • Alamat tersebut 127.0.1.1menggunakan antarmuka loopback , dijawab oleh mesin Anda sendiri, sama seperti 127.0.0.1tetapi merupakan entri yang berbeda di /etc/hostsmana dapat dianggap terpisah dari 127.0.0.1jika / ketika diperlukan.

Thomas Hood menjelaskan menambahkan entri ini sebagai berikut:

[Ini] akan memastikan bahwa jika hostname UNIX yang diselesaikan maka akan selalu hostname kanonik sendiri

tapi:

Dalam jangka panjang nama host UNIX tidak boleh diletakkan di / etc / hosts sama sekali.

einpoklum
sumber
.. dan sebagainya... ? haruskah saya menggunakan 127.0.0.1 untuk fdqn saya? atau 127.0.1.1? atau ip lan statis?
realtebo
1
@ realtebo: 1. Berguna, dan karenanya ditambahkan oleh penginstal. 2. Tidak ada "keharusan" di sini; dan itu hanya relevan ketika FQDN Anda tidak memiliki alamat permanen.
einpoklum
9

Saya ingin tahu sendiri, dan saya tidak suka jawaban yang lain karena mereka sepertinya tidak menjawab apa yang saya cari minimal.

Jawabannya: Melihat ke belakang pada dokumen ini, hampir tampak seolah-olah Thomas menyatakan sedang memberikan ip khusus pada loopback yang memungkinkannya menjadi kanonik.

Keduanya menunjuk ke loopback Anda. Menggunakan 127.0.1.1 berikut ini adalah IP aktual, pada loopback, sedangkan 127.0.0.1 adalah perangkat itu sendiri, atau ip lain pada loopback. Keduanya berakhir pada subnet yang sama, mewakili loopback, tetapi dipisahkan oleh ip. Mereka setara dns bijak, tetapi dipisahkan karena memiliki ip khusus.

Intinya, Anda dapat memiliki semua entri Anda pada satu baris seperti ini

127.0.0.1 localhost localhost.domain www.myfakednsname.com myakednsname.com 

Jika nama host Anda adalah lokal, artinya tidak memiliki entri DNS internet global yang dipetakan ke ip internet yang sebenarnya, maka dalam hal ini Thomas mengatakan Anda PERLU untuk memiliki baris entri ke-2, seperti ini untuk mempersembahkannya di sana (ke kanonik).

127.0.0.1 localhost localhost.localdomain
127.0.1.1 myfakednsname
Brian Thomas
sumber
dalam semua keadilan, setelah saya akhirnya menyusun ini dengan cara yang masuk akal bagi saya, saya melihat itu cukup banyak apa yang coba dijelaskan oleh einpoklum sepertinya di belakang.
Brian Thomas
OK suara negatif, tidak yakin mengapa. Saya masih percaya INI adalah jawaban TERBAIK, atau saya tidak akan mengatakannya, setelah mendarat di sini. jawaban asli membantu, tetapi tidak menangkap semua detail. Saya akan pergi dengan yang ini.
Brian Thomas