Команда hostname в Linux
Полный справочник команд Linux
Что такое hostname
hostname — это уникальное имя, которое идентифицирует компьютер в сети. Так же как у каждого человека есть своё имя, каждому компьютеру также нужно уникальное имя, чтобы его можно было идентифицировать в сети.
В системах Linux hostname используется для:
- Идентификации локального компьютера
- Идентификации устройств во время сетевого взаимодействия
- Влияния на работу некоторых сетевых служб
- Отображения в приглашении терминала
Имена хостов обычно делятся на три типа:
- Статическое имя хоста: Хранится в файле конфигурации, остаётся неизменным после перезагрузки системы
- Временное имя хоста: Временно устанавливается во время выполнения, становится недействительным после перезагрузки
- Описательное имя хоста: Описательное имя, которое может содержать специальные символы (например, "My Laptop")
Базовый синтаксис команды 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. Временно задать имя хоста (перестаёт действовать после перезагрузки)
Пример
Пример:
Пример
$ hostname
test-server
Примечание: Имя хоста, заданное этим методом, вернётся к исходному имени хоста после перезагрузки системы.
2. Постоянная установка имени хоста (изменение файла конфигурации)
В большинстве современных дистрибутивов Linux (использующих systemd) можно постоянно изменить имя хоста следующим образом:
Пример
Пример:
Пример
Эта команда изменит оба:
/etc/hostnameфайл- статическое имя хоста системы
3. Ручное редактирование файла конфигурации
Вы также можете напрямую отредактировать файл конфигурации имени хоста:
Отредактируйте
/etc/hostnameфайл:sudo nano /etc/hostname
Удалите исходное содержимое и впишите только новое имя хоста
Обновите
/etc/hostsфайл, убедившись, что в нём есть строка, сопоставляющая имя хоста с 127.0.0.1:127.0.0.1 localhost new-hostname
Примените изменения (перезагрузка не требуется):
sudo systemctl restart systemd-hostnamed
Просмотр различных типов имён хостов
Просмотр статического имени хоста
Пример
# или
cat /etc/hostname
Просмотр временного имени хоста
Пример
# или
hostnamectl --transient
Просмотр красивого имени хоста
Пример
Просмотр FQDN (полного доменного имени)
Пример
# или
hostnamectl --fqdn
Примеры практического применения
Пример 1: Просмотр полной информации о хосте текущей системы
Пример
Статическое имя хоста: ubuntu-server
Имя значка: computer-vm
Шасси: vm
Идентификатор машины: 1a2b3c4d5e6f7g8h9i0j
Идентификатор загрузки: 1k2l3m4n5o6p7q8r9s0t
Виртуализация: kvm
Операционная система: Ubuntu 20.04 LTS
Ядро: Linux 5.4.0-42-generic
Архитектура: x86-64
Пример 2: Установка как статического, так и красивого имени хоста
Пример
Пример 3: Получение информации об имени хоста по сети
Пример
192.168.1.100
$ hostname -I
192.168.1.100 10.0.0.100
Распространённые проблемы и решения
Проблема 1: Имя хоста не применяется после установки
Решение:
- Не забудьте также обновить
/etc/hostsфайл - Проверьте, не переопределяют ли другие службы (например, NetworkManager) настройки имени хоста
- Попробуйте перезагрузить систему или выполнить:
sudo systemctl restart systemd-hostnamed
Проблема 2: Имя хоста содержит недопустимые символы
Решение:
- Имя хоста может содержать только:
- Буквы a-z
- Цифры 0-9
- Дефисы (-)
- Не может начинаться или заканчиваться дефисом
- Длина обычно ограничена 63 символами
Проблема 3: Сетевые службы не распознают новое имя хоста
Решение:
- Перезапустите связанные сетевые службы:
sudo systemctl restart networking
- Очистите кэш DNS (если применимо)
- Убедитесь, что DNS-сервер был обновлён (если это сервер в сети)
Рекомендации по лучшим практикам
Соглашения об именовании:
- Используйте осмысленные имена, например "web-prod-01" или "db-backup-02"
- Избегайте использования специальных символов и знаков подчёркивания
- Поддерживайте согласованность, особенно в серверных кластерах
Среды с несколькими именами хостов:
- Используйте статическое имя хоста в качестве основного идентификатора
- Используйте pretty hostname, чтобы предоставить понятное человеку описание
- Используйте
/etc/hostsдобавлять псевдонимы для важных серверов
Автоматизированное управление:
- В облачных средах можно использовать cloud-init для автоматической установки имён хостов
- Управляйте именами хостов массово с помощью инструментов управления конфигурацией (таких как Ansible)
Документация:
- Ведите документацию, сопоставляющую имена хостов с ролями серверов
- Используйте имена хостов как идентификаторы в системах мониторинга
Итог
hostname — базовое, но важное понятие в администрировании Linux-систем. Из этой статьи вы должны были узнать:
- Как просматривать и задавать различные типы имён хостов
- Правильный процесс постоянного изменения имени хоста
- Решения распространённых проблем, связанных с именами хостов
- Лучшие практики управления именами хостов
Помните: прежде чем изменять имя хоста в производственной среде, обязательно оцените возможные последствия. Особенно в кластерных средах изменение имени хоста может повлиять на обнаружение сервисов и системы мониторинга.
Другие расширения