何謂主機名?
簡單來說如上圖,紅框地方所示的localhost就是默認的主機名。
這是這篇文章的直接和根本目的[狗頭]
簡介我們知道,無論是在局域網還是公網上,每台主機都有一個IP地址,其作用是為了區分彼此,也就是說IP地址相當于主機的門牌号,通過門牌号可以找到對應的主機。
但IP地址有一點不好,就是不方便記憶,所以才有了域名。
當然,域名一般(有時候局域網也會通過修改hosts文件設置域名供内部訪問)隻在在公網(INTERNET)中存在,每個域名都對應一個IP地址,每個IP可以有多個對應的域名。
那麼上面說了半天,我們的主角“主機名”又是用于什麼的呢?
既然公網有區分了,那局域網肯定也要有啊。
在一個局域網中,每台機器都有一個主機名,用于主機與主機之間的區分。
我們可以通過為每台機器設置容易記憶和理解的主機名,來達到容易訪問别人的目的。
當然,在目前的雲服務器中,更多的隻是為了自己看着終端舒服
說明
這裡因為我服務器常用的是CentOS,就以CentOS8來說明。
如果手上沒有測試環境的,可以參考我之前的兩篇文章:
哎呀,突然想弄個Linux centos 8系統玩玩,怎麼辦?
聊一聊VMware16的centos8與Win10的Xshell碰撞
又因為CentOS7開始,新增了一個 hostnamectl 命令,所以下面我會分 CentOS7之後 和 Centos7之前 兩個方面演示說明。
CentOS7之前一、查看當前主機名
通過 uname 和 hostname 命令都可查看
從圖中,可以看出,我目前的主機名是 localhost.localdomain,命令提示符前面的 localhost 隻是簡寫。
二、通過hostname命令來臨時修改
命令格式:hostname newhostname注意:這個隻能暫時修改主機名,用logout命令登出并重新登陸即可生效。但不是永久生效。
修改
logout登出
重新登錄連接,可以看到,上圖紅框内容,已經修改成功了。
三、通過配置文件/etc/sysconfig/network 修改
進入後,填寫内容:
NETWORKING=yes
HOSTNAME=主機名
保存退出,但是要下次重啟之後才能生效(如果你想現在立馬就生效,那就在使用hostname設置下)。
CentOS7之後那就簡單了,直接一個 hostnamectl 命令即可搞定。
通過圖中可以看到,我們使用了
hostnamectl set-hostname ‘技術好奇心’
命令來設置主機名,然後通過 hostnamectl 打印查看當前的主機名狀态。
但是為啥狀态結果中有個Pretty hostname已經改變了,Pretty hostname 和 Transient hostname 卻沒改變呢?還有,為啥有三個hostname????
先别急,我們再來修改一下試試:
是不是很奇怪?
這次結果中沒有Pretty hostname 和 Transient hostname ,僅剩 Static hostname了。
注:命令提示符前面之所以還是 jishuhaoqixin ,是因為這裡為了節約時間我沒有reboot重啟,大家可以自行測試下。
哈哈,不賣關子了,之所以會發生這種情況,我們還要從CentOS7中定義的三種主機名說起。
CentOS7中定義的三種主機在CentOS7中有三種定義的主機名:
1、靜态的(static):靜态主機名也稱為内核主機名,是系統在啟動時從/etc/hostname内自動初始化的主機名。
2、瞬态的(transient):瞬态主機名是在系統運行時臨時分配的主機名。
3、靈活的(pretty):靈活主機名則允許使用特殊字符的主機名。
看到沒?我們上面使用 hostnamectl 第一次是不是設置的 技術好奇心,對于英文來說,妥妥的特殊字符吧?而第二次 haoqixin ,就沒這個問題,直接設置了 static。
總結OK,到此結束,大家快去學習(裝x)吧。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!