Как изменить имя домена Debian Linux
Я никогда не мог полностью понять, как изменить имя хоста 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
для конкретного FQDN, кажется, правильный ответ, однако, я уже сделал, что см. выше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
,
Спасибо всем, кто помог!
2 ответа
То, как я с этим справляюсь, похоже на это; при условии, что ваше имя хоста covfefe
, Сначала запустите эту команду:
sudo hostname covfefe
Затем отредактируйте /etc/hostname
и измените значение там:
sudo nano /etc/hostname
Наконец, проверьте ваше имя хоста с sysctl
как это:
sysctl kernel.hostname
И если значение не covfefe
измените его на covfefe
как это:
sudo sysctl kernel.hostname=covfefe
Для настройки доменного имени в Debian вы можете отредактировать /etc/hostname
, Для хозяина hulefu
в домене somewhere.co.uk
ты просто поставил /etc/hostname
в hulefu.somewhere.co.uk
, Это должно работать и для большинства других дистрибутивов Linux.
Сейчас hostname -d
должен дать somewhere.co.uk
как ответ.
Похожий вопрос был задан на сервере.
Обновление: вместо этого вы можете добавить псевдоним домена /etc/hosts
, Следуя предыдущему примеру, это будет первая строка /etc/hosts
: 127.0.0.1 localhost localhost.somewhere.co.uk
ИМХО прямая настройка параметров ядра должна быть последним средством.