Команда hostname в Linux

Linux 命令大全Полный справочник команд Linux


Что такое hostname

hostname — это уникальное имя, которое идентифицирует компьютер в сети. Так же как у каждого человека есть своё имя, каждому компьютеру также нужно уникальное имя, чтобы его можно было идентифицировать в сети.

В системах Linux hostname используется для:

  • Идентификации локального компьютера
  • Идентификации устройств во время сетевого взаимодействия
  • Влияния на работу некоторых сетевых служб
  • Отображения в приглашении терминала

Имена хостов обычно делятся на три типа:

  1. Статическое имя хоста: Хранится в файле конфигурации, остаётся неизменным после перезагрузки системы
  2. Временное имя хоста: Временно устанавливается во время выполнения, становится недействительным после перезагрузки
  3. Описательное имя хоста: Описательное имя, которое может содержать специальные символы (например, "My Laptop")

Базовый синтаксис команды hostname

Базовый формат использования команды hostname следующий:

hostname [选项] [新主机名]

Если выполнить напрямую без параметров,hostnameкоманда отобразит имя хоста текущей системы:

Примеры

$ hostname
ubuntu-server

Описание общих опций и параметров

Команда hostname поддерживает несколько параметров для просмотра и установки различных типов имён хоста:

Опция Описание
-a, --alias Отобразить псевдоним хоста (если он был установлен)
-A, --all-fqdns Отобразить FQDN (полное доменное имя) всех сетевых интерфейсов
-b, --boot Если имя хоста не задано, использовать имя хоста по умолчанию
-d, --domain Отобразить доменное имя DNS
-f, --fqdn, --long Отобразить FQDN (полное доменное имя)
-F, --file Прочитать имя хоста из указанного файла
-i, --ip-address Отобразить IP-адрес хоста
-I, --all-ip-addresses Отобразить IP-адреса всех сетевых интерфейсов
-s, --short Отобразить короткое имя хоста (без доменной части)
-y, --yp, --nis Отобразить доменное имя NIS

Три способа задать имя хоста

1. Временно задать имя хоста (перестаёт действовать после перезагрузки)

Пример

sudo hostname new-hostname

Пример:

Пример

$ sudo hostname test-server
$ hostname
test-server

Примечание: Имя хоста, заданное этим методом, вернётся к исходному имени хоста после перезагрузки системы.

2. Постоянная установка имени хоста (изменение файла конфигурации)

В большинстве современных дистрибутивов Linux (использующих systemd) можно постоянно изменить имя хоста следующим образом:

Пример

sudo hostnamectl set-hostname new-hostname

Пример:

Пример

$ sudo hostnamectl set-hostname production-server

Эта команда изменит оба:

  • /etc/hostnameфайл
  • статическое имя хоста системы

3. Ручное редактирование файла конфигурации

Вы также можете напрямую отредактировать файл конфигурации имени хоста:

  1. Отредактируйте/etc/hostnameфайл:

    sudo nano /etc/hostname

    Удалите исходное содержимое и впишите только новое имя хоста

  2. Обновите/etc/hostsфайл, убедившись, что в нём есть строка, сопоставляющая имя хоста с 127.0.0.1:

    127.0.0.1   localhost new-hostname
    
  3. Примените изменения (перезагрузка не требуется):

    sudo systemctl restart systemd-hostnamed

Просмотр различных типов имён хостов

Просмотр статического имени хоста

Пример

hostnamectl --static
# или
cat /etc/hostname

Просмотр временного имени хоста

Пример

hostname
# или
hostnamectl --transient

Просмотр красивого имени хоста

Пример

hostnamectl --pretty

Просмотр FQDN (полного доменного имени)

Пример

hostname -f
# или
hostnamectl --fqdn

Примеры практического применения

Пример 1: Просмотр полной информации о хосте текущей системы

Пример

$ hostnamectl
   Статическое имя хоста: ubuntu-server
         Имя значка: computer-vm
           Шасси: vm
        Идентификатор машины: 1a2b3c4d5e6f7g8h9i0j
           Идентификатор загрузки: 1k2l3m4n5o6p7q8r9s0t
    Виртуализация: kvm
  Операционная система: Ubuntu 20.04 LTS
            Ядро: Linux 5.4.0-42-generic
      Архитектура: x86-64

Пример 2: Установка как статического, так и красивого имени хоста

Пример

sudo hostnamectl set-hostname "server01" --pretty "Primary Web Server"

Пример 3: Получение информации об имени хоста по сети

Пример

$ hostname -i
192.168.1.100

$ hostname -I
192.168.1.100 10.0.0.100

Распространённые проблемы и решения

Проблема 1: Имя хоста не применяется после установки

Решение:

  1. Не забудьте также обновить/etc/hostsфайл
  2. Проверьте, не переопределяют ли другие службы (например, NetworkManager) настройки имени хоста
  3. Попробуйте перезагрузить систему или выполнить:
    sudo systemctl restart systemd-hostnamed

Проблема 2: Имя хоста содержит недопустимые символы

Решение:

  • Имя хоста может содержать только:
    • Буквы a-z
    • Цифры 0-9
    • Дефисы (-)
  • Не может начинаться или заканчиваться дефисом
  • Длина обычно ограничена 63 символами

Проблема 3: Сетевые службы не распознают новое имя хоста

Решение:

  1. Перезапустите связанные сетевые службы:
    sudo systemctl restart networking
  2. Очистите кэш DNS (если применимо)
  3. Убедитесь, что DNS-сервер был обновлён (если это сервер в сети)

Рекомендации по лучшим практикам

  1. Соглашения об именовании:

    • Используйте осмысленные имена, например "web-prod-01" или "db-backup-02"
    • Избегайте использования специальных символов и знаков подчёркивания
    • Поддерживайте согласованность, особенно в серверных кластерах
  2. Среды с несколькими именами хостов:

    • Используйте статическое имя хоста в качестве основного идентификатора
    • Используйте pretty hostname, чтобы предоставить понятное человеку описание
    • Используйте/etc/hostsдобавлять псевдонимы для важных серверов
  3. Автоматизированное управление:

    • В облачных средах можно использовать cloud-init для автоматической установки имён хостов
    • Управляйте именами хостов массово с помощью инструментов управления конфигурацией (таких как Ansible)
  4. Документация:

    • Ведите документацию, сопоставляющую имена хостов с ролями серверов
    • Используйте имена хостов как идентификаторы в системах мониторинга

Итог

hostname — базовое, но важное понятие в администрировании Linux-систем. Из этой статьи вы должны были узнать:

  1. Как просматривать и задавать различные типы имён хостов
  2. Правильный процесс постоянного изменения имени хоста
  3. Решения распространённых проблем, связанных с именами хостов
  4. Лучшие практики управления именами хостов

Помните: прежде чем изменять имя хоста в производственной среде, обязательно оцените возможные последствия. Особенно в кластерных средах изменение имени хоста может повлиять на обнаружение сервисов и системы мониторинга.

Linux 命令大全Полный справочник команд Linux

Другие расширения