Как изменить hostname (имя компьютера) в Ubuntu
- Быстрое решение: отредактируйте /etc/hostname и /etc/hosts, затем выполните sudo hostname <новое-имя> для немедленного результата или перезагрузитесь для постоянного.
- Альтернатива: на современных Ubuntu используйте sudo hostnamectl set-hostname <новое-имя> — это изменит hostname корректно для systemd-систем.
Быстрая навигация
- Выбор имени (hostname)
- Редактирование /etc/hostname
- Редактирование /etc/hosts
- Немедленное изменение без перезагрузки
- Альтернативные методы
- Проверка, тесты, и рекомендации

Ubuntu предлагает задать имя компьютера (hostname) при установке. Его можно изменить позже вручную — графического инструмента в стандартной установке обычно нет.
Процесс описанный ниже работает для Ubuntu, Linux Mint и других Debian-подобных дистрибутивов. Для дистрибутивов на базе Red Hat (Fedora, RHEL и др.) используются другие механизмы, часто основанные на systemd, но идея похожа.
Выбор имени (hostname)
Hostname — это идентификатор компьютера в сети. Он нужен для однозначного определения устройства внутри локальной сети и отображается в приглашении терминала.
Правила выбора имени:
- Допустимые символы: латинские буквы a–z, цифры 0–9, дефис (-) и точка (.).
- Имя должно начинаться и заканчиваться буквой или цифрой (не дефис и не точка).
- Буквы нечувствительны к регистру: MyHost = myhost.
- Длина: обычно от 2 до 63 символов; практичны короткие имена.
- Не используйте одно и то же имя на двух компьютерах в одной сети — это приведёт к конфликтам.
Совет: используйте понятные и предсказуемые имена, например web01, laptop-ivan, db-master. Это упрощает администрирование и автоматизацию.
Редактирование /etc/hostname
Откройте терминал. В Unity нажмите кнопку Ubuntu, найдите “Terminal” и откройте его. Можно использовать сочетание Ctrl+Alt+T.

Файл /etc/hostname хранит текущее системное имя. Откройте его в текстовом редакторе с правами суперпользователя. Пример для графического редактора gedit:
sudo gedit /etc/hostname
Если вы предпочитаете консольные редакторы, используйте:
sudo nano /etc/hostname
или
sudo vi /etc/hostname

Файл обычно содержит только одну строку — текущее имя хоста. Замените её на новое имя и сохраните файл.

Изменение в этом файле применяется при загрузке системы: при следующем старте система прочитает /etc/hostname и установит новое имя.
Редактирование /etc/hosts
Чтобы локальные обращения к вашему хосту корректно разрешались, отредактируйте файл /etc/hosts. В нём имя хоста сопоставлено с локальным IP (127.0.1.1 в Debian/Ubuntu):
sudo gedit /etc/hosts

Найдите строку, похожую на:
127.0.1.1 your-old-hostname
Замените your-old-hostname на ваше новое имя хоста и сохраните файл.

После сохранения /etc/hosts локальные резолвы (например ping localhost-алиасов) будут использовать новое имя.

Изменение hostname немедленно (без перезагрузки)
Чтобы применить новое имя немедленно, выполните команду hostname или hostnamectl.
Классический способ (временное до перезагрузки):
sudo hostname your-new-hostname

Этот способ изменит имя до следующей перезагрузки. Чтобы изменение было постоянным, не забудьте обновить /etc/hostname и /etc/hosts.
Современный способ на systemd-системах (постоянно и корректно для systemd):
sudo hostnamectl set-hostname your-new-hostname
Проверить текущее состояние можно:
hostnamectl status
или
hostname
Имейте в виду: терминал может не обновить приглашение сразу — откройте новую сессию терминала или выполните exit и запустите терминал снова.

Альтернативные методы
- Network Manager GUI: некоторые окружения рабочего стола (GNOME, KDE) позволяют изменять имя хоста через системные настройки сети.
- nmcli (NetworkManager CLI): в специфичных сценариях NetworkManager может управлять hostname; проверьте документацию nmcli.
- Cloud-init: облачные образы иногда перезаписывают /etc/hostname на старте через cloud-init. В таких системах изменяйте конфигурацию cloud-init или отключите автоматическое переименование.
- Salt/Ansible/Chef/Puppet: в средах с автоматизацией имя хоста обычно задаётся централизованно и может переопределять локальные изменения.
Проверка и тесты (критерии приёмки)
Критерии приёмки для успешного изменения hostname:
- /etc/hostname содержит новое имя.
- /etc/hosts содержит строку с 127.0.1.1 и новым именем (если применимо).
- hostnamectl status возвращает новое имя (на systemd-системах).
- Команда hostname возвращает новое имя.
- Новая сессия терминала отображает обновлённый приглашение с новым именем.
- Локальные службы (например SSH) корректно запускаются и не конфликтуют с DNS/hosts.
Проверьте эти пункты сразу после изменений и после перезагрузки.
Типичные проблемы и как их решать
Имя не меняется после перезагрузки:
- Убедитесь, что вы сохранили /etc/hostname и /etc/hosts.
- Проверьте, не перезаписывается ли файл cloud-init или конфигурацией провайдера.
Конфликты в локальной сети (два устройства с одним именем):
- Переименуйте одно из устройств.
- Для серверов используйте уникальные имена (например добавьте z-название окружения: db-prod-01).
SSH / сервисы используют старое имя:
- Перезапустите сервисы или перезагрузите систему.
- Проверьте файлы конфигурации сервисов, где может быть явно прописано старое имя.
hostnamectl не работает или отсутствует:
- В старых системах systemd может не быть; используйте sudo hostname и редактируйте /etc/hostname вручную.
Безопасность и приватность
- Имя хоста не считается чувствительной информацией, но в некоторых организациях название может раскрывать роль сервера или его расположение. Следуйте корпоративной политике именования.
- Не включайте в hostname личные данные (фамилии, номера телефонов, пароли).
Решение задач по ролям (короткие чеклисты)
Администратор инфраструктуры:
- Проверить политику именования в документации.
- Обновить /etc/hostname и /etc/hosts или использовать централизованные инструменты.
- Обновить CMDB/инвентаризацию.
Пользователь локального ноутбука:
- Выбрать простое имя (например laptop-ivan).
- Изменить /etc/hostname и /etc/hosts.
- Перезагрузить или выполнить sudo hostname <имя> для текущей сессии.
DevOps/Автоматизация:
- Обновить playbook/recipe, чтобы новые машины получали нужный hostname автоматически.
- Убедиться, что cloud-init или провайдер не перезаписывают имя.
Модель принятия решения — когда использовать что
- Для единичных рабочих станций: редактируйте /etc/hostname и /etc/hosts вручную.
- Для серверов и автоматизированных сред: задавайте имя через инструменты автоматизации (Ansible/Cloud-init) или hostnamectl в процессе конфигурации.
- Если система использует systemd — предпочтителен hostnamectl.
Мини-методология (шаги для безопасного изменения hostname)
- Запланируйте окно обслуживания, если меняете сервер.
- Сделайте резервную копию /etc/hostname и /etc/hosts:
sudo cp /etc/hostname /etc/hostname.bak
sudo cp /etc/hosts /etc/hosts.bak
- Отредактируйте /etc/hostname, затем /etc/hosts.
- Примените командой sudo hostnamectl set-hostname или sudo hostname.
- Проверьте службы (ssh, web, БД) и логи на ошибки.
- Обновите документацию и инвентарь.
Примеры команд
- Просмотреть текущее имя:
hostname
- Временное изменение до перезагрузки:
sudo hostname new-hostname
- Постоянное изменение (systemd):
sudo hostnamectl set-hostname new-hostname
- Проверить статус systemd-hostnamed:
hostnamectl status
Диагностика и тест-кейсы
- Тест 1: После изменения hostname команда hostname возвращает ожидаемое значение.
- Тест 2: После перезагрузки /etc/hostname по-прежнему содержит новое имя.
- Тест 3: С другого локального устройства выполните ping new-hostname; он должен резолвиться на 127.0.1.1 (локально) или через DNS, если настроен.
- Тест 4: Службы (например SSH) запускаются без ошибок, связанных с именем хоста.
Mermaid: простой алгоритм решения
flowchart TD
A[Начать] --> B{Удалённый сервер или рабочая станция?}
B -->|Рабочая станция| C[Изменить /etc/hostname и /etc/hosts]
B -->|Сервер| D[Проверить автоматизацию 'cloud-init/Ansible']
D --> E{Если автоматизация есть}
E -->|Да| F[Изменить конфиг автоматизации]
E -->|Нет| C
C --> G[Применить sudo hostnamectl или sudo hostname]
G --> H[Проверить hostname и перезагрузить при необходимости]
H --> I[Обновить документацию]
I --> J[Готово]Краткий глоссарий (одна строка на термин)
- hostname — системное имя компьютера в сети.
- /etc/hostname — файл, содержащий постоянное имя хоста в Debian-подобных системах.
- /etc/hosts — локальный файл сопоставления имён и IP-адресов.
- hostnamectl — утилита systemd для управления именем хоста.
Итог
Изменение имени хоста в Ubuntu — простая операция: обновите /etc/hostname и /etc/hosts, примените новое имя командой hostnamectl или hostname и проверьте систему. В средах с автоматизацией или облачных образах убедитесь, что конфигурация не будет перезаписывать ваши изменения.
Важное: всегда делайте резервные копии файлов /etc/hostname и /etc/hosts перед изменениями и обновляйте внутреннюю документацию, чтобы избежать конфликтов и недоразумений.
Похожие материалы
Голосовой ввод в Windows 11 — включение и советы
Уведомления Google Форм на email — настройка
Petey на Apple Watch — ChatGPT на запястье
Искать по содержимому в Windows: добавить типы файлов
MicroK8s: быстрый старт и эксплуатация