Управление локальным разрешением имен хостов в Linux

CompTIABeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы освоите важнейший навык управления локальным разрешением имен хостов в Linux путем прямого редактирования файла /etc/hosts. Этот файл позволяет вручную сопоставлять имена хостов с IP-адресами на вашем локальном компьютере, что является критически важным методом для веб-разработки, сетевого тестирования и системного администрирования. Контролируя эти сопоставления, вы можете переопределять публичные DNS-серверы и направлять трафик для определенных доменов на локальный или пользовательский IP-адрес.

Вам будет предложен полный практический рабочий процесс. Сначала вы проверите содержимое файла /etc/hosts по умолчанию с помощью команды cat, чтобы понять его структуру. Затем вы используете редактор nano для добавления пользовательской записи хоста. Чтобы проверить вашу конфигурацию, вы протестируете новое имя хоста с помощью команды ping. Наконец, вы удалите добавленную запись, восстановив файл в исходное состояние и завершив практическое упражнение.

Просмотр файла /etc/hosts по умолчанию с помощью cat

На этом шаге вы научитесь просматривать содержимое файла /etc/hosts. Этот файл представляет собой простой текстовый файл, который ваша операционная система использует для сопоставления имен хостов с IP-адресами. Прежде чем ваш компьютер обратится к DNS-серверу в Интернете для разрешения доменного имени, он сначала проверяет этот локальный файл. Понимание его структуры является фундаментальным сетевым навыком в Linux.

Мы будем использовать команду cat, которая является стандартной утилитой для чтения файлов и вывода их содержимого в терминал.

Откройте терминал и выполните следующую команду, чтобы отобразить содержимое файла /etc/hosts:

cat /etc/hosts

Пример вывода:

Вы увидите вывод, похожий на приведенный ниже. Точное содержимое может незначительно отличаться, но формат будет тем же.

127.0.0.1       localhost

## The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost   ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1       Aliyun

192.168.2.67    iZbp1gakoh36s0s067d3ebZ iZbp1gakoh36s0s067d3ebZ

172.20.239.123  ubunut-base-image       ubunut-base-image

172.28.138.90   iZj6c8bsoq3dpsob2zhgheZ iZj6c8bsoq3dpsob2zhgheZ

Разберем этот вывод:

  • 127.0.0.1 localhost: Это самая распространенная запись. Она сопоставляет IP-адрес 127.0.0.1 (также известный как адрес обратной петли) с именем хоста localhost. Это критически важно для корректной работы многих локальных служб.
  • Строки, начинающиеся с #: Это комментарии. Система их игнорирует, но они полезны для предоставления пояснений.
  • Записи IPv6: Строки типа ::1 ip6-localhost являются эквивалентами обратной петли и других стандартных сетевых конфигураций для IPv6.

Теперь, когда вы увидели стандартную структуру файла hosts, вы готовы узнать, как его изменить на следующем шаге.

Добавление пользовательской записи хоста с помощью nano

На этом шаге вы вручную добавите новую запись в файл /etc/hosts. Это практический навык для разработчиков, которым нужно направить домен на локальный сервер, или для системных администраторов, настраивающих внутренние сети. Поскольку /etc/hosts является системным защищенным файлом, вам необходимо использовать sudo для получения необходимых разрешений на его изменение.

Мы будем использовать nano — простой и удобный текстовый редактор командной строки, который предустановлен в среде LabEx.

Выполните следующую команду, чтобы открыть /etc/hosts в nano:

sudo nano /etc/hosts

Терминал теперь отобразит содержимое файла внутри редактора nano. Используйте клавиши со стрелками, чтобы переместить курсор в конец файла. Добавьте следующую новую строку:

192.168.1.100   myfictionalserver.local

Эта строка сообщает вашей системе, что всякий раз, когда она встретит имя хоста myfictionalserver.local, она должна разрешить его в IP-адрес 192.168.1.100.

Теперь вам нужно сохранить изменения и выйти из редактора. Выполните следующие нажатия клавиш:

  1. Нажмите Ctrl+O (команда "Write Out" — записать) для сохранения файла.
  2. nano спросит "File Name to Write" (Имя файла для записи). По умолчанию это /etc/hosts, что правильно, поэтому просто нажмите Enter для подтверждения.
  3. Нажмите Ctrl+X, чтобы выйти из nano и вернуться к приглашению терминала.

Теперь вы успешно изменили файл hosts. На следующем шаге мы протестируем эту новую запись, чтобы убедиться, что она работает должным образом.

Тестирование пользовательского имени хоста с помощью ping

На этом шаге вы проверите, правильно ли работает пользовательская запись, которую вы добавили в /etc/hosts. Лучший способ сделать это — использовать команду ping. ping — это сетевая утилита, используемая для проверки доступности хоста в IP-сети. Она также измеряет время, необходимое для отправки сообщений от исходного хоста к целевому компьютеру и обратно.

Когда вы выполняете ping для имени хоста, система сначала пытается разрешить это имя в IP-адрес. Поскольку мы добавили запись для myfictionalserver.local в /etc/hosts, ваша система должна найти ее там и использовать IP-адрес 192.168.1.100.

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

ping -c 4 myfictionalserver.local

Пример вывода:

Вы должны увидеть вывод, подтверждающий разрешение имени, даже если хост недоступен.

PING myfictionalserver.local (192.168.1.100) 56(84) bytes of data.
^C
--- myfictionalserver.local ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3053ms

Самая важная часть — это самая первая строка: PING myfictionalserver.local (192.168.1.100). Это подтверждает, что ваша система успешно разрешила имя хоста myfictionalserver.local в IP-адрес 192.168.1.100, используя запись из вашего файла /etc/hosts.

Команда будет продолжать выполняться до тех пор, пока не будет остановлена (например, нажатием Ctrl+C). Поскольку по адресу 192.168.1.100 в сети нет реального устройства, пакеты не будут получены. Однако часть процесса разрешения имен была успешной, что мы и хотели продемонстрировать.

Теперь вы подтвердили, что ваша пользовательская запись в файле hosts активна. На заключительном шаге вы узнаете, как выполнить очистку, удалив эту запись.

Удаление пользовательской записи хоста для восстановления исходного состояния

На этом заключительном шаге вы отмените изменения, внесенные в файл /etc/hosts. Отмена временных изменений является крайне важной практикой, особенно в общих или производственных средах, чтобы избежать неожиданного поведения в дальнейшем. Восстановление исходного состояния файла гарантирует, что разрешение имен вашей системой будет работать должным образом для всех остальных сетевых операций.

Как и прежде, вам потребуются привилегии sudo для редактирования файла с помощью nano.

Снова откройте файл /etc/hosts в редакторе:

sudo nano /etc/hosts

Используйте клавиши со стрелками, чтобы перейти к строке, которую вы добавили на Шаге 2:

192.168.1.100   myfictionalserver.local

Поместив курсор на эту строку, вы можете ее удалить. Быстрый способ удалить всю строку в nano — нажать Ctrl+K.

После удаления строки сохраните файл и выйдите из редактора:

  1. Нажмите Ctrl+O, а затем Enter для сохранения изменений.
  2. Нажмите Ctrl+X, чтобы выйти из nano.

Чтобы убедиться, что запись удалена и система больше не может разрешать имя хоста локально, попробуйте выполнить ping еще раз:

ping myfictionalserver.local

Пример вывода:

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

ping: myfictionalserver.local: Name or service not known

Это подтверждает, что вы успешно удалили пользовательскую запись и восстановили файл hosts до исходного состояния.

Резюме

В этой лабораторной работе вы научились управлять локальным разрешением имен хостов в Linux, работая с файлом /etc/hosts. Вы начали с использования команды cat для проверки содержимого и структуры этого файла по умолчанию, понимая его роль в сопоставлении IP-адресов с именами хостов до выполнения DNS-запроса. Вы увидели, как форматируются стандартные записи, такие как 127.0.0.1 localhost, и как используются комментарии для документирования.

После проверки вы приобрели практические навыки, используя текстовый редактор nano для добавления пользовательской записи хоста, что является распространенной задачей для локальной разработки или тестирования сети. Чтобы убедиться в эффективности ваших изменений, вы использовали команду ping для тестирования нового пользовательского имени хоста, проверяя, что система разрешила его в указанный вами IP-адрес. Наконец, вы завершили лабораторную работу, удалив пользовательскую запись для восстановления исходного состояния системы, продемонстрировав полный цикл управления локальной записью хоста.