阅读量:1
CentOS 主机名配置技巧
一、核心概念与查看方式
- 主机名在 Linux 中有三类:静态 Static(持久化,系统启动从**/etc/hostname**读取)、瞬态 Transient(运行时临时值,可能被 DHCP/mDNS 改写)、美观 Pretty(支持 Unicode,仅用于展示)。
- 常用查看命令:
- 查看所有类型:
hostnamectl status - 仅看某类:
hostnamectl status --static|--transient|--pretty - 快速查看:
hostname
- 查看所有类型:
- 提示:修改静态主机名后,/etc/hostname 会自动更新;但 /etc/hosts 不会自动更新,需要手动维护以避免本地解析异常。
二、按版本的高效做法
- CentOS 7/8/Stream(推荐用 systemd)
- 永久且立即生效:
hostnamectl set-hostname(等价于修改 /etc/hostname 并立即更新内核中的瞬态主机名)。 - 只改某一类:
hostnamectl set-hostname。--static|--transient|--pretty - 验证:
hostnamectl status或hostname。
- 永久且立即生效:
- CentOS 6(传统方式)
- 临时:
hostname(重启后失效)。 - 永久:编辑 /etc/sysconfig/network,设置
HOSTNAME=,然后reboot生效。
- 临时:
- 统一建议:无论版本,修改后同步检查并更新 /etc/hosts,确保本机短名与长名解析一致,避免应用或登录提示异常。
三、实用技巧与排错清单
- 不重启让变更在当前会话生效:执行
hostnamectl set-hostname后,注销并重新登录或新开终端即可看到新的提示符主机名。 - 避免本地解析问题:在 /etc/hosts 至少保证如下映射(示例):
127.0.0.1 localhost localhost.localdomain::1 localhost localhost.localdomain- 如本机有固定 IP,建议增加一行:
<本机IP>。
- 只改静态名不改瞬态名:
hostnamectl set-hostname(在 DHCP 环境下可避免被覆盖)。--static - 避免回退到旧值:若曾用
sysctl kernel.hostname=改过内核参数,后续以hostnamectl或写入 /etc/hostname 为准,避免多处配置不一致。 - 命名规范:使用符合域名规范的小写字母、数字、连字符(如
web-01.prod.example.com),避免下划线;美观名可用hostnamectl set-hostname "Dev Server" --pretty单独设置展示用名称。
四、一键标准化脚本示例
#!/usr/bin/env bash
set -Eeuo pipefail
NEW_HOST="$1"
[[ -z "$NEW_HOST" ]] && { echo "Usage: $0 " ; exit 1; }
# 设置静态主机名(立即生效,持久化)
hostnamectl set-hostname "$NEW_HOST"
# 备份并替换 /etc/hosts 中的旧主机名(若存在)
HOSTS=/etc/hosts
BACKUP=${HOSTS}.bak.$(date +%F-%T)
cp -a "$HOSTS" "$BACKUP"
# 简单策略:替换 127.0.0.1 与 ::1 行中的旧主机名;追加本机IP映射(可按需调整)
sed -i.bak "/^127\.0\.0\.1[[:space:]]/ s/\\<$(hostname)\\>/$NEW_HOST/g" "$HOSTS"
sed -i "/^::1[[:space:]]/ s/\\<$(hostname)\\>/$NEW_HOST/g" "$HOSTS"
# 可选:如本机有固定 IP,追加一行(示例 eth0,请按实际网卡名调整)
# IP=$(ip -4 addr show scope global | awk '/inet /{print $2; exit}' | cut -d/ -f1)
# [[ -n "$IP" ]] && ! grep -qE "^$IP[[:space:]]" "$HOSTS" && \
# echo "$IP $NEW_HOST $(hostname -d 2>/dev/null || echo '')" >> "$HOSTS"
echo "Hostname set to: $(hostname)"
echo "Backup created: $BACKUP"
echo "Please re-login or open a new terminal to see the updated prompt."
- 使用方式:
./set-hostname.sh web-01.prod.example.com - 说明:脚本仅做常见替换,生产环境请结合实际网卡名、FQDN 策略与内网 DNS 规划调整。
以上就是关于“centos hostname配置技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm