Имя хоста задается во время установки операционной системы или динамически назначается виртуальной машине при ее создании.

В этом руководстве объясняется, как установить или изменить имя хоста в Ubuntu 20.04 без перезагрузки системы.

Имя хоста — это метка, идентифицирующая устройство в сети. У вас не должно быть двух или более машин с одинаковым именем хоста в одной сети.

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

  • static- Традиционное имя хоста. Он хранится в /etc/hostnameфайле и может быть установлен пользователем.
  • pretty- Описательное имя хоста UTF8 в произвольной форме, используемое для представления пользователю.
  • transient- Динамическое имя хоста, поддерживаемое ядром. Серверы DHCP или mDNS могут изменить временное имя хоста во время выполнения. По умолчанию оно совпадает с именем staticхоста.

Рекомендуется использовать полное доменное имя, например, host.example.comдля обоих имен staticи .transient

Только root или пользователи с привилегиями sudo могут изменить системное имя хоста.

Отображение текущего имени хоста

Чтобы просмотреть текущее имя хоста, вызовите hostnamectlкоманду без каких-либо аргументов:

hostnamectl

Изменение имени хоста системы

Изменение имени хоста системы — простой процесс. Синтаксис следующий:

sudo hostnamectl set-hostname host.example.com
sudo hostnamectl set-hostname "Your Pretty HostName" --pretty
sudo hostnamectl set-hostname host.example.com --static
sudo hostnamectl set-hostname host.example.com --transient

Например, чтобы изменить статическое имя хоста системы на neptune.unetway.com, вы должны использовать следующую команду:

sudo hostnamectl set-hostname neptune.unetway.com

Статическое имя хоста хранится в /etc/hostname, а красивое имя хоста хранится в /etc/machine-infoфайле.

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

В большинстве систем имя хоста отображается в 127.0.0.1формате /etc/hosts. Откройте файл и измените старое имя хоста на новое.

127.0.0.1   localhost
127.0.0.1   neptune.unetway.com

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Если вы используете Ubuntu в облачном экземпляре и cloud-initпакет установлен, вам также необходимо отредактировать /etc/cloud/cloud.cfgфайл. Этот пакет обычно устанавливается по умолчанию в образах, предоставляемых облачными провайдерами, и используется для обработки инициализации облачных экземпляров.

Если файл существует в вашей системе, откройте его:

sudo vim /etc/cloud/cloud.cfg

Найдитеpreserve_hostname и измените значение falseс на true:

/etc/cloud/cloud.cfg

# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true

Сохраните файл и закройте редактор.

Проверьте изменение

Чтобы убедиться, что имя хоста было полностью изменено, введите hostnamectlкоманду:

hostnamectl