Як встановити доменне ім'я в GNU / Linux?


27

Аналогічно до імені хоста, яке можна змінювати різними способами:

  • тимчасово використовуючи hostnameкоманду
  • постійно використовуючи /etc/hostname(або /etc/sysconfig/networkабо /etc/HOSTNAMEці файли використовуються сценаріями init)

Я хочу змінити своє доменне ім’я. Я можу використовувати domainnameкоманду, але чи є спосіб зробити її постійною через перезавантаження? Я думаю, що це можна налаштувати, /etc/resolv.confале цей файл, як правило, генерується, і я не знаю точно різниці між searchта domainдирективами. А в який час саме там інформація передається domainnameпрограмі для встановлення доменного імені?

Чи є у вас якісь ідеї з цього приводу?

Я хотів би бути в основному сумісним у різних дистрибутивах. Тож якщо у когось є вказівники на різні смаки розподілу, я з радістю прийму їх.


Кожен розподіл робить це по-різному. Які з них вас цікавлять? А ви читали їх документацію?
Майкл Хемптон

Переважно аромати RedHat та Debian. І я не зміг знайти відповідну інформацію в документації. Але, можливо, я не виглядав досить важко, визнаю, я не знаю, де саме в документації це могло бути (або навіть якщо воно є в документах).
Мілдред

1
Це справедливо. У документації Red Hat він похований у додатку . Хоча в Debian's він не похований у додатку , але це заплутано ...
Майкл Хемптон

1
@Michael Це посилання у списку розсилки debian є корисним, особливо, щоб, нарешті, відповісти на ваше запитання, ви налаштуєте свій FQDN там, де ви хочете перейменувати імена. Якщо ви хочете, щоб це було у файлах у самій коробці, тоді він переходить у / etc / hosts. Якщо ви запускаєте власний сервер імен, як я (я запускаю dnsmasq для простоти), тоді вам потрібно лише записати інформацію в
Mildred

У червоній шапці 7 та похідних системах слід використовувати hostnamectl для налаштування імені хоста. cyberciti.biz/faq/rhel-redhat-centos-7-change-hostname-command/…
Xavy

Відповіді:


42

Встановити FQDN

Я використовую Debian 7 і саме це працювало для мене; завдяки Фернандо Рібейро .

sudoedit / etc / ім'я хоста

server # here's where you put the server's host name

активувати ім'я хоста

sudo hostname -F / etc / ім'я хоста

додати доменне ім’я та адресу на сервер

sudoedit / тощо / господарі

192.168.1.2   server.domain server

ПЕРЕВІРИ

> hostname --short
server

> hostname --domain
domain

> hostname --fqdn
server.domain

> hostname --ip-address
192.168.1.2

після зміни імені сервера у /etc/hostnameвас можливо не вдасться редагувати /etc/hosts. У цьому випадку ви повинні використовувати, xauth addяк зазначено у цій відповіді stackoverflow.com/questions/20611783/…
Молодший М

1
не слід використовувати sudo vim. встановити $EDITORта використовувати sudoedit.
törzsmókus

5

При використанні redhat-baseсистем, Linux користей /etc/sysconfig/networkфайл , і ви повинні встановити змінну HOSTNAMEдля того FQDN, при використанні FQDN, linuxсам визначає доменне ім'я.

Наприклад:

HOSTNAME=web.mydomain.com

Але коли ви використовуєте debian-baseсистеми, ви повинні заповнити /etc/hostnameфайл FQDN:

web.mydomain.com

ПРИМІТКА. Якщо ви хочете встановити, domain nameобов'язково встановіть FQDN(Повністю якісне ім'я домену)

Коли ви встановите, hostname -dпоказує вам domain name.


1
Дякую, але в мене склалося враження, що ці файли повинні містити лише ім'я хоста без доменної частини. Якщо я зроблю те, що ви пропонуєте, ім'я хоста поверне fqdn безпосередньо (різниці між hostnameі hostname -f).
Мілдред

о, до речі, я забуваю сказати, що слід встановити ім'я хоста вручну hostname web.mydomain.comпісля налаштування файлів. тому що при налаштуванні файлової пам’яті не можна застосовувати зміни. (якщо це було корисно, не забувайте корисний прапор)
PersianGulf

4

man hostname, цитуючись від кінця до початку

FILES
       /etc/hostname  Historically  this file was supposed to only contain the hostname and not the full canonical
       FQDN. Nowadays most software is able to cope with a full FQDN here. This file is read at boot time  by  the
       system initialization scripts to set the hostname.

       /etc/hosts Usually, this is where one sets the domain name by aliasing the host name to the FQDN.

   THE FQDN
       The  FQDN (Fully Qualified Domain Name) of the system is the name that the resolver(3) returns for the host
       name, such as, ursula.example.com.  It is usually the hostname followed by the DNS domain  name  (the  part
       after the first dot).  You can check the FQDN using hostname --fqdn or the domain name using dnsdomainname.

       You cannot change the FQDN with hostname or dnsdomainname.

       The recommended method of setting the FQDN is to make the hostname be an alias for the fully qualified name
       using /etc/hosts, DNS, or NIS. For example, if the  hostname  was  "ursula",  one  might  have  a  line  in
       /etc/hosts which reads

              127.0.1.1    ursula.example.com ursula

       Technically: The FQDN is the name getaddrinfo(3) returns for the host name returned by gethostname(2).  The
       DNS domain name is the part after the first dot.

       Therefore it depends on the configuration of the resolver (usually in /etc/host.conf) how  you  can  change
       it.  Usually  the  hosts  file  is  parsed  before  DNS  or NIS, so it is most common to change the FQDN in
       /etc/hosts.

       If a machine has multiple network interfaces/addresses or is used in a  mobile  environment,  then  it  may
       either  have  multiple  FQDNs/domain  names or none at all. Therefore avoid using hostname --fqdn, hostname
       --domain and dnsdomainname.  hostname --ip-address is subject to the  same  limitations  so  it  should  be
       avoided as well.

Я б сказав, що це все детально описує.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.