Ubuntu
如何正確設置主機名和域名?
我正在租用一台伺服器,在一家公司執行 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
,但沒有說明這是正確的方法還是醜陋的技巧。所以:
- 設置主機名的正確方法是什麼?
- 設置域名的正確方法是什麼?
設置您的主機名:
- 您需要
/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,…),上面給出的步驟都是有效的。