在Linux和Unix-like系统中,时间同步是确保系统日志、分布式任务调度、安全认证等关键功能正常运行的基础,时间同步的命令主要依赖于网络时间协议(NTP)及其简化版本,通过这些命令可以将系统时间与标准时间源对齐,避免因时间偏差导致的问题,以下将详细介绍常用的时间同步命令及其使用方法、参数配置和注意事项。

date命令:手动调整系统时间
date命令是最基础的时间查看和设置工具,虽然不直接用于网络同步,但常用于手动校准时间或验证时间同步结果。
基本用法:
- 查看当前系统时间:
date - 设置系统时间(需root权限):
date -s "2024-05-20 14:30:00" - 查看UTC时间:
date -u
注意事项:手动设置的时间重启后会失效,且可能与硬件时间不同步,需配合hwclock命令(hwclock --systohc将系统时间写入硬件时钟)使用。
ntpdate命令:快速同步时间(已废弃)
ntpdate是早期用于NTP同步的简单工具,通过向NTP服务器发送请求并调整系统时间。
基本用法:
ntpdate -u ntp.aliyun.com # 指定阿里云NTP服务器同步
参数说明:

-u:使用UDP模式(避免防火墙阻塞)-q:仅查询不同步,测试服务器延迟
废弃原因:ntpdate属于“跳跃式同步”,直接跳变系统时间,可能影响依赖稳定时间的应用,现代系统推荐使用chrony或ntpd。
ntpd服务:平滑同步时间(守护进程)
ntpd是NTP的守护进程,通过持续微调系统时间,实现平滑同步,适合长期运行的系统。
安装与配置:
- 安装:
yum install ntp -y(CentOS/RHEL)或apt install ntp -y(Debian/Ubuntu) - 编辑配置文件
/etc/ntp.conf,添加或修改服务器地址:server ntp.aliyun.com iburst server time.windows.com iburstiburst参数表示首次同步时快速交换数据包。 - 启动服务:
systemctl start ntpd,并设置开机自启:systemctl enable ntpd
常用命令:

- 查看同步状态:
ntpq -p
输出表格中包含remote(服务器地址)、refid(参考时钟源)、st(层级)、when(上次同步时间)、poll(查询间隔)、reach(可达性)等列。 - 强制同步:
ntpd -gq(-g允许时间跳变,-q退出后停止服务)
特点:ntpd会根据网络延迟逐步调整时间,避免突变,但对系统时间精度要求较高时,需确保内核参数/proc/sys/x86/rtc_max_drift配置合理。
chrony服务:高效时间同步(推荐)
chrony是比ntpd更轻量、更高效的同步工具,尤其适合在网络不稳定或虚拟化环境中使用。
安装与配置:
- 安装:
yum install chrony -y或apt install chrony -y - 编辑
/etc/chrony/chrony.conf:server ntp.aliyun.com iburst server time.windows.com iburst allow 192.168.1.0/24 # 允许局域网内其他设备同步(可选) - 启动服务:
systemctl start chronyd,systemctl enable chronyd
常用命令:
- 查看同步状态:
chronyc tracking
输出包含System time(系统时间偏差)、Last offset(上次调整量)、RMS offset(均方根偏差)等。 - 查看服务器列表:
chronyc sources -v - 手动同步:
chronyc -a makestep(强制调整时间)
优势:chrony对网络延迟和抖动更敏感,同步速度更快,且支持硬件时钟同步(chronyc -a burst)。
timedatectl命令:控制 systemd 时间服务
timedatectl是systemd提供的时间管理工具,可统一控制NTP服务、硬件时钟等。
基本用法:
- 查看时间状态:
timedatectl status - 启用NTP同步:
timedatectl set-ntp true - 设置时区:
timedatectl set-timezone Asia/Shanghai - 禁用NTP:
timedatectl set-ntp false
注意事项:启用timedatectl的NTP功能后,系统会自动优先使用chronyd或ntpd,无需手动管理服务。
Windows系统时间同步命令
Windows系统可通过命令行同步时间,主要依赖w32tm工具。
基本用法:
- 同步时间:
w32tm /resync /force - 查看时间源:
w32tm /query /status - 配置时间源:
w32tm /config /syncfromflags:manual /manualpeerlist:"time.windows.com" - 重启时间服务:
net stop w32time && net start w32time
默认配置:Windows会自动从time.windows.com同步,但可通过组策略修改默认时间源。
时间同步的最佳实践
- 选择合适的时间源:
- 公共NTP服务器:如阿里云(
ntp.aliyun.com)、NTP Pool(pool.ntp.org)。 - 内部NTP服务器:企业环境建议搭建本地NTP服务器,减少对外部依赖。
- 公共NTP服务器:如阿里云(
- 避免频繁同步:
ntpd和chrony会自动调整同步频率,手动触发(如ntpdate)可能增加服务器负载。 - 防火墙配置:确保NTP端口(UDP 123)开放,避免同步失败。
- 虚拟化环境:虚拟机建议使用
chrony,并开启时钟同步功能(如VMware的tools)。
相关问答FAQs
Q1: 为什么使用chrony而不是ntpd?
A: chrony在网络不稳定或高延迟环境下表现更优,同步速度更快,且资源占用更低,它支持硬件时钟同步,适合虚拟机和容器化环境,而ntpd同步过程较保守,对时间精度要求极高的场景(如金融交易)仍可使用,但现代系统推荐优先选择chrony。
Q2: 如何确认时间同步是否成功?
A: 可通过以下方式验证:
- Linux系统:运行
chronyc tracking查看Last offset值(理想情况下应接近0),或ntpq -p检查reach列是否为377(八进制,表示所有同步包均收到)。 - Windows系统:执行
w32tm /query /status,查看Source是否为配置的时间服务器,以及Skew值(时间偏差)是否在毫秒级。 - 跨主机验证:在不同主机上执行
date命令,对比时间差异是否在可接受范围内(如±1秒)。
