Файл /etc/HOSTNAME
в SuSE-Linux содержит имя хоста.
Это должно быть полное доменное имя или короткое имя (без ".")?
Связанный вопрос: socket.getfqdn () не возвращает домен, но socket.gethostname () делает?
Обратите внимание, что AFAIK верхний регистр /etc/HOSTNAME
специфичен для систем SuSe, но это должна быть символическая ссылка на имя файла в нижнем регистре /etc/hostname
, который используется systemd и поэтому должен присутствовать и в других дистрибутивах.
Рекомендуемая утилита systemd hostnamectl
различает три разных имени хоста:
/etc/machine-info
статическое имя хоста, которое используется для инициализации имени хоста ядра при загрузке (например, "lennarts-laptop"), которое хранится в /etc/hostname
временное имя хоста, которое по умолчанию получено из конфигурации сети.
Страница руководства для файла конфигурации имени хоста man 5 hostname
на самом деле явно не использует термин FQDN, но заявляет:
В
/etc/hostname
файл настраивает имя локальной системы, которое задается во время загрузки с помощьюsethostname(2)
системный вызов. Он должен содержать одну строку имени хоста, заканчивающуюся новой строкой.
Комментарии (строки, начинающиеся с символа `# ') игнорируются.
Имя хоста может быть строкой произвольной формы длиной до 64 символов; однако рекомендуется, чтобы он состоял только строчные 7-битные символы ASCII без пробелов и точек, и ограничивается форматом, разрешенным для меток доменных имен DNS, хотя это не является строгим требованием.
Где "нет точек"- единственный намек на то, что файл имени хоста должен содержать только компонент имени хоста системы, без суффикса домена и, следовательно, не FQDN.
Руководство для hostname
команда более явная (man 1 hostname
):
Полное доменное имя
Вы не можете изменить полное доменное имя (возвращенное
hostname --fqdn
) или доменное имя DNS с этим [sic: thehostname
] команда. Полное доменное имя системы - это имя, которое преобразователь (3) возвращает для имени хоста.
Другими словами, имя хоста НЕ является полным доменным именем.
А затем о том, как настроить полное доменное имя:
Технически: полное доменное имя - это имя, возвращаемое gethostbyname (2) для имени хоста, возвращаемого gethostname (2). Доменное имя DNS - это часть после первой точки.
Поэтому это зависит от конфигурации (обычно в
/etc/host.conf
) как вы можете это изменить. Обычно (если файл hosts анализируется до DNS или NIS) вы можете изменить его в / etc / hosts.
Кстати: если вы используете полное доменное имя, например myhost.example.com
как имя хоста и в /etc/hostname
, вещи как dnsdomain
и hostname -d
вернет пустые строки и НЕ разделит эту строку по первой точке на компонент имени хоста DNS myhost
и компонент доменного имени example.com