Linux(openEuler、CentOS8)基于chrony企业内网NTP服务器搭建实验
一、知识点
-
chrony 是由 守护进程 chronyd 以及 命令行工具 chronyc 组成的


-
chronyd 在后台静默运行并通过 123 端口与时间服务器定时同步时间,默认的配置文件是 /etc/chrony.conf
-
chronyc 通过 323 端口与 chronyd 交互,可监控 chronyd 的性能并在运行时更改各种操作参数,chronyc 通过下面的方式访问 chronyd(默认情况下,chronyc 先通过 Unix 域 socket 访问 chronyd,默认的 socket 文件是 /var/run/chrony/chronyd.sock, 如果失败-常见的原因是使用非 root 用户运行 chronyc ),将尝试通过 127.0.0.1 访问 chronyd
-
chrony默认情况下,不允许任何客户端访问,这意味着chronyd主要作为NTP客户端运行。当使用allow指令时(allow all允许所有<#如果写成0.0.0.0/24实验不通过>;allow 192.168.59.0/24 允许网段),chronyd将既是其服务器的客户端,又是其他客户端的服务器
-
chronyd常用命令说明
-
查看时间同步源状态:
chronyc sourcestats -v【-v是列出详细,可以不要】 -
强制同步时间:
chronyc makestep【这个命令会立即尝试将系统时间设置为 NTP 服务器的当前时间。请注意,这可能会导致系统时间突然跳跃,这可能会影响正在运行的服务或应用程序。】 -
启用NTP时间同步:
timedatectl set-ntp yes【默认是启用的,timedatectl命令可以查看状态】 -
查看客户端连接情况【服务端执行】:
chronyc clients -
列出ntp状态详细:
timedatectl -
下面timedatectl说明中有详细介绍
设置硬件时间- 硬件时间默认为UTC:
timedatectl set-local-rtc 1/0 - 设置硬件时钟为本地时间:
timedatectl set-local-rtc 1 - 设置硬件时钟为UTC时间:
timedatectl set-local-rtc 0 - 启用NTP时间同步:
timedatectl set-ntp yes - 开启 NTP:
timedatectl set-ntp true/flase - 查询和调试 NTP:
chronyc tracking查询和调试 NTP(网络时间协议)客户端的状态
- 硬件时间默认为UTC:
-
hwclock -w用于将系统时间写入到硬件时钟(也称为RTC,即实时时钟)中。在Linux系统中,硬件时钟是一个独立的时钟,它可以在系统关闭时继续运行,并且可以在系统启动时用来初始化系统时间。
-
更多相关知识,请访问:https://blog.csdn.net/cuichongxin/article/details/123178318
本实验与上文链接不一致的地方:
- 查询和调试 NTP:
chronyc tracking查询和调试 NTP(网络时间协议)客户端的状态 chronyc makestep#强制同步hwclock -w#用于将系统时间写入到硬件时钟- allow all #如果写成0.0.0.0/24实验不通过
二、实验步骤
- 创建两台ntp服务器
| 序号 | 服务器名称 | IP | 备注 |
|---|---|---|---|
| 1 | ntp1 | 192.168.200.123 | 主 |
| 2 | ntp2 | 192.168.200.124 | 备 |

- 安装chrony
dnf install -y chrony

我安装openEuler时,选择的是server安装,自带chrony
- 修改配置文件
vim /etc/chrony.conf
修改内容如下(192.168.200.1是淘宝买的硬件授时服务器)
#pool pool.ntp.org iburst
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
#pool pool.ntp.org iburst
pool 192.168.200.1# Allow NTP client access from local network.
#allow 192.168.0.0/16
allow all #如果写成0.0.0.0/24实验不通过
# Serve time even if not synchronized to a time source.
#local stratum 10
local stratum 10


- 检测
systemctl restart chronyd
chronyc sourcestats -v

三、手动修改服务器1时间,用服务器2去同步错误时间
- 测试之前先临时关闭两台服务器selinux和firewalld,功能测试通过后再针对实际情况开启
clear
setenforce 0
systemctl stop firewalld

- 手动调整服务器1时间
timedatectl set-ntp false
timedatectl set-time "2023-12-12 00:00:00"
hwclock -w #用于将系统时间写入到硬件时钟
timedatectl set-ntp true
date #查看时间
timedatectl #查看详细时间

- 进入服务器2,从服务器1同步错误时间
chronyc makestep #强制同步
hwclock -w #用于将系统时间写入到硬件时钟(这个必须有,否则date查询和timedatectl查询不一致,时间并没改)
date #查看时间
timedatectl #查看详细时间
备用1:检查同步源状态
chronyc sourcestats -v #查看时间同步源状态
备用2:查询和调试 NTP
chronyc tracking #查询和调试 NTP

-
从这段 chronyc tracking 的输出中,我们可以分析以下关于 NTP(网络时间协议)同步状态的信息:
-
Reference ID : C0A8C87B (192.168.200.123)
这是 NTP 服务器的标识符,通常对应于服务器的 IP 地址。在这里,服务器 IP 地址是 192.168.200.123。 -
Stratum : 11
这表示 NTP 服务器的层次。Stratum 1 是最高级的服务器,直接与原子钟相连。Stratum 11 表示这个服务器从其他服务器获取时间,且距离原始时间源已经相当远。 -
Ref time (UTC) : Mon Dec 11 16:09:09 2023
这是 NTP 服务器的当前参考时间,以协调世界时(UTC)表示。 -
System time : 1010.213012695 seconds fast of NTP time
这表明系统时间比 NTP 服务器时间快了约 1010 秒。 -
Last offset : -0.000107685 seconds
上一次时间同步时,系统时间与 NTP 服务器时间的偏差是负的,即系统时间略慢于 NTP 时间。 -
RMS offset : 2199082.750000000 seconds
RMS(均方根)偏移量表示系统时间与 NTP 服务器时间的平均差异。这个值非常大,表明系统时间和 NTP 服务器时间之间存在显著的差异。 -
Frequency : 0.359 ppm fast
这表示系统时钟频率比 NTP 服务器时钟频率快了 0.359 百万分之一(ppm)。 -
Residual freq : -0.077 ppm
剩余频率误差,表示在最近一次时间同步后,系统时钟与 NTP 服务器时钟之间的频率差异。 -
Skew : 0.955 ppm
Skew 表示系统时钟与 NTP 服务器时钟之间的频率偏差率。 -
Root delay : 0.000785275 seconds
从系统到 NTP 时间源的总延迟。 -
Root dispersion : 0.000260121 seconds
NTP 服务器的不确定度。 -
Update interval : 194.2 seconds
系统从 NTP 服务器获取更新的时间间隔。 -
Leap status : Normal
Leap 秒状态。Normal 表示没有 leap 秒事件正在进行或计划。
从上述数据中,我们可以看到系统时间与 NTP 服务器时间之间存在较大的偏差(约 1010 秒),并且 RMS 偏移量也非常大。这可能是由于网络问题、NTP 服务器配置问题或系统时钟问题导致的。为了解决这个问题,你可能需要检查网络连接、NTP 服务器的状态,以及系统时钟设置。同时,RMS 偏移量这么大也可能是因为刚开始同步,还未稳定,所以多等待一段时间并观察数据的变化也是很有帮助的。
- 进入服务器1,查看clients
chronyc clients

- 使用windows客户端同步时间

- 再次进入服务器1,查看clients
chronyc clients

8. 分别开启两台服务器的防火墙
setenforce 1
systemctl start firewalld
firewall-cmd --zone=public --add-port=123/udp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
相关文章:
Linux(openEuler、CentOS8)基于chrony企业内网NTP服务器搭建实验
一、知识点 chrony 是由 守护进程 chronyd 以及 命令行工具 chronyc 组成的 chronyd 在后台静默运行并通过 123 端口与时间服务器定时同步时间,默认的配置文件是 /etc/chrony.conf chronyc 通过 323 端口与 chronyd 交互,可监控 chronyd 的性能并在运…...
前端开发框架Vue
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Vue概述 Vue.js(简称Vue)是由尤雨溪(Evan You)创建并维护的一款开源前端开发框架。Vue以其轻量级、易上手和高度灵活的特点&…...
Vue2中引入ElementUI
Vue中引入ElementUI 目录 Vue中引入ElementUI安装 全库导入main.py使用 仅引入样式文件main.py使用 安装 官方文档 npm i element-ui -S全库导入 main.py import ElementUI from element-ui;Vue.use(ElementUI)使用 <template> <div class"main">&l…...
华中科技大学雷达站部署
一:项目地址 GitHub - HUSTLYRM/HUST_Radar_2023: 华中科技大学狼牙战队 RoboMaster 2023赛季 雷达站 二:安装依赖 2.1创建虚拟环境 首先是程序是基于python3.8完成,所以创建虚拟环境的时候,选择3.8的虚拟环境 conda create -…...
小程序引入 Vant Weapp 极简教程
一切以 Vant Weapp 官方文档 为准 Vant Weapp 官方文档 - 快速入手 1. 安装nodejs 前往官网下载安装即可 nodejs官网 安装好后 在命令行(winr,输入cmd)输入 node -v若显示版本信息,即为安装成功 2. 在 小程序根目录 命令行/终端…...
labview技术交流-将时间字符串转换成时间格式
应用场景 我们在数据库中设计了datetime类型的字段,比如字段名就叫“保存时间”,当我们使用labview将表中数据读取出来后datetime类型的数据是以字符串的格式显示的。而我们想计算两条数据“保存时间”的间隔时间时,用字符串类型自然是没法计…...
算法提高之迷宫问题
算法提高之迷宫问题 核心思想:最短路问题 从(n-1,n-1)开始bfs 往前走一个就存入pre数组 之后再遍历pre数组输出 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 1010,M N*N;#define x first#def…...
泛微E9开发 通过点击按钮来复制选择的明细行
泛微E9开发 通过点击按钮来复制选择的明细行 复制明细行功能背景展示效果实现方法 复制明细行 功能背景 用户可以通过“复制明细”按钮来实现新增选择的明细行,并且新增明细行的数据跟选择的数据完全一样,具体操作如下图所示: 手动新增明细…...
sqlalchemy 分表实现方案
1.需求及场景概述 现有系统中因历史数据量过大,产生了将历史数据进行按月存储的要求,系统和数据库交互使用的是sqlalchemy,假设系统的原来的历史记录表(record)如下: 为了将历史数据按月分表存储࿰…...
QML进阶(十五) QML各种标准元素的用法
文章目录 文本图像控件TextTextInputTextFieldTextEditTextAreaImage按钮控件ButtonRadioButtonCheckBoxComboBox进度控制控件ProgressBarSlider...
【工具使用】快速实现Makefile模板的方法
一,简介 我们在使用gcc编译程序时,常常需要自己实现Makefile,那么如何快速的实现Makefile呢?这里把一些基本的操作整理成模板,供参考。 二,模板介绍 功能包含基本功能编译exe(包括调用其他算…...
Linux-信号执行
1. 信号什么时候被处理 当进程从内核态返回到用户态的时候,进行信号的检测和处理 什么内核态,什么又是用户态呢? 当进程在CPU上运行时,内核态:允许进程访问操作系统的代码和数据,用户态:进程只…...
在线听歌播放器 梨花带雨网页音乐播放器 网页音乐在线听 源码
最新梨花带雨网页音乐播放器二开优化修复美化版全开源版本源码下载 下 载 地 址 : runruncode.com/php/19749.html 梨花带雨播放器基于thinkphp6开发的XPlayerHTML5网页播放器前台控制面板,支持多音乐平台音乐解析。二开内容:修复播放器接口问题&am…...
免费生成证件照
分享分享,免费福利,欢迎大家来体验!!! 不知道你是不是会时不时有使用证件照需求,这一个小程序,可以生成常见尺寸的证件照,全程免费,有需要的可以动动小手,体…...
深入探索数据链路层:网络通信的基石
⭐小白苦学IT的博客主页⭐ ⭐初学者必看:Linux操作系统入门⭐ ⭐代码仓库:Linux代码仓库⭐ ❤关注我一起讨论和学习Linux系统❤ 前言 在网络通信的宏伟世界中,数据链路层扮演着至关重要的角色。它位于物理层和网络层之间,不仅直接…...
STM32使用L9110驱动电机自制小风扇
1.1 介绍: 该电机控制模块采用L9110电机控制芯片。该芯片具有两个TTL/CMOS兼容输入端子,并具有抗干扰特性:具有高电流驱动能力,两个输出端子可直接驱动直流电机,每个输出端口可提供750800mA动态电流,其峰值…...
C语言——队列的实现
队列按照先进先出(FIFO,First In First Out)的原则管理数据。这意味着最先进入队列的元素会被最先移出,类似于排队等候服务的情况。队列通常有两个主要操作:入队(enqueue),将元素添加…...
15-LINUX--线程的创建与同步
一.线程 1.线程的概念 线程是进程内部的一条执行序列或执行路径,一个进程可以包含多条线程。 2.线程的三种实现方式 ◼ 内核级线程:由内核创建,创建开销大,内核能感知到线程的存在 ◼ 用户级线程:线程的创建有用户空…...
【退役之重学Java】如何解决消息持续积压等问题
一、将读写数据库等耗时的操作,从消费者逻辑中抽取出来,专门部署机器去完成这部分操作。...
Linux下的SPI通信
SPI通信 一. 1.SPI简介: SPI 是一种高速,全双工,同步串行总线。 SPI 有主从俩种模式通常由一个主设备和一个或者多个从设备组从。SPI不支持多主机。 SPI通信至少需要四根线,分别是 MISO(主设备数据输入,从设备输出),MOSI (主设数据输出从设备输入),SCLK(时钟信号),CS/SS…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
echarts使用graphic强行给图增加一个边框(边框根据自己的图形大小设置)- 适用于无法使用dom的样式
pdf-lib https://blog.csdn.net/Shi_haoliu/article/details/148157624?spm1001.2014.3001.5501 为了完成在pdf中导出echarts图,如果边框加在dom上面,pdf-lib导出svg的时候并不会导出边框,所以只能在echarts图上面加边框 grid的边框是在图里…...
初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...
