Вики / Службы и systemd
hostnamectl (имя хоста)
Просмотр и смена имени хоста и сведений о машине; /etc/hostname и /etc/hosts.
hostnamectl (systemd) показывает и меняет имя хоста и сведения о машине
(ОС, ядро, виртуализация, machine-id, архитектура).
hostnamectl # имя, ОС, ядро, виртуализация, machine-id
hostname # просто текущее имя (короткая команда)
hostname -f # FQDN (полное имя через DNS/hosts)
hostname -I # все IP-адреса хоста
systemd различает три имени хоста:
| Вид | Где | Команда |
|---|---|---|
| static | /etc/hostname, переживает ребут |
set-hostname web01 |
| transient | временное (от DHCP/mDNS), до ребута | set-hostname --transient |
| pretty | «красивое» для UI (UTF-8, пробелы) | set-hostname "Web 01" --pretty |
sudo hostnamectl set-hostname web01 # static (пишет /etc/hostname)
sudo hostnamectl set-hostname "Веб 01" --pretty
hostnamectl --static # показать конкретный вид
sudo hostnamectl set-location "Rack 5, DC1" # доп. метаданные
sudo hostnamectl set-chassis vm # тип (vm/server/container)
После смены имени обнови /etc/hosts, чтобы sudo и локальные обращения не
тормозили на резолве:
127.0.1.1 web01.example.com web01
sudo долго думает после смены имени
Новое имя не резолвится локально. Добавь его в /etc/hosts (строка 127.0.1.1 имя).
Проверка: getent hosts $(hostname) (см. dns-resolv).
Имя «вернулось» после ребута
Его переустанавливает cloud-init или DHCP. Отключи в cloud-init
(preserve_hostname: true в /etc/cloud/cloud.cfg) или в источнике DHCP.
hostname -f не даёт FQDN
Нет записи с доменом в /etc/hosts/DNS. Добавь 127.0.1.1 host.domain host —
порядок важен (FQDN первым).
machine-id одинаковый на клонах ВМ
При клонировании образа machine-id должен быть уникален (иначе путаются DHCP-лизы, журналы). Сбрось:
sudo truncate -s0 /etc/machine-id && sudo systemd-machine-id-setup
sudo rm -f /var/lib/dbus/machine-id && sudo dbus-uuidgen --ensure
hostnamectl # имя + сведения о машине
hostname -f ; hostname -I # FQDN / все IP
sudo hostnamectl set-hostname web01
# + /etc/hosts: 127.0.1.1 web01.example.com web01
# клон ВМ: truncate -s0 /etc/machine-id && systemd-machine-id-setup
См. также
- DNS и разрешение имён — Сеть
- systemd — Службы и systemd