#Что означает проблема и кому подходит инструкция
После hostnamectl set-hostname в Ubuntu компьютер имеет новое имя, но sudo, почта, локальные службы или программы по-прежнему ищут старое. Надо отделить имя самого компьютера от DNS-записей и собственных конфигураций приложений.
#Возможные причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Старое имя осталось в /etc/hostsЛокальное сопоставление имени и адреса не обновилось. | sudo пишет unable to resolve host, getent не находит новое имя. | Сверить hostname и локальную запись. |
| Приложение хранит имя отдельноСлужба настроена на старый FQDN или сертификат. | В журнале есть ссылка на старый домен. | Изменять только её собственную конфигурацию. |
| DNS ещё не изменёнДругие устройства продолжают искать старое имя. | Локально имя новое, с другого устройства DNS показывает прежнюю запись. | Изменить учётную запись DNS у её администратора. |
#Диагностика и пошаговое устранение
- 1. Запишите старое и новое имя без новых правокОткройте Терминал Ubuntu, запустите
hostnamectlиhostname -f(последняя команда может сообщить ошибку при отсутствии FQDN). Найдите имя в журнале проблемной службы; не меняйте hostname многократно ради проверки.Linux · Терминал (Bash)КомандаВывод покажет статическое имя, текущее имя и возможное полное доменное имя.hostnamectlhostnamehostname -f
- 2. Проверьте разрешение нового имени локальноСопоставьте
hostnameс/etc/hostsиgetent hosts. В установках Ubuntu запись 127.0.1.1 может связывать локальное имя с loopback, но это не обязательная схема для сервера с полноценным DNS. Не стирайте 127.0.0.1 localhost. - getent может не вывести ничего, если локальное имя не разрешаетсяLinux · Терминал (Bash)Командаgetent может не вывести ничего, если локальное имя не разрешается.
cat /etc/hostnamecat /etc/hostsgetent hosts "$(hostname)"
- 3. Исправьте только подтверждённую локальную записьЕсли проблема именно в /etc/hosts, сделайте резервную копию и откройте
sudoedit /etc/hosts. В существующей строке для локального имени поправьте старое название на новое, не трогая localhost и адреса реальных серверов. На машине с управляемыми cloud-init файлами проверьте, не перепишется ли файл при загрузке. - Изменяется только текст локальной таблицы имёнLinux · Терминал (Bash)С осторожностьюНужен sudoИзменяется только текст локальной таблицы имён. Откат — копия файла.
sudo cp -a /etc/hosts /etc/hosts.backup-whelpsudoedit /etc/hostsКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 4. Проверьте конфигурации служб отдельноДля каждого пострадавшего приложения выполните
systemctl statusиjournalctl -u, записав имя и точный текст ошибки. Домен в SSL-сертификате, поле server_name веб-сервера и идентификатор почты не обязаны автоматически меняться вместе с hostname. Не заменяйте старое имя по всему /etc одной командой.Linux · Терминал (Bash)КомандаИщите реальные имена, но учитывайте, что ошибки могут иметь другую причину.systemctl --failed --no-pagerjournalctl -b -p err --no-pager -n 60
- 5. Проверьте имена на другом компьютереЕсли хосту нужен доступ по DNS с других машин, проверьте запись с клиента (
nslookup ИМЯ.exampleилиgetent hostsна Linux) и сравните IP. DNS-администратор должен изменить A/AAAA и при необходимости PTR; локальный /etc/hosts другого компьютера также может удерживать старую запись. Не публикуйте внутренние имена.Linux · Терминал (Bash)КомандаПроверка имени. Полный домен подставьте самостоятельно.getent hosts "$(hostname)"getent ahostsv4 ПОЛНОЕ_ИМЯ
- 6. Убедитесь в сохранении после перезапускаПосле успешных локальных проверок согласуйте перезагрузку или перезапуск конкретного сервиса; убедитесь, что hostnamectl, getent и реально нужный сервис работают. Если после загрузки имя вернулось, найдите систему управления именем (cloud-init, конфигурация ВМ, DHCP), а не повторяйте ручную правку.Linux · Терминал (Bash)КомандаНе перезагружать удалённый сервер без запасного доступа.
hostnamectlgetent hosts "$(hostname)"
#Как убедиться, что неисправность устранена
Результат подтверждён, когда новое имя одинаково определяется локально и там, где оно действительно должно использоваться, а службы не сообщают об ошибке старого имени. DNS, сертификаты и имена приложений проверяются отдельно.
#Если результат не получен
Не повторяйте опасные действия наугад. Сохраните точную формулировку ошибки, вывод диагностики без секретов, версию Ubuntu и данные о затронутом компоненте. Верните лишь собственные изменения из резервной копии; если затронута загрузка, диски или рабочий сервер, воспользуйтесь консолью восстановления либо помощью администратора.