Linux(openEuler、CentOS8)基于chrony企业内网NTP服务器搭建实验

本文主要是介绍Linux(openEuler、CentOS8)基于chrony企业内网NTP服务器搭建实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、知识点

  1. chrony 是由 守护进程 chronyd 以及 命令行工具 chronyc 组成的
    在这里插入图片描述
    在这里插入图片描述

  2. chronyd 在后台静默运行并通过 123 端口与时间服务器定时同步时间,默认的配置文件是 /etc/chrony.conf

  3. chronyc 通过 323 端口与 chronyd 交互,可监控 chronyd 的性能并在运行时更改各种操作参数,chronyc 通过下面的方式访问 chronyd(默认情况下,chronyc 先通过 Unix 域 socket 访问 chronyd,默认的 socket 文件是 /var/run/chrony/chronyd.sock, 如果失败-常见的原因是使用非 root 用户运行 chronyc ),将尝试通过 127.0.0.1 访问 chronyd

  4. chrony默认情况下,不允许任何客户端访问,这意味着chronyd主要作为NTP客户端运行。当使用allow指令时(allow all允许所有<#如果写成0.0.0.0/24实验不通过>;allow 192.168.59.0/24 允许网段),chronyd将既是其服务器的客户端,又是其他客户端的服务器

  5. chronyd常用命令说明

    1. 查看时间同步源状态: chronyc sourcestats -v【-v是列出详细,可以不要】

    2. 强制同步时间:chronyc makestep【这个命令会立即尝试将系统时间设置为 NTP 服务器的当前时间。请注意,这可能会导致系统时间突然跳跃,这可能会影响正在运行的服务或应用程序。】

    3. 启用NTP时间同步: timedatectl set-ntp yes【默认是启用的,timedatectl命令可以查看状态】

    4. 查看客户端连接情况【服务端执行】:chronyc clients

    5. 列出ntp状态详细:timedatectl

    6. 下面timedatectl说明中有详细介绍
      设置硬件时间

      1. 硬件时间默认为UTC: timedatectl set-local-rtc 1/0
      2. 设置硬件时钟为本地时间:timedatectl set-local-rtc 1
      3. 设置硬件时钟为UTC时间:timedatectl set-local-rtc 0
      4. 启用NTP时间同步: timedatectl set-ntp yes
      5. 开启 NTP:timedatectl set-ntp true/flase
      6. 查询和调试 NTP: chronyc tracking查询和调试 NTP(网络时间协议)客户端的状态
    7. hwclock -w用于将系统时间写入到硬件时钟(也称为RTC,即实时时钟)中。在Linux系统中,硬件时钟是一个独立的时钟,它可以在系统关闭时继续运行,并且可以在系统启动时用来初始化系统时间。

更多相关知识,请访问:https://blog.csdn.net/cuichongxin/article/details/123178318

本实验与上文链接不一致的地方:

  1. 查询和调试 NTP: chronyc tracking查询和调试 NTP(网络时间协议)客户端的状态
  2. chronyc makestep #强制同步
  3. hwclock -w#用于将系统时间写入到硬件时钟
  4. allow all #如果写成0.0.0.0/24实验不通过

二、实验步骤

  1. 创建两台ntp服务器
序号服务器名称IP备注
1ntp1192.168.200.123
2ntp2192.168.200.124

在这里插入图片描述

  1. 安装chrony
dnf install -y chrony

在这里插入图片描述
我安装openEuler时,选择的是server安装,自带chrony

  1. 修改配置文件
 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

在这里插入图片描述

在这里插入图片描述

  1. 检测
systemctl restart chronyd
chronyc sourcestats -v

在这里插入图片描述

三、手动修改服务器1时间,用服务器2去同步错误时间

  1. 测试之前先临时关闭两台服务器selinux和firewalld,功能测试通过后再针对实际情况开启
clear
setenforce 0
systemctl stop firewalld

在这里插入图片描述

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

在这里插入图片描述

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

备用1:检查同步源状态

chronyc sourcestats -v #查看时间同步源状态

备用2:查询和调试 NTP

chronyc tracking #查询和调试 NTP

在这里插入图片描述

  1. 从这段 chronyc tracking 的输出中,我们可以分析以下关于 NTP(网络时间协议)同步状态的信息:

  2. Reference ID : C0A8C87B (192.168.200.123)
    这是 NTP 服务器的标识符,通常对应于服务器的 IP 地址。在这里,服务器 IP 地址是 192.168.200.123。

  3. Stratum : 11
    这表示 NTP 服务器的层次。Stratum 1 是最高级的服务器,直接与原子钟相连。Stratum 11 表示这个服务器从其他服务器获取时间,且距离原始时间源已经相当远。

  4. Ref time (UTC) : Mon Dec 11 16:09:09 2023
    这是 NTP 服务器的当前参考时间,以协调世界时(UTC)表示。

  5. System time : 1010.213012695 seconds fast of NTP time
    这表明系统时间比 NTP 服务器时间快了约 1010 秒。

  6. Last offset : -0.000107685 seconds
    上一次时间同步时,系统时间与 NTP 服务器时间的偏差是负的,即系统时间略慢于 NTP 时间。

  7. RMS offset : 2199082.750000000 seconds
    RMS(均方根)偏移量表示系统时间与 NTP 服务器时间的平均差异。这个值非常大,表明系统时间和 NTP 服务器时间之间存在显著的差异。

  8. Frequency : 0.359 ppm fast
    这表示系统时钟频率比 NTP 服务器时钟频率快了 0.359 百万分之一(ppm)。

  9. Residual freq : -0.077 ppm
    剩余频率误差,表示在最近一次时间同步后,系统时钟与 NTP 服务器时钟之间的频率差异。

  10. Skew : 0.955 ppm
    Skew 表示系统时钟与 NTP 服务器时钟之间的频率偏差率。

  11. Root delay : 0.000785275 seconds
    从系统到 NTP 时间源的总延迟。

  12. Root dispersion : 0.000260121 seconds
    NTP 服务器的不确定度。

  13. Update interval : 194.2 seconds
    系统从 NTP 服务器获取更新的时间间隔。

  14. Leap status : Normal
    Leap 秒状态。Normal 表示没有 leap 秒事件正在进行或计划。

从上述数据中,我们可以看到系统时间与 NTP 服务器时间之间存在较大的偏差(约 1010 秒),并且 RMS 偏移量也非常大。这可能是由于网络问题、NTP 服务器配置问题或系统时钟问题导致的。为了解决这个问题,你可能需要检查网络连接、NTP 服务器的状态,以及系统时钟设置。同时,RMS 偏移量这么大也可能是因为刚开始同步,还未稳定,所以多等待一段时间并观察数据的变化也是很有帮助的。

  1. 进入服务器1,查看clients
chronyc clients

在这里插入图片描述

  1. 使用windows客户端同步时间
    在这里插入图片描述
  2. 再次进入服务器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服务器搭建实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959291

相关文章

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1