Восстановить / предотвратить изменение имени хоста

Это выстрел в темноте здесь ...

Я использую сервис под названием Strato-Server-Cloud, который по сути является элементарной версией AWS или Google-Compute. Они недавно изменили свой интерфейс и / или движок. С тех пор все новые экземпляры Ubuntu 16, которые я создаю, имеют проблему с обращением их имени хоста при перезагрузке.

Вот что я обычно делаю:

/ etc / hostname

www.example.com

/ etc / hosts

127.0.0.1 www.example.com www
[...]

В Ubuntu 16 дополнительно:

hostnamectl set-hostname www

После выполнения вышеуказанных шагов:

hostname -> www
hostname -f -> www.example.com

hostnamectl

Static hostname: www
Icon name: computer-vm
Chassis: vm
Machine ID: [ID]
Boot ID: [ID]
Virtualization: microsoft
Operating System: Ubuntu 16.04.1 LTS
Kernel: Linux 4.4.0-59-generic
Architecture: x86-64

После перезагрузки перезагрузка

hostname -> XXX
hostname -f -> XXX.strato.net

hostname-ctl

[ 116]

Обратите внимание на временное имя хоста

Как ни странно, файлы хостов и имен хостов не повреждены.

Я также попытался изменить /etc/init/hostname.conf на следующее

description     "set system hostname"

start on startup

task
exec hostname -b -F /etc/hostname.mod; full=$(cat /etc/hostname.mod);short=(${full//./ }); hostnamectl set-hostname $short

Я также поместил имя хоста в /etc/hostname.mod, чтобы избежать перезаписи. Выполнение вышеупомянутого exec-оператора вручную исправляет все, но это не кажется эффективным во время последовательности загрузки ...

К сожалению, я довольно заблудился здесь ... Я предполагаю, что /etc/init/hostname.conf выполняется во время загрузки, но затем имя хоста переопределяется другим скриптом? Кто-нибудь когда-нибудь имел такую ​​проблему и знает, как ее исправить? Я полагаю, я мог бы взглянуть на какую-нибудь версию Linux-шпиона для файлов, которая документирует, какие процессы касаются каких файлов и таким образом находит нарушающий сценарий ... Однако это звучит как большая работа ...

Если бы кто-то мог хотя бы указать на жизненный цикл имени хоста, то это этапы того, как оно определяется и куда можно подключиться, это уже очень помогло бы мне.

Спасибо заранее за ваше время и усилия.

Редактировать

Я думаю, это также поможет объяснить, почему это плохо: - OpenLDAP отказывается работать правильно в режиме STARTTLS, если имя хоста не настроено должным образом. Поскольку у меня никогда не было проблемы с невозможностью изменить имя хоста, я не знаю, какая другая служба могла бы также работать со сбоями. Поэтому минимальное решение этой проблемы должно вступить в силу до запуска службы, подобной OpenLDAP.

1
задан 23 January 2017 в 17:56

3 ответа

Для компьютеров, которые получают свой IP-адрес через dchp, файл клиента по умолчанию, /etc/dhcp/dhclient.conf, включает в себя вопрос о том, каким должен быть host-name в запросе:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

Вы можете удалить его из запрос:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search,
        dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

Я не уверен, что: могут быть непреднамеренные побочные эффекты; Доменное имя также должно быть удалено из запроса.

0
ответ дан 23 January 2017 в 17:56

Старое сообщение, я знаю, но это помогло мне решить ту же проблему. Я обновляю это для пользователей механизма поиска будущего, испытывающих ту же проблему.

Это не был отказ hostnamectl на этот раз.

, При попытке изменить имя хоста на сервере VPS и оно просто не хочет изменяться - Ваш VM может получать свое имя хоста от хост-машины / гипервизор.

В моем случае, я должен был войти в панель инструментов поставщика VPS и изменить имя хоста там.

0
ответ дан 7 November 2019 в 13:03

Этот ответ может помочь тем, кто пытается создать liveCD.

Если вы создаете liveCD с загрузкой isolinux+casper, будьте осторожны. Установка casper на liveCD изменит содержимое initrd. В результате, когда система загружается, она в первую очередь будет использовать конфигурацию casper для генерации имени хоста (или чего-то еще), а не для чтения /etc/hostname.

Я обращаюсь к исходному коду casper и нахожу следующие строки.

# Allow to override USERNAME and HOST based on media information
# make it skipable by setting FLAVOUR= in casper.conf
if [ -f /cdrom/.disk/info ] && [ -z "$FLAVOUR" ]; then
    FLAVOUR="$(cut -d' ' -f1 "/cdrom/.disk/info" 2>/dev/null | tr '[A-Z]' '[a-z]')" || FLAVOUR=
    if [ -n "$FLAVOUR" ]; then
        HOST=$FLAVOUR
        USERNAME=$FLAVOUR
        export HOST USERNAME
        sed -i "s,USERNAME=.*,USERNAME=\"$FLAVOUR\",g; s,HOST=.*,HOST=\"$FLAVOUR\",g" /etc/casper.conf
    fi
fi

Итак, вы можете создать папку «.disk» или напрямую изменить /etc/casper.conf, чтобы изменить имя хоста.

vim gen-image.sh
================
#!/bin/bash
cd IMAGE_DIR
rm -rf .disk
mkdir .disk
touch base_installable
echo "full_cd/single" >cd_type
echo "YOUR_CUSTOM_HOST_NAME" >info
echo "YOUR_CUSTOM_URL" >release_nots_url
cd ..
# GENERATE IMAGE HERE
0
ответ дан 24 July 2020 в 03:28

Другие вопросы по тегам:

Похожие вопросы: