#Симптом и границы применимости
После изменения имени хоста (hostname) в Arch Linux некоторые службы не запускаются или жалуются на неизвестное имя. При изменении короткого и полного доменного имени важно сохранить согласованность записей и не нарушить сертификаты, кластеры и локальные правила именования.
#Возможные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Неверная локальная запись в hostsСлужбы пытаются разрешить hostname в адрес, но локальное разрешение не настроено. | getent hosts для имени пуст, а /etc/hosts содержит старое имя. | Проверить, требуется ли локальная запись для этой службы. |
| Программа хранит имя в собственной конфигурацииКластерный узел, БД или сертификат привязаны к старому имени. | Журнал сообщает mismatch или сертификат не совпадает по SAN. | Обновить только соответствующую конфигурацию по руководству приложения. |
| Проблема в DNS внешней сетиНовое FQDN ещё не заведено у DNS-администратора. | Внутренний getent и внешняя DNS-проверка дают разные ответы. | Сверить записи A/AAAA и обратные зоны, если они нужны. |
#Подробная диагностика и безопасные действия
- 1. Установите фактическое имя системыОткройте терминал.
hostnamectlпоказывает статическое и текущее имя, аhostname -fможет завершиться ошибкой, если DNS не знает полное имя — это важный диагностический признак, а не команда изменения.Linux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.hostnamectl statushostnamehostname -f
- 2. Проверьте локальное разрешениеКоманда getent использует установленный NSS и позволяет увидеть, куда указывает короткое и полное имя. Вместо НОВОЕ_ИМЯ подставьте результат hostname. Если IP не возвращается, проверьте hosts и сервис разрешения.Linux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
getent hosts НОВОЕ_ИМЯcat /etc/hostsgrep "^hosts:" /etc/nsswitch.conf
- 3. Найдите конкретные пострадавшие службыПосмотрите список failed и журналы, чтобы не менять /etc/hosts из-за ошибки программы, не связанной с hostname. В выводе ищите прежнее имя, FQDN, certificate name или unable to resolve.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
systemctl --failed --no-pagerjournalctl -b -p err --no-pager -n 80
- 4. Сравните статическое имя с конфигурациейПроверьте содержимое /etc/hostname и актуальные записи /etc/hosts. Во многих конфигурациях обычный hostname не обязан присутствовать в hosts; дополнять его следует только при реально выявленной необходимости.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
cat /etc/hostnamegetent ahosts НОВОЕ_ИМЯresolvectl status
- 5. Проверьте сетевую резолюцию при использовании доменаЕсли имя входит в корпоративный или домашний домен, проверьте DNS у действующего резолвера. Изменение локального /etc/hosts не заменит исправление записей на DNS-сервере, особенно для других компьютеров.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
getent ahostsv4 НОВОЕ_FQDNresolvectl query НОВОЕ_FQDN
- 6. Сделайте согласованную точечную правкуЕсли диагностика показала старую запись в /etc/hosts, сохраните копию и откройте редактор. Изменяйте только строку нужного имени, учитывая фактический локальный IP и требования программы; не указывайте на 127.0.0.1 внешний адрес вслепую.
- Изменяет имя, доступное локальным службамLinux · Терминал (Bash)С осторожностьюНужен sudoИзменяет имя, доступное локальным службам. Для отката используйте сохранённый файл из локальной консоли.
sudo cp -a /etc/hosts /etc/hosts.whelp-backupsudoedit /etc/hostsКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 7. Проверьте зависимые приложенияПосле коррекции верните рабочий вариант именно повреждённой службы, проверьте её лог и сертификат/соединения. Если требуется изменение доменного имени кластера, привлеките администратора: простая запись hosts не обновляет настройки распределённых компонентов.
- Диагностическая команда в терминале Arch Linux, без изменения настроекLinux · Терминал (Bash)КомандаДиагностическая команда в терминале Arch Linux, без изменения настроек.
getent hosts НОВОЕ_ИМЯsystemctl --failed --no-pagerjournalctl -b -p err --no-pager -n 40
#Как понять, что проблема устранена
Повторите исходное действие, из-за которого возникла неисправность, и сверяйте не только код завершения команды, но и прикладной результат. Сохраните вывод последней диагностической команды и записи журнала до и после исправления. Если ошибка повторяется, верните только изменённую настройку из резервной копии и передайте специалисту точный симптом, имя программы/службы, версию системы и необходимые фрагменты журнала без паролей и закрытых ключей.
#Что делать, если не помогло
Не применяйте случайные советы для другого дистрибутива: в Arch Linux особенно опасны частичные обновления пакетов, а в Rocky Linux — отключение SELinux или неконтролируемый перезапуск системных служб. Остановитесь после неуспешного безопасного шага, зафиксируйте фактическое сообщение и вернитесь к соответствующей причине. Для загрузки, разделов диска и единственного удалённого подключения используйте резервную копию и локальную консоль.