Linux中改變主機(jī)名的4種方法
昨天我們已經(jīng)在我們的網(wǎng)站中寫(xiě)過(guò)如何在 Linux 中修改主機(jī)名的文章。今天,我們將向你展示使用不同的方法來(lái)修改主機(jī)名。你可以從中選取最適合你的方法。
使用 systemd
的系統(tǒng)自帶一個(gè)名為 hostnamectl
的好用工具,它可以使我們能夠輕易地管理系統(tǒng)的主機(jī)名。
當(dāng)你使用這個(gè)原生命令時(shí),它可以立刻改變主機(jī)名而無(wú)需重啟來(lái)生效。
但假如你通過(guò)手動(dòng)修改某個(gè)配置文件來(lái)更改主機(jī)名,那么就可能需要經(jīng)過(guò)重啟來(lái)生效。
在這篇文章中,我們將展示在使用 systemd
的系統(tǒng)中改變主機(jī)名的 4 種方法。
hostnamectl
命令允許在 Linux 中設(shè)置三類(lèi)主機(jī)名,它們的細(xì)節(jié)如下:
- 靜態(tài): 這是靜態(tài)主機(jī)名,由系統(tǒng)管理員添加。
- 瞬時(shí)/動(dòng)態(tài): 這個(gè)由 DHCP 或者 DNS 服務(wù)器在運(yùn)行時(shí)賦予。
- 易讀形式: 它可以由系統(tǒng)管理員賦予。這個(gè)是自由形式的主機(jī)名,以一種易讀形式來(lái)表示服務(wù)器。
這些都可以使用下面 4 種方法來(lái)設(shè)置。
hostnamectl
命令:控制系統(tǒng)主機(jī)名。nmcli
命令:是一個(gè)控制 NetworkManager 的命令行工具。nmtui
命令:是一個(gè)控制 NetworkManager 的文本用戶界面。/etc/hostname
文件:這個(gè)文件中包含系統(tǒng)的靜態(tài)主機(jī)名。
方法 1:在 Linux 中使用 hostnamectl 來(lái)改變主機(jī)名
hostnamectl
可被用來(lái)查詢和改變系統(tǒng)的主機(jī)名,以及相關(guān)設(shè)定。只需運(yùn)行 hostnamectl
便可以查看系統(tǒng)的主機(jī)名了。
$ hostnamectl
或者使用下面的命令:
$ hostnamectl status
Static hostname: daygeek-Y700
Icon name: computer-laptop
Chassis: laptop
Machine ID: 31bdeb7b83230a2025d43547368d75bc
Boot ID: 267f264c448f000ea5aed47263c6de7f
Operating System: Manjaro Linux
Kernel: Linux 4.19.20-1-MANJARO
Architecture: x86-64
假如你想改變主機(jī)名,可以使用下面的命令格式:
語(yǔ)法格式:
$ hostnamectl set-hostname [YOUR NEW HOSTNAME]
使用下面的命令來(lái)使用 hostnamectl
更改主機(jī)名。在這個(gè)例子中,我將把主機(jī)名從 daygeek-Y700
改為 magi-laptop
。
$ hostnamectl set-hostname magi-laptop
你可以使用下面的命令來(lái)查看更新后的主機(jī)名。
$ hostnamectl
Static hostname: magi-laptop
Icon name: computer-laptop
Chassis: laptop
Machine ID: 31bdeb7b83230a2025d43547368d75bc
Boot ID: 267f264c448f000ea5aed47263c6de7f
Operating System: Manjaro Linux
Kernel: Linux 4.19.20-1-MANJARO
Architecture: x86-64
方法 2:在 Linux 中使用 nmcli 命令來(lái)更改主機(jī)名
nmcli
是一個(gè)命令行工具,旨在控制 NetworkManager 并報(bào)告網(wǎng)絡(luò)狀態(tài)。
nmcli
被用來(lái)創(chuàng)建、展示、編輯、刪除、激活和注銷(xiāo)網(wǎng)絡(luò)連接,同時(shí)還可以用來(lái)控制和展示網(wǎng)絡(luò)設(shè)備的狀態(tài)。另外,它也允許我們更改主機(jī)名。
使用下面的命令來(lái)利用 nmcli
查看當(dāng)前的主機(jī)名。
$ nmcli general hostname
daygeek-Y700
語(yǔ)法格式:
$ nmcli general hostname [YOUR NEW HOSTNAME]
使用下面的命令來(lái)借助 nmcli
命令可以更改主機(jī)名。在這個(gè)例子中,我將把主機(jī)名從 daygeek-Y700
變成 magi-laptop
。
$ nmcli general hostname magi-laptop
它可以在不重啟下設(shè)備的情況下生效,但為了安全目的,只需要重啟 systemd-hostnamed
服務(wù)來(lái)使得更改生效。
$ sudo systemctl restart systemd-hostnamed
再次運(yùn)行相同的 nmcli
命令來(lái)檢查更改后的主機(jī)名。
$ nmcli general hostname
magi-laptop
方法 3:在 Linux 中使用 nmtui 來(lái)更改主機(jī)名
nmtui
是一個(gè)基于 curses
庫(kù)的 TUI 應(yīng)用,被用來(lái)和 NetworkManager 交互。當(dāng)啟動(dòng) nmtui
后,如果沒(méi)有指定 nmtui
的前面一個(gè)命令行參數(shù),它將提醒用戶選擇執(zhí)行某項(xiàng)活動(dòng)。
在終端中運(yùn)行下面的命令來(lái)開(kāi)啟文本用戶界面。
$ nmtui
使用向下箭頭按鍵來(lái)選擇 “Set system hostname” 這個(gè)選項(xiàng),然后敲擊回車(chē)鍵。
下面的截圖展示的是原來(lái)的主機(jī)名。
我們需要做的就是刪除原來(lái)的主機(jī)名,再輸入新的主機(jī)名,然后選中 “OK” 敲擊回車(chē)確認(rèn)就可以了。
然后它將在屏幕中向你展示更新后的主機(jī)名,再次選中 “OK” 敲擊回車(chē)確認(rèn)就完成更改了。
選中 “Quit” 按鈕來(lái)從 nmtui
終端界面離開(kāi)。
它可以在不重啟設(shè)備的情況下生效,但為了安全目的,需要重啟 systemd-hostnamed
服務(wù)來(lái)使得更改生效。
$ sudo systemctl restart systemd-hostnamed
你可以運(yùn)行下面的命令來(lái)查看更新后的主機(jī)名。
$ hostnamectl
Static hostname: daygeek-Y700
Icon name: computer-laptop
Chassis: laptop
Machine ID: 31bdeb7b83230a2025d43547368d75bc
Boot ID: 267f264c448f000ea5aed47263c6de7f
Operating System: Manjaro Linux
Kernel: Linux 4.19.20-1-MANJARO
Architecture: x86-64
方法 4:在 Linux 中使用 /etc/hostname 來(lái)更改主機(jī)名
除了上面的方法外,我們還可以通過(guò)修改 /etc/hostname
文件來(lái)達(dá)到修改主機(jī)名的目的。但這個(gè)方法需要服務(wù)器重啟才能生效。
使用下面的命令來(lái)檢查 /etc/hostname
文件以查看當(dāng)前的主機(jī)名:
$ cat /etc/hostname
daygeek-Y700
要改變主機(jī)名,只需覆寫(xiě)這個(gè)文件就行了,因?yàn)檫@個(gè)文件只包含主機(jī)名這一項(xiàng)內(nèi)容。
$ sudo echo "magi-daygeek" > /etc/hostname
$ cat /etc/hostname
magi-daygeek
然后使用下面的命令重啟系統(tǒng):
$ sudo init 6
查看 /etc/hostname
文件的內(nèi)容來(lái)驗(yàn)證主機(jī)名是否被更改了。
$ cat /etc/hostname
magi-daygeek