🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] 一台主机可以有多个网卡,多个IP,但是主机名只有一个。所以在很多情况下,都是使用主机名作为主机的唯一标识。 ##### **Q:主机名存在哪?如何查看?** Linux的主机名存在文件`/proc/sys/kernel/hostname`文件中。我们可以通过命令`cat /proc/sys/kernel/hostname`来查看主机名,或者通过命令`hostname`来查看主机名,`hostname`命令就是读取该文件中的内容 ##### **Q:`/etc/hostname`与`/proc/sys/kernel/hostname`有什么区别?** 系统在启动的时候,需要初始化主机名(即初始化文件`/proc/sys/kernel/hostname`内容),优先级为: 1、如果`/etc/sysctl.conf`中有`kernel.hostname=xxxx`,则使用`xxxx`作为主机名 2、如果文件`/etc/hostname`存在且不为空,则使用该文件的内容作为主机名 3、如果`/etc/hosts`中有本机IP的域名,则使用最后一条记录的域名作为主机名;比如`/etc/hosts`有如下内容(192.168.2.103是本机IP) ``` 127.0.0.1 localhost localhost.localdomain 192.168.2.103 peng.ccse.io peng ``` 那么主机名就是`peng.ccse.io`(已验证) 4、如果上面都没有,则使用默认的主机名`localhost.localdomain` 所以,如果我们修改了文件`/etc/hostname`的内容,只有在重新系统后,系统才会更新`/proc/sys/kernel/hostname`的内容 ##### **Q:如何修改主机名?** 主机名的修改分为临时修改和永久修改。 如果是临时修改,那么修改文件`/proc/sys/kernel/hostname`的内容即可,或者通过命令`hostname xxxx`(该命令就是更新上述文件的内容)。 如果是永久修改,则需要同时修改`/etc/hostname`与`/proc/sys/kernel/hostname`;一般来说,我们推荐使用命令`hostnamectl set-hostname xxxx`,该命令会同时修改上述两个文件 ##### **Q:hostname -i -d 等命令如何理解?** `hostname -i`是`hostname --ip-address`的缩写,该命令用来获取主机的IP地址。 如果在主机名为`peng`,在`/etc/hosts`中有`x.x.x.x peng`这样的一行,那么`hostname -i`得到的结果就是x.x.x.x。否则,该命令返回的就是主机所有的IP地址。 `hostname -d`是`hostname --domain`的缩写,用来查询主机的域名。 如果主机名为`peng`,在`/etc/hosts`中有`x.x.x.x peng.ccse.io peng`这样的一行,那么该命令的返回就是`ccse.io`;否则返回为空。 `hostname -f`是`hostname --fqdn`的缩写,该命令用来查询主机的域名。 如果主机名为`peng`,在`/etc/hosts`中有`x.x.x.x peng.ccse.io peng`这样的一行,那么该命令的返回就是`peng.ccse.io`;否则返回为主机名`peng`。