Ubuntu

如何正確設置主機名和域名?

  • May 10, 2021

我正在租用一台伺服器,在一家公司執行 Ubuntu 16.04,我們將其命名為 company.org。

目前,我的伺服器配置如下:

  • 主機名:server737263
  • 域名:company.org

這是我的 FQDN:

user@server737263:~ $ hostname --fqdn
server737263.company.org

這並不奇怪。

我也在租一個域名,我們來命名吧domain.org。我想做的是將我的伺服器重命名為server1.domain.org.

這意味著將我的主機名配置為server1,將我的域名配置為domain.org.

我怎樣才能正確地做到這一點?

確實,手冊頁hostname不清楚。至少對我來說:

主機名(1)

$$ … $$ 設置名稱

  • 當使用一個參數或 –file 選項呼叫時,這些命令設置主機名或 NIS/YP 域名。hostname 使用 sethostname(2) 函式,而三個 domainname、ypdomainname 和 nisdomainname 都使用 setdomainname(2)。 請注意,這僅在下次重新啟動之前有效。編輯 /etc/hostname 以進行永久更改。

$$ … $$ FQDN

  • 您不能使用主機名或 dnsdomainname 更改 FQDN。

$$ … $$

所以看起來編輯/etc/hostname還不夠?因為如果它真的改變了主機名,它就會改變 FQDN。我還讀到了一個用 command 更改主機名的技巧sysctl kernel.hostname=server1,但沒有說明這是正確的方法還是醜陋的技巧。

所以:

  1. 設置主機名的正確方法是什麼?
  2. 設置域名的正確方法是什麼?

設置您的主機名:

  • 您需要/etc/hostname使用新主機名進行編輯。
  • 然後,執行sudo hostname $(cat /etc/hostname)

設置你的域,假設你有一個resolvconf二進製文件:

  • /etc/resolvconf/resolv.conf.d/head中,您將添加 then 行domain your.domain.name(不是您的 FQDN,只是域名)。
  • 然後,執行sudo resolvconf -u以更新您的/etc/resolv.conf(或者,只需將先前的更改複製到您的/etc/resolv.conf)中。

如果沒有resolvconf,只需編輯/etc/resolv.conf,添加該domain your.domain.name行。

無論哪種方式:

最後,更新您的/etc/hosts文件。應該至少有一行以您的 IP(是否環回)、您的 FQDN 和您的主機名之一開頭。找出 ipv6 地址,您的主機文件可能如下所示:

127.0.0.1 localhost
1.2.3.4 service.domain.com service

針對hostnamectl評論中堆積的建議:這不是強制性的,也不是詳盡無遺的。

如果您的作業系統附帶 systemd,它可以用作步驟 1 和 2 的替代品。而無論 systemd 是否存在(pclinuxos,devuan,…),上面給出的步驟都是有效的。

引用自:https://unix.stackexchange.com/questions/322883