Я никогда не мог полностью понять, как изменить имя хоста Linux и имя домена, и теперь оно возвращается и кусает меня снова - мое имя домена Linux пустое (имя domainname
дает (none)
), и я просто не могу изменить его обратно:
$ hostname
coral
$ hostname -f
coral
$ hostname -d
$ hostname -d | wc
0 0 0
$ domainname
(none)
$ dnsdomainname
$ dnsdomainname | wc
0 0 0
$ cat /etc/hostname
coral
$ head -1 /etc/hosts
127.0.0.1 localhost.my.domain.org localhost
$ cat /etc/resolv.conf
# Fixed resolv.conf file
domain my.domain.org
search my.domain.org
nameserver 192.168.2.102
$ time dig coral
;; ANSWER SECTION:
coral. 0 IN A 192.168.2.102
real 0m0.038s
user 0m0.032s
sys 0m0.004s
Я несколько раз перезагружался, и мое доменное имя все еще пустое. Выше это после нескольких перезагрузок.
Добавляем больше деталей.
- Использование псевдонима имя хоста в
/etc/hosts
для определения полного доменного имени кажется правильным ответом, однако я уже сделал это, увидев приведенную выше записьlocalhost.my.domain.org
. Я не поместил свое имя хоста (коралл) в/etc/hosts
потому что я не хочу, чтобы мое имя хоста разрешалось до127.0.0.1
а вместо реального IP, который я получил от своего DNS-сервера. - Я выполнил трассировку
hostname -f
, но не могу найти никаких проблем из журнала. Я могу поставить это здесь, если кому-то интересно.
Как следствие, существует большая (сетевая) задержка для запуска и остановки моего сервера sendmail.
ОБНОВИТЬ:
Сегодня hostname -f
, hostname -d
& dnsdomainname
теперь работают нормально. Я ничего не делал, кроме того, что снова проследил hostname -f
. Я должен был проследить до нового файла, но я не сделал. Так что теперь он работает, и я до сих пор не знаю, почему он работает сейчас, и почему он не работал раньше. Более того, даже когда все работает, мой sysctl kernel.domainname
все еще сообщает (none)
. Это так странно и запутанно.
$ uptime
21:33:36 up 2 days, 1:36, 5 users, load average: 0.22, 0.43, 0.29
$ sysctl kernel.domainname
kernel.domainname = (none)
И вышеупомянутая (сетевая) задержка подключения к моему серверу sendmail также прошла. Итак, мой вывод заключается в том, что все, что я делал выше, было правильным, но каким-то образом мистически потребовалось много времени, чтобы моя Ubuntu 17.04 поняла это.
В любом случае, я приму ответ Джейка Гулда, так как у него есть что-то новое в том, как использовать sysctl
и kernel.hostname
.
Спасибо всем, кто помог!