it-swarm-ru.tech

Формат / etc / hosts в Linux (отличается от Windows?)

Ниже этого вопроса вставлен образец /etc/hosts файл с Linux (CentOS) и компьютера с Windows. Файл Linux содержит две записи с вкладками после IP-адреса (то есть localhost.localdomain localhost), а в Windows - только одну. Если я хочу отредактировать файл hosts в Windows, чтобы вместо localhost было указано имя машины (etest), я просто заменяю Word 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
24
Thomas

Вы всегда хотите, чтобы адрес 127.0.0.1 сначала разрешался на localhost. Если есть домен, вы также можете использовать его, но затем убедитесь, что localhost указан вторым. Если вы хотите добавить псевдонимы для вашей машины, которые будут искать адрес обратной связи, вы можете добавить их в качестве разделенных пробелами значений в этой строке. Указывать домен здесь необязательно, но не удаляйте "localhost" из опций.

14
Caleb

Формат /etc/hosts в Linux и 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
...

Смотрите man-страница hosts (5) для более подробной информации.

23
Mikel

Я не могу говорить о том, чем Windows может отличаться от Linux, но формат определения локального компьютера влияет на результаты, которые вы получите с помощью команды 'hostname'.

Формат, который я нахожу, работает наиболее последовательно хорошо это:

127.0.0.1 etest.mydomain.com etest localhost

Важная вещь, которую я обнаружил, - это сначала иметь полное доменное имя и псевдонимы в любом порядке после него.

Если вы экспериментируете с перестановкой имен после IP-адреса, а затем с помощью команд "hostname -s" (короткое имя) и "hostname -f" (полное доменное имя или полное доменное имя), вы поймете, что я имею в виду. Это должно выглядеть примерно так:

$ hostname -s
etest

$ hostname -f
etest.mydomain.com

"hostname" само по себе должно возвращать любое имя, которое вы ввели для Host в /etc/conf.d/hostname или/etc/hostname (расположение файла зависит от дистрибутива, но должно быть где-то в/etc).

Если вы измените порядок имен, вы можете обнаружить, что "hostname -f" дает вам ответы типа "localhost" или "hostname: system error". Единственное, что я нашел, что работает правильно, это поставить FQDN первым.

Я всегда задаю строку локального адреса IPv6 (:: 1) одинаково, т.е.

::1 etest.mydomain.com etest localhost

Я знаю, что некоторые дистрибутивы устанавливают имя IPv6 на что-то вроде ip6-localhost. Я пока не использую IPv6, поэтому не могу прокомментировать, какие будут лучшие настройки для этой линии. Я могу просто сказать, что в сети IPv4 работает обе строки с одинаковыми именами.

6
Angelo Babudro

Сохранить файл Slaves hosts как

127.0.0.1 localhost

Сохранить основной файл хоста как

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

100% работает

0
Puneet