Файл / 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 имя хоста
на самом деле не используется явно термин FQDN, но указано:
Файл
/ etc / hostname
настраивает имя локальной системы, которая устанавливается во время загрузки с помощьюsethostname (2)
системный вызов. Он должен содержать одну строку имени хоста, завершающуюся новой строкой.
Комментарии (строки начинающиеся с `# ') игнорируются.
Имя хоста может быть строкой произвольной формы длиной до 64 символов; однако рекомендуется, чтобы он состоял только из 7-битных строчных символов ASCII и не содержал пробелов и точек , и ограничивается форматом, разрешенным для меток доменных имен DNS, хотя это не является строгим
Где « no dots » - это единственный намек на то, что файл имени хоста должен содержать только компонент имени хоста системы, без суффикса домена и, следовательно, не FQDN.
Руководство для команды hostname
более явное ( man 1 hostname
):
FQDN
Вы не можете изменить FQDN (возвращенное
hostname --fqdn
) или DNS-имя домена с помощью этой [sic: thehostname
] команды. Полное доменное имя системы - это имя, которое преобразователь (3) возвращает для имени хоста.
Другими словами, имя хоста НЕ является полным доменным именем.
И затем о том, как настроить полное доменное имя:
Технически: полное доменное имя - это имя, возвращаемое gethostbyname (2) для имени хоста, возвращаемого gethostname (2). Имя домена DNS - это часть после первой точки.
Следовательно, это зависит от конфигурации (обычно в
/etc/host.conf
), как вы можете его изменить. Обычно (если файл hosts анализируется до DNS или NIS) вы можете изменить его в /etc/hosts.
. BTW: если вы действительно используете полное доменное имя, такое как myhost.example.com
в качестве имени хоста и в / etc / hostname
такие вещи, как dnsdomain
и hostname -d
, вернут пустые строки и НЕ разделят эту строку по первой точке на компонент имени хоста DNS myhost
и компонент доменного имени example.com