NTP时间同步设置方法

对于分布式系统的运转而言,各个分布式的实体基于同一时间标准是必要条件,如果各个分布式实体的时间标准不统一,整个系统必然分崩离析。下面介绍在不同操作系统平台设置 NTP 客户端的方法。

Windows平台

  • 设置 NTP 时间服务器
1
2
3
4
5
打开日期和时间设置

找到Internet时间设置

选择NTP服务器并同步
  • 调整时间同步频率
1
2
3
4
5
打开注册表编辑器(regedit)。

导航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient。

找到名为 SpecialPollInterval 的DWORD值,双击打开,在“数值数据”中填入期望的同步间隔(以秒为单位)即可调整同步频率。

注意: SpecialPollInterval 值的设置必须在位于 MinPollInterval 和 MaxPollInterval 之间,否则 NTP 客户端不会按 SpecialPollInterval 预期同步。具体请参考:京准电钟课堂:NTP时钟同步时客户端未按预期同步

Linux平台

chrony 既可作时间服务器服务端,也可作客户端。性能比 ntp 好,且配置管理方便。chrony 由两个程序组成,分别是 chronyd 和 chronyc。chronyd 是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。chronyc 提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在 chronyd 实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

以 NTP 工具 Chrony 为例,具体步骤如下:

  • 安装chrony
1
2
3
4
5
6
7
8
9
10
11
# 查看 chrony 依赖的包
apt-cache depends chrony

# 安装chrony,观察chrony依赖的包
sudo apt-get install chrony

# 下载 chrony及其依赖包
apt-get download chrony

# 离线安装chrony
sudo dpkg -i *.deb
  • 修改配置文件 /etc/chrony/chrony.conf
1
2
# 注释默认的 NTP 服务器pool,配置上级时间服务器
server 192.168.1.30 iburst
  • 重启chrony服务
1
2
3
4
5
6
7
8
9
10
11
# 获取 chronyd 的PID
pgrep chronyd

# 直接终止(推荐)
kill <chronyd的PID>

# 强制终止(如果进程没有响应)
kill -9 <chronyd的PID>

# 启动 chronyd
sudo chronyd
  • 查看并等待与NTP服务器同步
1
2
3
4
# 确保你的chrony服务器自身已经成功与上层服务器同步。可以通过 chronyc sources 命令检查,服务端需要先成功同步时间,才能为客户端提供同步服务, NTP服务器前设置 ^* 表示已与该服务区时钟同步。

chronyc sources -v
chronyc sourcestats -v
  • 手动同步NTP客户端时间
1
sudo chronyc -a makestep

参考链接

  1. NTP协议学习笔记,by jackhaung.
  2. WINDOWS 10如何配置NTP服务(Server&Client),by 胡浪波.
  3. windows系统时间同步及同步频率设置,by li88811.
  4. 第三章:ubuntu 24.04.1 ntp服务安装,by 王小二.
  5. Ubuntu部署NTP服务器和客户端,by lsgxeva.
  6. 京准电钟课堂:NTP时钟同步时客户端未按预期同步 , by 安徽京准2024.