Как изменить имя сервера (hostname) в Ubuntu
Имя сервера видно в строке приглашения терминала, в журналах и в письмах, которые сервер отправляет. Провайдер может поставить имя из случайных букв и цифр. Ниже — как сменить его на понятное, чтобы не путать серверы.
Содержание 8
Что сделать прямо сейчас
- Подключитесь к серверу — инструкция.
- Посмотрите текущее имя:
hostname. - Поставьте новое имя:
sudo hostnamectl hostname myserver. Вместоmyserver— ваше имя латиницей. - Откройте /etc/hosts:
sudo nano /etc/hosts. В строке, которая начинается с127.0.1.1, замените старое имя на новое. Если такой строки нет, добавьте её:127.0.1.1 myserver. Сохраните — Ctrl+O и Enter, выйдите — Ctrl+X. - Проверьте:
hostnameвыведет новое имя. - Отключитесь и подключитесь заново: приглашение станет
ivan@myserver:~$.
Перезагружать сервер не нужно: hostnamectl меняет имя сразу и записывает его в /etc/hostname, оттуда система возьмёт его при следующей загрузке. Старое имя в приглашении остаётся до переподключения: терминал запоминает имя при запуске.
Какое имя выбрать
| Можно | Нельзя |
|---|---|
латинские буквы и цифры: web1, myserver | русские буквы |
дефис внутри имени: shop-db | пробел, подчёркивание и другие знаки |
| до 64 символов | дефис в начале или в конце |
Лучше короткое слово без точек: web1, shop-db, backup. Если ввести имя с пробелом или подчёркиванием, hostnamectl уберёт эти знаки сам: из my_server получится myserver. Русские буквы он тоже удалит, поэтому имя из одних русских букв не получится.
Три имени в hostnamectl
Команда hostnamectl без слов после неё покажет имена и сведения о системе:
| Строка | Что значит |
|---|---|
Static hostname | имя из /etc/hostname — его вы и меняете |
Transient hostname | временное имя от сети; показывается, если отличается от static |
Pretty hostname | имя для людей с любыми знаками; показывается, если задано и отличается от static |
sudo hostnamectl hostname меняет все три сразу, поэтому другие ключи не нужны. Старая запись sudo hostnamectl set-hostname myserver тоже работает.
Зачем править /etc/hosts
Программы, которым нужен адрес своего сервера, ищут его имя в /etc/hosts. Если имени там нет, sudo после каждой команды пишет предупреждение unable to resolve host. Строка 127.0.1.1 myserver связывает имя с адресом самого сервера. Подробный разбор — в статье sudo: unable to resolve host.
Проверить, что имя находится: getent hosts myserver. Ответ со строкой 127.0.1.1 значит, что всё в порядке.
Если имя вернулось после перезагрузки
На серверах провайдеров первую настройку делает cloud-init. Он может ставить имя из настроек провайдера при каждой загрузке. По документации cloud-init, имя, изменённое вручную, он не трогает. Если старое имя всё же вернулось, запретите ему менять имя:
echo 'preserve_hostname: true' | sudo tee /etc/cloud/cloud.cfg.d/99-hostname.cfgЗатем снова sudo hostnamectl hostname myserver и проверка после перезагрузки. Если после перезагрузки пропала строка в /etc/hosts — что делать, написано в статье unable to resolve host.
Папки /etc/cloud нет — значит, cloud-init на сервере не установлен, этот шаг пропустите.
Ошибки и как их исправить
| Ответ | Что значит | Что сделать |
|---|---|---|
sudo: unable to resolve host myserver | нового имени нет в /etc/hosts | добавьте строку 127.0.1.1 myserver — разбор |
без sudo — запрос пароля или Could not set … hostname | смена имени меняет систему | запустите с sudo |
hostname выводит не то имя, что вы ввели | hostnamectl убрал недопустимые знаки | выберите имя из латиницы, цифр и дефиса |
| в приглашении старое имя | терминал запомнил его при входе | переподключитесь к серверу |
Источники
- Справка hostnamectl для Ubuntu 24.04 — команда hostname, ключи --static, --pretty и --transient, три вида имени, до 64 символов.
- Справка hostname для Ubuntu 24.04 — файл /etc/hostname: латиница, цифры и дефис, лучше одно слово без точек.
- Справка hosts для Ubuntu 24.04 — файл /etc/hosts и строка 127.0.1.1.
- Исходный код systemd 255: hostnamectl.c — как hostnamectl очищает имя от лишних знаков, текст Could not set.
- Исходный код systemd 255: hostname-util.c — допустимые знаки в имени: буквы, цифры и дефис.
- cloud-init: модули Set Hostname и Update Hostname — параметр preserve_hostname.
- Исходный код bash 5.2: shell.c — bash запоминает имя компьютера при запуске.
Сверено 11 октября 2026 года.
Что почитать дальше
- sudo: unable to resolve hostесли sudo пишет это после смены имени.
- Как изменить часовой поясещё одна настройка нового сервера.
- Как настроить VPS с нулячто ещё сделать на новом сервере.
- Команды Linux для новичкашпаргалка по командам.
Проверено и обновлено: 11.10.2026