教你在Linux中修改主机名

831人浏览   2024-04-07 22:34:55

前言

何谓主机名


简单来说如上图,红框地方所示的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 hostnameTransient hostname 却没改变呢?还有,为啥有三个hostname????

先别急,我们来修改一下试试:


是不是很奇怪

这次结果中没有Pretty hostnameTransient hostname ,仅剩 Static hostname了。

:命令提示符前面之所以还是 jishuhaoqixin ,是因为这里为了节约时间我没有reboot重启,大家可以自行测试下。

哈哈,不卖关子了,之所以会发生这种情况,我们还要从CentOS7中定义的三种主机名说起。

CentOS7中定义的三种主机

在CentOS7中有三种定义的主机名:

1、静态的(static):静态主机名也称为内核主机名,是系统在启动时从/etc/hostname内自动初始化的主机名。

2、瞬态的(transient):瞬态主机名是在系统运行时临时分配的主机名。

3、灵活的(pretty):灵活主机名则允许使用特殊字符的主机名。

看到没?我们上面使用 hostnamectl 第一次是不是设置的 技术好奇心,对于英文来说,妥妥的特殊字符吧?而第二次 haoqixin ,就没这个问题,直接设置了 static。



相关推荐