Формат / etc / hosts в Linux (відрізняється від Windows?)


22

Внизу цього питання - зразок /etc/hostsфайлу з Linux (CentOS) та машини Windows. У файлі Linux є два вкладки після IP-адреси (тобто localhost.localdomain localhost), а Windows має лише одну. Якщо я хочу редагувати файл хостів у Windows, щоб він мав ім’я машини (etest) замість localhost, я просто заміню слово localhost на ім'я машини, яке я хочу. Машина не повинна бути частиною домену.

У машині Linux два записи localhost.localdomainі, localhostсхоже, вказують на те, що мені потрібна машина, щоб бути частиною домену. Це правда?

Чи можу я просто відредагувати обидва записи etestтак, щоб вони читали:

127.0.0.1       etest etest

чи потрібно замінити один запис доменним іменем?

Крім того, будь ласка, повідомте мені, для чого призначений другий рядок /etc/hostsфайлу на машині Linux.

::1     localhost6.localdomain6 localhost6

hosts файл на машині 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 файл на машині 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

Я недавно розмістив подібне запитання, але воно не викликало особливого інтересу. unix.stackexchange.com/questions/11844/etc-hosts-for-debian . Цей, однак, краще написаний.
Faheem Mitha

Відповіді:


13

Ви завжди хочете, щоб адресу 127.0.0.1 було вирішено спочатку до localhost. Якщо є домен, ви також можете використовувати його, але переконайтесь, що localhost вказаний другим. Якщо ви хочете додати псевдоніми для вашої машини, яка буде шукати адресу зворотного зв'язку, ви можете продовжувати додавати їх як значення, розділені пробілом у цьому рядку. Вказати домен тут необов’язково, але не видаляйте "localhost" з параметрів.


5
Також ":: 1" - еквівалент ipv6 127.0.0.1 (що для ipv4).
XQYZ

Чи означає це, що мати такий рядок замість того, який я розмістив із запитанням, було б розумніше? Я включив псевдонім, розділений пробілом (etest моє ім’я хоста), залишаючи localhost.localdomain localhost неушкодженим. Якщо ні, будь ласка, опублікуйте приклад того, що ви пропонуєте як ідеальний запис, щоб включити моє ім’я хоста машини та мати записи localhost у файлі хостів.
Томас

1
127.0.0.1 localhost.localdomain localhost etest
Томас

1
@Thomas: Ваш приклад такий, як і повинен бути. Перейдіть з цим, і якщо вам потрібно додати більше псевдонімів для тестування (наприклад, з віртуальними хостами в апаші), ви можете продовжувати додавати їх до рядка.
Калеб

22

Формат у /etc/hostsLinux та Windows однаковий:

IP address        hostname [hostalias]...

де в дужках є звичайний спосіб вказувати, що щось є необов’язковим (насправді не вводити їх), а крапки ( ...) означають, що їх може бути більше одного.

Вам не потрібно було б робити хост частиною домену. Спробуйте і подивіться. Але це було б корисно використовувати, .localdomainякщо у вас немає справжнього доменного імені. Це може зробити дозвіл імені хоста трохи швидшим завдяки ndotsопції в /etc/resolv.conf.

Зауважте, що в цьому сенсі домен означає домен DNS (наприклад, google.comабо stackexchange.com), а не домен Windows або щось подібне.

Рядок, що починається з, ::1призначений для IPv6 . ::1це як 127.0.0.1за новою схемою адресації. Запустіть, ifconfig loі вам слід побачити, що у нього дві адреси. Зверніть увагу на запис, починаючи з 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
...

Докладніші відомості див. На головній сторінці господарів (5) .


(...) означає, що їх може бути більше ніж одне: чи додаткові межі розмежуються пробілами чи коми або обома?
Хлопець

1
пробіли. Я вважаю, що правильніше, це так hostname [hostalias[,hostalias]*].
Мікель

6

Я не можу говорити про те, як Windows може відрізнятися від Linux, але формат визначення локальної машини впливає на результати, які ви отримаєте з команди "ім'я хоста".

Формат, який я вважаю, працює найбільш добре, це такий:

127.0.0.1 etest.mydomain.com etest localhost

Найважливіше, що я знайшов - це мати FQDN спочатку та псевдоніми в будь-якому порядку після нього.

Якщо ви експериментуєте з перестановкою імен за IP-адресою, а потім за допомогою команд 'ім'я хоста -s' (коротке ім'я) та 'ім'я хоста -f' (повноцінне доменне ім’я або FQDN), ви побачите, що я маю на увазі. Це має виглядати приблизно так:

$ hostname -s
etest

$ hostname -f
etest.mydomain.com

"ім'я хоста" саме по собі повинно повертати те ім’я, яке ви ввели для хоста в /etc/conf.d/hostname або / etc / hostname (розташування файлу залежить від розповсюдження, але його слід знайти десь під / etc).

Якщо ви зміните порядок імен, ви можете виявити, що "ім'я хоста -f" дає відповіді на зразок "localhost" або "hostname: системна помилка". Єдине рішення, яке я знайшов, що працює правильно, - це поставити FQDN першим.

Я завжди встановлюю локальний адресний рядок IPv6 (:: 1) однаково, тобто:

::1 etest.mydomain.com etest localhost

Я знаю, що деякі дистрибутиви встановлюють ім'я IPv6 на щось на зразок ip6-localhost. Я ще не використовую IPv6, тому не можу коментувати, які найкращі налаштування для цієї лінії були б. Я просто можу сказати, що в мережі IPv4 працює обидва рядки з однаковими іменами.


0

Зберігати файл хостів рабів як

127.0.0.1 localhost

Зберігати головний файл хосту як

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

100% працює


Будь ласка, уточніть свою відповідь та використовуйте правильне форматування. Не потрібно вводити своє ім’я у відповідь.
Ламберт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.