在 Linux 系统中,主机名(hostname)是计算机在网络中的标识符,主要用于区分设备并支持多种网络服务。主机名可以是临时的,也可以是永久的,根据使用场景可以灵活选择。
文章目录
主机名是计算机或设备的逻辑名称,用于在网络中标识其身份。主机名在网络管理和服务配置中起着重要作用。
例如:
主机名通常分为以下两种类型:
my-server
,仅包含设备名称。my-server.example.com
。主机名通常由以下字符组成:
根据 RFC 1123,主机名最长可以达到 253 个字符,但实际中建议不超过 64 个字符以确保兼容性。
临时设置的主机名只在当前会话或系统运行期间有效。一旦系统重启,主机名会恢复到之前的状态。临时设置主机名的场景包括测试、临时调试等。
hostname
命令hostname
命令是最常用的工具之一,用于快速查看和更改主机名。步骤:hostname
示例输出:
my-old-host
sudo hostname <新主机名>
示例:
sudo hostname my-temp-host
hostname
命令确认更改是否成功:hostname
输出结果应为 my-temp-host
。hostname
命令更改主机名后,许多服务可能不会立即识别更改。如果需要立即生效,可以重启相关服务。/proc/sys/kernel/hostname
/proc
,其中 /proc/sys/kernel/hostname
文件存储当前的主机名。步骤:cat /proc/sys/kernel/hostname
echo
命令直接更改:echo "my-temp-host" | sudo tee /proc/sys/kernel/hostname
/proc/sys/kernel/hostname
文件内容:cat /proc/sys/kernel/hostname
永久设置主机名需要修改配置文件或使用系统管理工具。此类设置在系统重启后仍然有效,通常用于生产环境或长期需要的设备。
hostnamectl
命令hostnamectl
是 systemd 提供的管理工具,可用于永久更改主机名,同时支持设置静态主机名、临时主机名和转译主机名。步骤:hostnamectl
示例输出:
Static hostname: my-old-host
Transient hostname: n/a
Pretty hostname: n/a
sudo hostnamectl set-hostname <新主机名>
示例:
sudo hostnamectl set-hostname my-permanent-host
hostnamectl
查看新主机名:hostnamectl
/etc/hosts
文件/etc/hosts
文件,确保主机名解析正确:sudo nano /etc/hosts
将旧主机名替换为新主机名。例如:
127.0.1.1 my-permanent-host
sudo systemctl restart systemd-hostnamed
对于非 systemd 系统(如某些较老的 Linux 发行版),可以手动编辑配置文件。
步骤:/etc/hostname
文件/etc/hostname
文件:sudo nano /etc/hostname
将文件内容替换为新主机名,例如:
my-permanent-host
/etc/hosts
文件/etc/hosts
文件:sudo nano /etc/hosts
更新文件中指向主机名的行,例如:
127.0.0.1 localhost
127.0.1.1 my-permanent-host
sudo reboot
sudo
),普通用户无法直接更改。hostnamectl
。hostname
、hostnamectl
命令以及编辑配置文件,可以高效地完成主机名的设置和管理。