优秀网站设计平台,asp.net做网站步骤,龙岗网络营销网站制作哪里好,宿松县住房和城乡建设局网站linux下NTP服务器实战(chrony软件)
记录linux下NTP服务器搭建及相关管理操作#xff0c;使用chrony软件包安装部署。相比ntp服务#xff0c;Chrony服务适用于更高精度、更高稳定性、自动化等场景。
1. 安装 chrony
在大多数Linux发行版上#xff0c;chrony可以通过包管理…linux下NTP服务器实战(chrony软件)
记录linux下NTP服务器搭建及相关管理操作使用chrony软件包安装部署。相比ntp服务Chrony服务适用于更高精度、更高稳定性、自动化等场景。
1. 安装 chrony
在大多数Linux发行版上chrony可以通过包管理器直接安装。 CentOS/RHEL: sudo yum install chrony # CentOS 7 及之前的版本
sudo dnf install chrony # CentOS 8 和 FedoraUbuntu/Debian: sudo apt install chronychrony 守护进程的默认位置为 /usr/sbin/chronyd。命令行工具将安装到 /usr/bin/chronyc。
2. 配置chrony
chrony的配置文件通常位于/etc/chrony.conf。要将机器配置为NTP服务器需进行如下修改
编辑 /etc/chrony.conf 文件
sudo vim /etc/chrony.conf允许网络客户端访问 找到并修改或添加以下配置允许特定网段或所有网络客户端访问 allow 192.168.0.0/24 # 允许指定网段访问
allow all # 允许所有客户端访问选择上游时间源 可以设置NTP服务器来同步本地时间。以下是一些常用的NTP服务器 server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst设置NTP服务器为本地时间主机 如果此NTP服务器在不与外界同步的情况下应保持提供时间服务可以启用本地时间作为时间源 local stratum 10这里设置的stratum值较高以避免本地时间被优先用于其他时间服务器。
配置文件示例
[rootntp ~]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.210.10.220 iburst
# 指定了一个 NTP 服务器的地址10.210.10.220。iburst 选项使得当客户端第一次与服务器进行通信时如果无法立即建立连接客户端会发送一组加速的请求通常为 4 个包以加快与时间服务器的同步速度。# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# driftfile 参数指定了存储系统时钟漂移数据的文件。系统定期测量其内部时钟的漂移增快或减慢的速率并记录到该文件中这可以帮助 chrony 更好地调整系统时钟。# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# 允许在前 3 次时间更新时如果系统时钟的偏差超过 1 秒chrony 可以直接调整系统时钟而不是渐进调整。这在系统启动后可以快速纠正较大的时间偏差。# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# 启用内核的 RTC实时时钟同步。当系统时钟与 NTP 服务器同步时内核会自动同步硬件时钟通常是 BIOS 中的时钟与系统时钟以确保即使系统关机硬件时钟也能保持准确。# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# 这一行被注释掉了。如果启用将会在所有支持硬件时间戳的网络接口上启用硬件时间戳。硬件时间戳可以提高网络延迟的精确度尤其是在处理非常精确的时间同步时。# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# 如果启用将设置系统调整时钟时所需的最少可用时间源数目为 2。这有助于确保同步的时间更为可靠。# Allow NTP client access from local network.
# allow 192.168.0.0/16 # 允许特定的网络范围如 192.168.0.0/16内的客户端访问本地 NTP 服务。
# 默认情况下远程的 NTP 客户端是无法与该 chrony 服务器进行时间同步的。需要通过 allow 指令明确地允许特定的网络范围或 IP 地址进行时间同步。
allow all # 允许所有客户端同步时间。
# Serve time even if not synchronized to a time source.
#local stratum 10
# 如果启用即使本机没有与外部时间源同步也会向网络上的其他设备提供时间服务并将本地服务器的 stratum 设置为 10即优先级较低的时间源。# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys
# 如果启用它会指定一个包含 NTP 身份验证密钥的文件。这用于在服务器和客户端之间进行身份验证确保同步时间的安全性。# Specify directory for log files.
logdir /var/log/chrony
# logdir 参数指定了 chrony 写日志的目录路径。在这里日志文件将存储在 /var/log/chrony 目录下。 # Select which information is logged.
#log measurements statistics tracking
# 如果启用chrony 会记录测量值、统计信息以及时间跟踪等详细日志信息。3. 启动chrony服务
保存配置文件后启动并启用chrony服务
sudo systemctl start chronyd
sudo systemctl enable chronyd4. 检查NTP服务状态
确认chrony正在运行并同步时间
chronyc tracking此命令会显示本地系统与NTP服务器的同步状态。
5. 客户端配置
在客户端机器上确保chrony或ntpd安装完成并且配置好指向你的NTP服务器
编辑客户端的/etc/chrony.conf或/etc/ntp.conf添加你的NTP服务器IP地址
server NTP服务器的IP地址 iburst保存后重启客户端的chronyd或ntpd服务
sudo systemctl restart chronyd # 或 ntpd6. 验证同步
在客户端上可以通过以下命令检查是否与服务器同步
chronyc sources这会列出当前的时间源确保NTP服务器显示为活动时间源。
示例输出
210 Number of sources 4
MS Name/IP address Stratum Poll Reach LastRx Last sample^- time1.google.com 1 6 377 48 -176us[ -199us] /- 15ms
^* time2.google.com 1 6 377 47 245us[ 220us] /- 13ms
^- time3.google.com 1 6 377 47 -310us[ -332us] /- 16ms
^ time4.google.com 1 6 377 48 129us[ 105us] /- 14ms
[rootdns ~]# chronyc sources
210 Number of sources 1
MS Name/IP address Stratum Poll Reach LastRx Last sample^* 10.210.10.45 5 6 37 15 18us[1062us] /- 11ms字段解释 MS: 这列表示当前时间源的状态标记。 ^ 表示该时间源是NTP服务器。* 表示当前使用的时间源同步的主源。 表示备用时间源可能被选为候选同步源。- 表示被排除的时间源当前不会同步该时间源。 表示该时间源是peer节点。?表示该服务器的状态未知可能无法到达或正在等待响应。x表示该时间源的时间可能有错误因此不能被信任。~表示该时间源的时间变化太大波动性过高无法稳定同步。 Name/IP address: 这是时间源的主机名或IP地址。它显示的是你系统上配置的时间源。 Stratum: NTP层级值表示时间源的层次。stratum越低时间源越靠近参考时钟例如原子钟。本地时钟通常会被设置为较高的stratum值如15表示优先级较低。 Poll: 表示轮询间隔单位是秒的对数2^Poll。在这个示例中值6表示当前的轮询间隔是2^6 64秒。 Reach: 这是一个八位的二进制数值表示最近的查询是否成功。377的十六进制表示是11111111表示最近8次查询全部成功。 LastRx: 上次接收到NTP服务器响应的时间单位是秒。 Last sample: 该列表示时间偏差时间源与本地时钟的差异和误差范围 245us[ 220us]表示偏差为245微秒括号内表示的是过滤后的估计值220微秒。/- 13ms这是该时间源的误差范围。
7. chronyc相关命令 chronyc tracking chronyc 跟踪查看本地系统的时间同步状态包括与时间源的偏差、同步源的 stratum 层级、本地时钟漂移等信息。输出示例Reference ID : 203.0.113.1 (ntp.example.com)
Stratum : 3
Ref time (UTC) : Tue Aug 29 12:00:00 2024
System time : 0.000000001 seconds fast of NTP time
Last offset : -0.000000002 seconds
RMS offset : 0.000000003 seconds
Frequency : 12.345 ppm slow
Residual freq : -0.001 ppm
Skew : 0.005 ppmchronyc sources 显示当前配置的所有时间源的信息包括其状态、stratum 层级、延迟、偏差等。输出示例MS Name/IP address Stratum Poll Reach LastRx Last sample^* ntp.example.com 2 6 377 30 -240us[ -310us] /- 16ms
^ ntp2.example.com 2 6 377 31 -124us[ -154us] /- 12ms可以指定可选的 -v 参数来打印更详细的信息。在这种情况下会输出额外的标头行显示字段含义的信息。 chronyc sourcestats 显示时间源的统计信息包括标准偏差、延迟等。输出示例Name/IP Address NP NR Span Frequency Freq Skew Offset Std Devntp.example.com 12 6 198 0.000 0.005 12ns 16us可以使用可选参数 -v 来包括详细信息。在这种情况下会输出额外的标头行显示字段含义的信息。 chronyc ntpdata 查看与某个特定时间源的NTP数据包括该源的stratum、延迟、偏差、抖动等详细信息。用法chronyc ntpdata ntp.example.comchronyc sources -v 以详细模式显示时间源的信息。输出示例210 Number of sources 2
MS Name/IP address Stratum Poll Reach LastRx Last sample^* ntp.example.com 2 6 377 30 -240us[ -310us] /- 16ms
^ ntp2.example.com 2 6 377 31 -124us[ -154us] /- 12mschronyc activity 显示当前chrony服务的活动状态如使用的时间源数量、已处理的请求数量等。命令chronyc activitychronyc makestep 强制进行时间跳步校正。适用于时间偏差较大通常大于 1 秒的情况。命令chronyc -a makestepchronyc waitsync 等待本地系统与NTP源同步完成通常用于系统启动时确保时间已同步。命令chronyc waitsyncchronyc clients 显示已连接到此 NTP 服务器的客户端信息。命令chronyc clientschronyc serverstats 显示当前NTP服务器的统计信息包括已处理的NTP请求数量、拒绝的请求数量等。命令chronyc serverstatschronyc add server server_ip 动态添加一个新的NTP服务器作为时间源。命令chronyc add server ntp.example.com iburstchronyc delete server server_ip 动态删除一个时间源。命令chronyc delete server ntp.example.com说明 动态修改不会永久保存重启 Chrony 后会丢失。要永久更改请编辑配置文件。 8. ntp服务与chrony服务对比
Chrony服务和NTP服务对比
时间同步服务使用场景时间同步精度稳定性简介Chrony服务适用于高精度、高稳定性、自动化等场景。较高能够更好地适应高延迟和不稳定的网络环境。Chrony是一个实现网络时间协议NTP的软件包用于同步计算机的系统时间与世界各地的NTP服务器。Chrony特别适合在变化的网络环境中运行能够以快速和高效的方式调整系统时间。更多信息请参见Chrony。NTP服务适用于大多数无需太高精度要求的普通场景。正常仅能适应一定程度的网络不稳定。NTP是一种经典的时间同步服务是NTP协议的一个实现。NTP适用于长期运行的服务器特别是在网络条件比较稳定的环境下。更多信息请参见NTP。
ntp服务文件和chrony服务文件对比
ntp namechrony name/etc/ntp.conf/etc/chrony.conf/etc/ntp/keys/etc/chrony.keysntpdchronydntpqchronycntpd.servicechronyd.servicentp-wait.servicechrony-wait.service
将ntp服务器迁移到chrony服务器
在chrony包/usr/share/doc/chrony的文档中包含了一个名为ntp2chrony.py的Python脚本。该脚本用于自动将现有的NTP配置转换为chrony配置。详情参考下面链接
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/configuring-time-synchronization_configuring-basic-system-settings#proc_migrating-to-chrony_using-chrony-to-configure-ntp
9. 相关资料
Chapter 18. Configuring NTP Using the chrony Suite | Red Hat Product Documentation