麒麟操作系统必须将时区设为asia/shanghai,推荐用sudo timedatectl set-timezone asia/shanghai命令配置,可自动加载中国无夏令时规则(+0800),图形界面和手动软链接为备选方案。

timedatectl 是 CentOS 7 修改时区和管理时间同步的首选工具,它直接对接 systemd,比手动替换 /etc/localtime 更可靠、可逆,且能联动 NTP 状态。
用 timedatectl set-timezone 设置时区
这是最安全、推荐的第一步。系统会自动更新 /etc/localtime 符号链接,并通知内核和用户空间进程刷新时区规则。
- 查看当前时区:
timedatectl | grep "Time zone" - 列出所有可用时区(支持模糊搜索):
timedatectl list-timezones | grep -i shanghai - 设置为北京时间:
sudo timedatectl set-timezone Asia/Shanghai - 验证是否生效:
date输出应显示 CST(UTC+8),且timedatectl中 “Time zone” 行确认无误
注意:不要手动 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime —— 这种方式绕过 systemd,可能导致 timedatectl 状态显示异常,或在某些 systemd 版本中被后续操作覆盖。
启用或禁用 NTP 同步(chronyd)
CentOS 7 默认使用 chronyd 而非 ntpd。NTP 同步功能是否开启,和时区设置是两件事;但只有时区正确,同步后的时间才显示为你期望的本地时间。
- 检查 NTP 是否启用:
timedatectl | grep "NTP enabled"(注意不是 “NTP service”,那是旧版 ntpd 的表述) - 启用 NTP 同步:
sudo timedatectl set-ntp true—— 此命令会自动启动并启用chronyd服务 - 禁用 NTP 同步:
sudo timedatectl set-ntp false - 验证 chronyd 状态:
systemctl is-active chronyd和systemctl is-enabled chronyd
如果执行 set-ntp true 后状态没变,大概率是 chronyd 未安装,需先运行 sudo yum install chrony -y。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
chrony.conf 配置常见错误点
默认配置通常够用,但若服务器在内网或对精度要求高,需要调整配置文件 /etc/chrony.conf。容易出问题的地方集中在 server 行和 iburst 使用上:
- 必须以
server开头,不能写成pool或漏掉iburst—— 否则首次同步可能极慢甚至失败 - 推荐国内源(低延迟):
server ntp1.aliyun.com iburst、server ntp.ntsc.ac.cn iburst - 避免混用
ntpd和chronyd:如果之前装过ntpd,务必先sudo systemctl stop ntpd && sudo systemctl disable ntpd,否则端口(123/UDP)冲突会导致 chronyd 启动失败 - 改完配置后必须重启:
sudo systemctl restart chronyd,仅 reload 不生效
验证同步效果:chronyc tracking 查看“Offset”是否在毫秒级,chronyc sources -v 确认至少有一行标记为 *(当前主源)。
硬件时钟(RTC)要不要设为本地时间?
绝大多数场景下,不要把硬件时钟设为本地时间(即 sudo timedatectl set-local-rtc true)。
- Linux 内核默认假设 RTC 存的是 UTC 时间,然后根据时区换算显示——这是标准做法,兼容性最好
- 设为本地时间后,双系统(如 Windows + CentOS)会出现时间错乱:Windows 默认把 RTC 当作本地时间,而 Linux 又把它当本地时间再加时区,结果快 8 小时
- 只有极少数嵌入式或特殊 BIOS 场景才需要该设置,普通服务器请保持默认(
Local time: no)
真正关键的是:确保 timedatectl set-ntp true 启用后,chronyd 持续运行,且 timedatectl set-timezone 已设对——其余都是自然发生的后台行为,无需干预。










