如何在Linux中显示和设置主机名

本文详细介绍了Linux系统中主机名(hostname)的概念、显示方法、设置过程以及与DNS域名的关系,包括如何查看和修改主机名、DNS域名,以及显示更多细节信息的方法。

随着连接到网络的计算机数量越来越多,每一台计算机都需要有一个属性来区别于其它计算机。和现实世界中的人一样,计算机也有一个叫做hostname(主机名)的属性。

什么是hostname

从它的操作手册来看,hostname是用来显示系统的DNS名字以及为了显示和设置它的主机名或者NIS域名名字。所以hostname依赖于DNS(Domain Name System域名系统)或者NIS(Network Information System网络信息系统)。

怎么显示hostname

hostname是为每一个linux发行版的预安装命令。通过在控制台输入hostname,可以显示你的机器的hostname。这里有一个有个简单的命令及其输出。

$ hostname
ubuntu

上面的命令将会告诉你,计算机的名字是ubuntu。

如何设置hostname

Hostname是在你第一次安装Linux的时候设置。其中有一个步骤Linux会让你输入主机名称的信息。不过,如果你愿意的话,你在之后设置也可以。

设置你的hostname,你可以使用下面的命令:

# hostname dev-machine

$ hostname
dev-machine

你需要使用root权限,或者等同root的权限来设置/修改你计算机的主机名。“#”标识证明你是root用户。上述命令把你的计算机主机名设置成为dev-machine。如果你没有收到任何报错信息,那么你的hostname已经改变了。再一次使用hostname命令检查,看看结果。

使用hostname命令设置你的hostname不是永久的。当你重启你的计算机,你的设定将会失效。为了永久改变,你必须手动修改hostname配置文件。

Debian / Ubuntu系的Linux

你可以在/etc/hostname和/etc/hosts文件夹中找到这个文件

下面是每一个文件的内容

/etc/hostname

# vi /etc/hostname
dev-machine

/etc/hosts

# vi /etc/hosts
127.0.0.1 localhost
127.0.0.1 dev-machine

你将会发现不用重启你的linux它就即刻生效。

RedHat / CentOS系的Linux

你可以在/etc/hosts和/etc/sysconfig/networks文件夹中找到这个文件。

下面是每一个文件的内容

/etc/hosts

127.0.0.1 localhost.localdomain localhost dev-machine
::localhost 127.0.0.1

/etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dev-machine

怎么显示DNS域名

来自上面的hostname的定义,hostname也可以显示你的Linux的DNS名字。如果你的hostname命令会显示你的hostname,那么dnsdomainname命令也就会显示你的域名。来看看这个简单的例子。

$ dnsdomainname
bris.co.id

在本篇文章,dnsdomainname命令的结果是bris.co.id。

如果你看见结果是 (none),那么你的机器没有配置FQDN(Fully Qualified Domain Name 完全符合标准的域名)。dnsdomainname命令摘取来自/etc/hosts文件的信息。你应该配置它为FQDN格式。下面是一个简单的例子:

/etc/hosts

127.0.0.1 localhost.localdomain localhost dev-machine
::localhost 127.0.0.1
192.168.0.104 dev-machine.bris.co.id dev-machine

为了显示更多的细节,你可以使用参数-v

$ dnsdomainname -v
gethostname()=’dev-machine.bris.co.id’
Resolving ‘dev-machine.bris.co.id’ …
Result: h_name=’dev-machine.bris.co.id’
Result: h_aliases=’dev-machine’
Result: h_addr_list=’192.168.0.104’

如何显示hostname的更多细节信息

Hostname命令可以使用多个参数和一些别名,比如dnsdomainname命令就是它的一个别名。这些参数在每日操作中是有用的。下面这些命令的结果是基于/etc/hosts的上述配置。

显示IP地址

$ hostname -i
192.168.0.104

显示域名

$ hostname -d
bris.co.id

显示短主机名$ hostname -s dev-machine

这个命令将会产生与只输入hostname同样的结果

显示FQDN格式

$ hostname -f
dev-machine.bris.co.id

显示细节信息

所有的参数包括上述信息,都可以通过使用参数-v和-d来概括。让我们来看一个例子。

$ hostname -v -d
gethostname()=’dev-machine.bris.co.id’
Resolving ‘dev-machine.bris.co.id’ …
 Result: h_name=’dev-machine.bris.co.id’
Result: h_aliases=’dev-machine’
Result: h_addr_list=’192.168.0.104’ 
bris.co.id

觉得熟悉吗?没错,运行结果与上面提到的dnsdomainname -v命令式相同的。

Linux 系统中,设置主机名可以通过多种方式实现,其中最常见的是通过命令行工具 `hostnamectl` 进行设置,该工具属于 systemd 系统服务管理器的一部分。`hostnamectl` 命令可以用于查询更改系统的主机名、图标名、设备类型、部署环境以及地理位置信息[^2]。 ### 配置文件路径 尽管 `hostnamectl` 提供了一种交互式的方式来管理主机名,但系统的主机名最终会被写入 `/etc/hostname` 文件中。这个文件仅包含一个字符串,即系统的静态主机名。系统在启动时会读取此文件,并将其内容作为主机名应用到系统中。因此,该文件是设置主机名的核心配置文件之一。 ### 主机名设置示例 使用 `hostnamectl` 设置主机名的命令如下: ```bash hostnamectl set-hostname newhostname ``` 此命令将系统的主机名更改为 `newhostname`,同时会自动更新 `/etc/hostname` 文件的内容。如果需要验证更改是否成功,可以通过以下命令查看当前主机名: ```bash hostname ``` 或使用 `hostnamectl` 查看更详细的信息: ```bash hostnamectl status ``` ### 其他相关配置 除了主机名之外,`hostnamectl` 还允许设置其他与主机身份相关的属性,例如图标名、设备类型、部署环境地理位置。这些设置虽然不直接影响网络通信,但有助于在大型网络环境中更好地识别管理设备。 - **图标名**:用于图形界面中显示的主机图标名称。 ```bash hostnamectl set-icon-name newhostname-vm ``` - **设备类型**:定义主机的物理形态或用途,支持的取值包括 `desktop`、`laptop`、`server`、`tablet`、`handset`、`watch`、`embedded`、`vm` `container`。 ```bash hostnamectl set-chassis desktop ``` - **部署环境**:用于标识主机所处的开发、测试或生产等阶段,建议值包括 `development`、`integration`、`staging` `production`。 ```bash hostnamectl set-deployment development ``` - **地理位置**:提供主机所在物理位置的描述,例如数据中心的具体位置。 ```bash hostnamectl set-location "数据中心3楼E23机柜U7" ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值