在Linux系统中,时钟同步是确保系统时间准确的重要操作,尤其对于日志记录、定时任务、安全认证等依赖时间准确性的场景至关重要,Linux时钟同步主要依赖网络时间协议(NTP)及其简化版本网络时间安全协议(NTS),通过内置工具或第三方服务实现时间校准,以下是常用的时钟同步命令及相关操作详解。

基础时钟同步命令
date命令:手动调整时间
date命令是Linux中最基础的时间查看与设置工具,可用于手动调整系统时间,但需注意手动调整可能导致时间跳跃,影响依赖时间的服务。
查看当前时间:
date
输出示例:
2023年 10月 12日 星期四 10:15:30 CST手动设置时间(需root权限):
(图片来源网络,侵删)date --set="20231012 101530" # 格式:YYYYMMDD HHMMSS
此命令仅修改系统时间,不会同步硬件时钟(RTC),重启后可能恢复原值。
hwclock命令:同步硬件时钟
硬件时钟(RTC)是主板上的独立时钟,即使系统关闭也会运行。hwclock用于同步系统时间与硬件时钟,确保时间持久化。
- 查看硬件时钟时间:
hwclock --show
- 系统时间同步到硬件时钟:
hwclock --systohc # 常用,确保关机后时间不丢失
- 硬件时钟同步到系统时间:
hwclock --hctosys
NTP自动同步工具
ntpd:NTP守护进程(持续同步)
ntpd是NTP协议的官方实现,适合需要高精度、持续同步的场景(如服务器),它以低优先级后台运行,逐步调整时间,避免时间突变。
- 安装ntpd(以CentOS为例):
yum install ntp -y # RedHat系 apt install ntp -y # Debian系
- 配置NTP服务器:编辑
/etc/ntp.conf,添加或修改以下内容:server 0.cn.pool.ntp.org # 中国NTP服务器 server 1.cn.pool.ntp.org server 2.cn.pool.ntp.org server 3.cn.pool.ntp.org - 启动并设置开机自启:
systemctl start ntpd systemctl enable ntpd
- 查看同步状态:
ntpq -p # 显示与NTP服务器的连接状态和偏差
ntpdate:一次性同步工具(已逐渐弃用)
ntpdate是早期的NTP客户端,通过简单命令快速同步时间,但ntpd已推荐替代它,且部分系统(如CentOS 8+)默认不再安装。

- 安装ntpdate:
yum install ntpdate -y
- 同步指定服务器时间:
ntpdate -u pool.ntp.org # -u参数避免端口占用
- 同步后更新硬件时钟:
hwclock --systohc
chrony:高效时间同步工具(推荐)
chrony是新一代时间同步工具,相比ntpd具有更快的同步速度和对网络抖动的更强适应性,适合虚拟机和动态环境。
- 安装chrony(CentOS 7+/Ubuntu 18.04+推荐):
yum install chrony -y # RedHat系 apt install chrony -y # Debian系
- 配置chrony:编辑
/etc/chrony.conf,设置NTP服务器:server 0.cn.pool.ntp.org iburst # iburst加速初始同步 - 启动并自启:
systemctl start chronyd systemctl enable chronyd
- 查看同步状态:
chronyc sources -v # 显示时间源状态 chronyc tracking # 查看同步精度和偏差
常用NTP服务器地址
| 地区 | 推荐NTP服务器地址 |
|---|---|
| 中国 | cn.pool.ntp.org, 1.cn.pool.ntp.org |
| 全球 | pool.ntp.org, time.windows.com |
| 教育网 | ntp.edu.cn, s1a.time.edu.cn |
FAQs
Q1:为什么使用chrony而非ntpd?
A:chrony在初始同步速度、网络延迟适应性(如高延迟或丢包环境)和资源占用上更优,尤其适合虚拟化场景(如VMware、K8s集群),而ntpd更适合对时间精度要求极高(如金融交易)的物理服务器环境,但同步速度较慢,当前主流Linux发行版(如RHEL 8、Ubuntu 20.04)已默认推荐chrony。
Q2:如何检查时间同步是否成功?
A:可通过以下命令验证:
date命令:查看当前系统时间是否与标准时间一致(如通过浏览器搜索“当前时间”对比)。ntpq -p或chronyc sources:若输出中reach列显示377(8位二进制全1),表示与NTP服务器同步成功;st列(stratum)越小(通常为1-5),表示时间源越可靠。timedatectl(systemd系统):timedatectl status可查看“NTP服务”是否为“活跃”,以及“本地时间”与“世界协调时间(UTC)”是否同步。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/475987.html<
