通过 ntp 同步各服务器之间的时间

208次阅读
没有评论

共计 2070 个字符,预计需要花费 6 分钟才能阅读完成。

简介

ntp 是用于计算机网络中时间同步的协议,确保所有连接的设备都使用统一的时间标准。

linux 中实现 ntp 同步的工具有很多种,如 ntpd、chrony、systemd-timesyncd、ntpdate 等。

  • ntpd: 传统的 NTP 服务,适合需要长时间运行和精确同步的环境。

  • chrony: 更现代的 NTP 实现,适合虚拟机和动态网络环境,支持更快的时间同步。

  • systemd-timesyncd: systemd 中的轻量级时间同步工具,适用于普通用户和简单的环境。

  • ntpdate: 手动同步工具,适合偶尔需要同步时间的场景。

chrony

安装

这里通过搭建 chrony 实现时间同步。

首先,不管是客户端还是服务器都可以先安装 chrony,命令如下:

sudo apt install -y chrony

接下来可以看见配置文件/etc/chrony/chrony.conf如下:

# 启动时加载 /etc/chrony/conf.d 目录中的配置文件。
confdir /etc/chrony/conf.d

# 设置NTP服务器池
pool ntp1.aliyun.com iburst

# 用于从 DHCP 配置中获取时间源
sourcedir /run/chrony-dhcp

# 额外的时间源配置文件
sourcedir /etc/chrony/sources.d

# NTP 身份验证密钥对的文件路径。
keyfile /etc/chrony/chrony.keys

# 记录系统时钟的漂移情况
driftfile /var/lib/chrony/chrony.drift

# 将 NTS(Network Time Security)密钥和 cookie 存储在这个目录中。
ntsdumpdir /var/lib/chrony

# 记录时钟跟踪、测量和统计信息到日志文件中
# Log files location.

# 指定 Chrony 日志文件的存储位置。
logdir /var/log/chrony

# 如果时钟偏差超过 100 秒,放弃同步尝试。
maxupdateskew 100.0

# 将系统时间与硬件时钟同步,每 11 分钟同步一次
rtcsync

# 如果系统时钟的偏差大于 1 秒,Chrony 会强制调整时钟,而不是慢慢调整。并且,这个调整只会在前 3 次更新中进行。
makestep 1 3

# 按照 UTC 时间标准来处理闰秒。如果你使用的是时间源,且其时间中已经包括了闰秒(例如某些时间源会进行 leap smear),则需要禁用该指令。
leapsectz right/UTC

# 该指令表示允许所有主机访问和同步系统时间。
allow all

服务端配置

这里取决于服务端是否连接外网,如果可以连接则使用外网同步源,否则使用本地时间。

pool 2.debian.pool.ntp.org iburst

类似的内容修改为:

server ntp1.aliyun.com iburst

或者:

server 127.127.1.1
local stratum 10

客户端配置

同样将配置修改为服务器地址即可。

server ntp服务器ip

chronyc

chronyd 是 chrony 的守护程序,负责与远程时间服务器同步计算机的时钟。它是运行在后台的服务,处理时间同步的核心任务。

chronyc 则是命令行客户端工具,用于与正在运行的 chronyd 服务进行交互。它允许用户查看时间同步状态、修改设置、控制同步过程等。

使用方式如下:

  • 查看当前同步状态
chronyc tracking
  • 强制手动同步时间
chronyc makestep
  • 查看时间源的状态
chronyc sources
  • 查看当前的时钟偏差
chronyc sourcestats

ntp

ntp 与 chrony 一样,也是分为守护程序 ntpd 和命令行工具 ntpq。上面之所以使用 chrony 是因为尝试过使用 ntp 搭建服务端使用本地时间总是不成功。

ntpq 命令使用方式如下:

  • 列出当前 NTP 服务器的状态
ntpq -p

systemd-timesyncd

systemd-timesyncd 是一个简易的时间同步客户端。

通过修改 /etc/systemd/timesyncd.conf 文件可以指定 ntp 服务器:

[Time]
NTP=ntp1.aliyun.com
# 设置备用 NTP 服务器地址,这些服务器会在主服务器不可用时使用。
#FallbackNTP=ntp.ubuntu.com
# 设置最大根时距,确保系统只与延迟较低的服务器同步。
#RootDistanceMaxSec=5
# 设置同步请求的最小和最大间隔,以确保同步过程平稳且不会频繁发送请求。
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
  • 查看同步状态
timedatectl status

ntpdate

ntpdate 是服务器同步系统时间的命令行工具,使用方式如下:

  • 手动设置系统时间
sudo ntpdate -u ntp1.aliyun.com
  • 强制时间同步
ntpdate -b ntp1.aliyun.com
  • 显示调试信息
ntpdate -d ntp1.aliyun.com
  • 查看当前时间是否同步
ntpdate -q ntp1.aliyun.com
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完
 0
阿蛮君
版权声明:本站原创文章,由 阿蛮君 于2025-04-12发表,共计2070字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
Copyright © 2023-2025 阿蛮君博客 湘ICP备2023001393号
本网站由 亿信互联 提供云计算服务 | 又拍云CDN 提供安全防护和加速服务
Powered by Wordpress  Theme by Puock