С чего начать Первые шаги трек · 15 ступеней
Linux Labs

hostname — имя машины и его разрешение

3 мин Ubuntu 24.04; hostname 3.23+nmu2ubuntu2

Читает или временно задаёт имя узла; отдельные ключи запрашивают FQDN и адреса.

Шпаргалка

6 команд Версия для печати
  • hostname текущее имя
  • hostname -s короткое имя
  • hostname -f имя через резолвер
  • hostname -i адреса по имени
  • hostname -I адреса интерфейсов
  • hostname --version версия утилиты

Обзор

hostname без аргументов выводит текущее имя узла. Это имя машины, а не пользователя и не обязательно полное DNS-имя. Утилита также умеет менять имя, поэтому наличие аргумента существенно меняет смысл вызова.

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

Ключи

14

Регистр ключей важен: -i получает адреса разрешением имени, -I перечисляет адреса интерфейсов без зависимости от разрешения текущего имени. В -I не входят loopback и IPv6 link-local адреса; порядок не гарантирован. Ни один вариант не означает «публичный IP».

-F читает имя из файла и меняет состояние. Обычный аргумент hostname также задаёт имя текущего узла; для постоянной настройки Ubuntu используй hostnamectl и проверь локальное разрешение.

Ключ Что делает Пример
-a --alias Псевдонимы, полученные разрешением имени. hostname -a
-f --fqdn Разрешённое полное имя узла. hostname -f
-i --ip-address Адреса через разрешение текущего имени. hostname -i
-I --all-ip-addresses Адреса интерфейсов, кроме loopback и IPv6 link-local. hostname -I
-s --short Короткое имя до первой точки. hostname -s
-A --all-fqdns Полные имена для адресов интерфейсов; не единственный канонический адрес. hostname -A
-b --boot Использовать имя по умолчанию, если имя недоступно; режим изменения. опасно hostname -b
-d --domain DNS-домен из разрешённого полного имени, не search-список. hostname -d
--long Синоним --fqdn. hostname --long
-F --file file Прочитать имя из файла и установить его. опасно hostname -F ./hostname.txt
-y --yp NIS/YP-домен; не DNS-домен. hostname -y
--nis Синоним --yp. hostname --nis
-V --version Версия установленной утилиты. hostname -V
-h --help Справка и завершение. hostname -h

Ничего не найдено. Попробуй запрос короче.

Рецепты

3

Узнать имя перед работой на сервере

Сопоставь имя узла с пользователем. Эти сведения независимы.

bash
hostname
whoami

Проверить разрешение текущего имени

getent обращается к системным источникам имён. Его результат не доказывает, что ответ пришёл именно от DNS.

bash
getent hosts "$(hostname)"
hostname -f

Сравнить адреса по имени и на интерфейсах

Различие результатов ожидаемо при разных настройках имён и интерфейсов. Для деталей посмотри ip.

bash
hostname -i
hostname -I
ip address

Неполадки

3

Короткое имя есть, FQDN не определяется

Проверь запись текущего имени в системном резолвере. Не меняй имя машины лишь ради исчезновения ошибки.

bash
hostname
getent hosts "$(hostname)"

hostname -I вернула несколько адресов

У машины может быть несколько интерфейсов и адресов. Не выбирай первый как универсально правильный: сопоставь его с нужной сетью.

bash
ip address

После перезагрузки имя вернулось

Временная установка не заменяет постоянную конфигурацию. Проверь настройки hostnamectl и /etc/hostname; внешний механизм настройки также может менять имя.

bash
hostnamectl
cat /etc/hostname

Опасно

Опасно. hostname new-name и hostname -F file меняют имя при достаточных правах. Это может нарушить ожидаемое разрешение имён и работу зависимых служб. Шпаргалка выше содержит только чтение. Не используй изменение имени как способ «починить DNS» без выяснения причины.

См. также

  • hostnamectl — постоянная настройка имени в systemd.

  • dns-resolv — источники разрешения имён.

  • ip — адреса конкретных интерфейсов.

  • uname — имя узла среди сведений о ядре.

Загрузка…