Linux hostname
命令详细教程
hostname
是 Linux 系统中用于管理和查看主机名的基础命令。主机名是系统在网络中的标识名称,用于区分不同设备。本文将详细介绍hostname
的用法、配置文件及相关操作。- 资料已经分类整理好:
https://pan.quark.cn/s/26d73f7dd8a7
一、基本概念
- 主机名(Hostname):设备在本地网络中的唯一名称(如
server1
)。 - FQDN(Fully Qualified Domain Name):包含域名的完整名称(如
server1.example.com
)。 - 静态主机名:存储在配置文件中,系统启动时加载。
- 临时主机名:通过命令临时设置,重启后失效。
二、基本语法
hostname [选项] [参数]
- 核心功能:
- 查看当前主机名(无参数时)。
- 设置临时或永久主机名(需管理员权限)。
三、常用选项
选项 | 功能描述 |
---|---|
-a |
显示别名(A liases),对应 /etc/hosts 中的别名 |
-d |
显示域名(D omain),从 FQDN 中提取 |
-f |
显示完整域名(F QDN) |
-i |
显示主机的 IP 地址(I P address) |
-s |
显示短主机名(S hort),即 FQDN 的第一部分 |
-v |
显示详细操作信息(V erbose) |
--file 文件路径 |
从指定文件读取主机名 |
四、实际操作示例
1. 查看当前主机名
hostname # 输出:server1
2. 查看完整域名(FQDN)
hostname -f # 输出:server1.example.com
3. 查看主机 IP 地址
hostname -i # 输出:192.168.1.100
4. 设置临时主机名(重启后失效)
sudo hostname new-server # 立即生效,但重启后恢复原状
5. 永久修改主机名(适用于大多数 Linux 系统)
# 1. 修改当前临时主机名
sudo hostname new-server
# 2. 修改永久配置文件(不同系统位置可能不同)
sudo nano /etc/hostname # 将内容改为 new-server
# 3. 更新 /etc/hosts 文件(可选但推荐)
sudo nano /etc/hosts
# 将旧主机名替换为新主机名
# 示例:将 127.0.1.1 server1 改为 127.0.1.1 new-server
五、配置文件详解
1. /etc/hostname
- 作用:存储静态主机名,系统启动时读取。
- 示例内容:
server1
2. /etc/hosts
- 作用:本地主机名解析表,优先于 DNS。
- 示例内容:
127.0.0.1 localhost 127.0.1.1 server1 # 与 /etc/hostname 一致 192.168.1.5 db-server
3. /etc/host.conf
(可选)
- 作用:配置主机名解析顺序。
- 示例内容:
order hosts,bind # 先查找 /etc/hosts,再查询 DNS multi on # 允许多个主机名对应同一 IP
六、不同 Linux 发行版的差异
1. 基于 systemd 的系统(如 Ubuntu、CentOS 7+)
- 使用
hostnamectl
命令管理主机名:sudo hostnamectl set-hostname new-server # 同时更新临时和永久主机名
2. 旧版系统(如 CentOS 6)
- 修改
/etc/sysconfig/network
:HOSTNAME=new-server
3. Debian/Ubuntu 特殊配置
/etc/hostname
是唯一配置文件,修改后需重启或执行:sudo service hostname restart
七、验证主机名修改
修改主机名后,可通过以下方式验证:
查看当前主机名:
hostname # 应显示新主机名
查看完整域名:
hostname -f # 若 DNS 配置正确,应显示完整域名
ping 测试:
ping $(hostname) # 应能 ping 通本地
八、注意事项
主机名规范:
- 只能包含字母、数字、连字符(
-
),不能以连字符开头或结尾。 - 短主机名建议不超过 63 个字符。
- 只能包含字母、数字、连字符(
服务依赖:
- 修改主机名可能影响依赖旧主机名的服务(如 SSH、Docker),需重启相关服务。
网络配置:
- 确保
/etc/hosts
中本地 IP 与主机名一致,否则可能导致服务异常。
- 确保
云服务器:
- 云环境(如 AWS、Azure)可能有特殊的主机名管理机制,需参考提供商文档。
九、总结
hostname
是 Linux 系统中管理主机名的核心工具,关键操作可总结为:
- 查看主机名:
hostname
或hostname -f
- 临时修改:
sudo hostname new-name
- 永久修改:
- 修改
/etc/hostname
- 更新
/etc/hosts
- 重启或刷新服务(如
hostnamectl
或service hostname restart
)
- 修改
合理配置主机名是系统网络通信的基础,建议在部署新服务器时立即设置正确的主机名和域名解析。