• 【Linux】NTP时间服务器Chrony配置详解


    🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁

    🦄 个人主页——🎐开着拖拉机回家_大数据运维-CSDN博客 🎐✨🍁

    🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

    🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁🍁🪁🍁🪁 🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁🪁🍁

    🪁🍁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!🪁🍁🍁🪁🍁🪁🍁

    目录

    🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁

    一、NTP和chrony概述

    二、Chrony安装与配置

    2.1 安装chrony

    2.2 修改配置

    2.3 timedatectl 查看时间同步

    2.4 chronyc 命令

    三、NTPServer 为本机(内网 )

    四、NTPServer 从阿里云同步时间(外网)


    一、NTP和chrony概述


    网络时间协议,英文名称:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务。

    Chrony 是网络时间协议 (NTP) 的通用实现。Chrony是一个开源的软件,如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。

    Chrony有两个核心组件,分别是:

    • chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。
    • chronyc:提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

    二、Chrony安装与配置


    2.1 安装chrony


    yum install chrony -y

    测试服务器

    hostname

    IP

    NTP 角色

    hdp103

    192.168.2.152

    client

    hdp104

    192.168.2.153

    NTP Server

    hdp105

    192.168.2.154

    client

    2.2 修改配置


    配置/etc/chrony.conf文件。如果是做客户端,那么指定一下同步的时间服务器就好了;如果是做服务端,配置允许同步的客户端网段,配置当时间服务器的网络不可用时,采用服务器自身的时间同步,配置基本采用默认即可。

    配置详细解释:

    1. [root@hdp105 ~]# cat /etc/chrony.conf
    2. # 使用 hdp104 为公共服务器,可配置多台
    3. server hdp104 iburst
    4. # 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
    5. driftfile /var/lib/chrony/drift
    6. # chronyd根据需求减慢或加速时间调整,在某些情况下系统时钟可能漂移过快,导致时间调整用时过长
    7. # 该指令强制chronyd调整时期,大于某个阀值时步进调整系统时钟。
    8. # 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进
    9. makestep 1.0 3
    10. # 启用实时时钟(RTC)的内核同步
    11. rtcsync
    12. # 通过使用 hwtimestamp 指令启用硬件时间戳
    13. #hwtimestamp *
    14. # 增加调整系统时钟所需的最小可选源数
    15. #minsources 2
    16. # 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
    17. #allow 192.168.2.0/24
    18. # 即使未同步到时间源,也要提供时间。取值范围1-15,当默认时钟源无法同步,则当前系统层级为10
    19. #local stratum 10
    20. # 指定包含 NTP 身份验证密钥的文件
    21. #keyfile /etc/chrony.keys
    22. # 日志文件的目录
    23. logdir /var/log/chrony
    24. # 选择日志文件要记录的信息。
    25. #log measurements statistics tracking

    重启chronyd服务 ,一般时间服务器器都会开机启动的。

    1. systemctl restart chronyd
    2. systemctl enable chronyd

    NTP cliennt hdp103 配置文件chrony.conf

    1. [root@hdp103 ~]# cat /etc/chrony.conf
    2. # Use public servers from the pool.ntp.org project.
    3. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    4. server hdp104 iburst

    NTP cliennt hdp105 配置文件chrony.conf

    1. [root@hdp105 ~]# cat /etc/chrony.conf
    2. # Use public servers from the pool.ntp.org project.
    3. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    4. server hdp104 iburst

    2.3 timedatectl 查看时间同步


    timedatectl是一个时间配置工具,用于设定时间、与时间相关的配置等。

    1. timedatectl status --- 时间同步状态, 输入timedatectl 默认为时间同步状态
    2. timedatectl set-ntp true --- 开启网络时间同步

    输出说明:

    1. Local time: Tue 2023-10-10 13:52:22 CST # 本地时间
    2. Universal time: Tue 2023-10-10 05:52:22 UTC # 协调世界时间
    3. RTC time: Tue 2023-10-10 05:52:22 # 硬件时间
    4. Time zone: Asia/Shanghai (CST, +0800) # 时区
    5. NTP enabled: yes # NTP时间同步是否开启,yes表示是
    6. NTP synchronized: yes # yes #如果和远程NTP服务器成功同步,显示为yes
    7. RTC in local TZ: no # #no表示硬件时钟设置为协调世界时(UTC),yes表示硬件时钟设置为本地时间,终端输入:timedatectl set-local-rtc yes,yes可写为no
    8. DST active: n/a

    常见用法:

    • 查看当前时间/日期/时区:timedatectl 或者 timedatectl status
    • 设定系统时区为亚洲上海timedatectl set-timezone “Asia/Shanghai”
    • 设置日期时间:timedatectl set-time “YYYY-MM-DD HH:MM:SS”
    • 启动NTP时间同步(启用NTP服务或者Chrony服务):timedatectl set-ntp true
    • 设置硬件时钟为本地时间:timedatectl set-local-rtc 1
    • 设置硬件时钟为UTC时间:timedatectl set-local-rtc 0

    2.4 chronyc 命令


    1. # 查看 ntp_servers
    2. chronyc sources -v
    3. # 查看 ntp_servers 状态
    4. chronyc sourcestats -v
    5. # 查看 ntp_servers 是否在线
    6. chronyc activity -v
    7. # 查看 ntp 详细信息
    8. chronyc tracking -v
    9. # 强制同步下系统时钟
    10. chronyc -a makestep
    11. # 查看哪些ip连接我的ntp时间了
    12. chronyc clients

    chrony sources -v,查看时间的同步情况

    1. [root@hdp103 ~]# chronyc sources -v
    2. 210 Number of sources = 1
    3. .-- Source mode '^' = server, '=' = peer, '#' = local clock.
    4. / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
    5. | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
    6. || .- xxxx [ yyyy ] +/- zzzz
    7. || Reachability register (octal) -. | xxxx = adjusted offset,
    8. || Log2(Polling interval) --. | | yyyy = measured offset,
    9. || \ | | zzzz = estimated error.
    10. || | | \
    11. MS Name/IP address Stratum Poll Reach LastRx Last sample
    12. ===============================================================================
    13. ^* hdp104 11 10 377 764 +73us[ +45us] +/- 323ms

    输出信息说明:

    (1)M

    这表示信号源的模式。^表示服务器,=表示对等方,#表示本地连接的参考时钟。

    (2)S

    此列指示源的状态。

    • * 表示chronyd当前同步到的源。
    • + 表示可接受的信号源,与选定的信号源组合在一起
    • - 表示被合并算法排除的可接受源。
    • ? 指示已失去连接性或其数据包未通过所有测试的源。它也显示在启动时,直到从中至少收集了3个样本为止。
    • x 表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致)。
    • 〜 表示时间似乎具有太多可变性的来源。

    (3)Name/IP address

    这显示了源的名称或IP地址,或参考时钟的参考ID。

    (4)Stratum

    这显示了来源的层,如其最近收到的样本中所报告的那样。层1表示一台具有本地连接的参考时钟的计算机。与第1层计算机同步的计算机位于第2层。与第2层计算机同步的计算机位于第3层,依此类推。

    (5)Poll

    这显示轮询源的速率,以秒为单位的时间间隔的以2为底的对数。因此,值为6表示每64秒进行一次测量。chronyd会根据当前情况自动更改轮询速率。

    (6)Reach

    这显示了源的可达性寄存器以八进制数字打印。寄存器有8位,并在每个从源接收或丢失的数据包上更新。值377表示从最后八次传输中收到了对所有用户的有效答复。

    (7)LastRx

    此列显示多长时间前从来源接收到了最后一个好的样本(在下一列中显示)。未通过某些测试的测量将被忽略。通常以秒为单位。字母m,h,d或y表示分钟,小时,天或年。

    (8)Last sample

    此列显示上次测量时本地时钟与源之间的偏移。方括号中的数字表示实际测得的偏移量。可以用ns(表示纳秒),us (表示微秒),ms(表示毫秒)或s(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。

    +/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。


    查看 NTP Client 同步的client Server:


    三、NTPServer 为本机(内网 )


    1. [root@hdp104 ~]# cat /etc/chrony.conf
    2. # Use public servers from the pool.ntp.org project.
    3. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    4. server hdp104 iburst

    说明:chrony服务部署:三台机器
    a: hdp104机器将自身时间作为时间服务,也就是同步自身时间,hdp103、hdp105 作为 NTP Client 从 hdp104 同步时间;
    b: hdp104服务器使用系统时间作为hdp103、hdp105服务器的时钟源;

    hdp104 NTFServer 层级为10,自身时间从NTPServer同步,所以层级为 (11), hdp104作为 NTP Server ,hdp103、hdp105 作为 NTP Client 从 hdp104 同步时间,则hdp103、hdp105层级是(12),一般NTPServer 会同步网络时间也就是不会使用自身时间作为时间源。

    查看 NTPServer hdp104 层级

    查看hdp103和hdp105 层级


    四、NTPServer 从阿里云同步时间(外网)


    说明:chrony服务部署:三台机器
    a: hdp104机器从阿里云同步时间主机hdp104 从time_server 同步时间
    b: hdp103、hdp105 作为 NTP Client 从 hdp104 同步时间

    1. [root@hdp104 ~]# cat /etc/chrony.conf
    2. # Use public servers from the pool.ntp.org project.
    3. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
    4. server ntp.aliyun.com iburst

    时钟服务器time_server:它的层级是2,主机hdp104 从time_server 同步时间,那么hdp104 主机的层级就是3,以此类推另外两台台在hdp104同步时间,那它的层级就是4。

    hdp103 从 hdp104 同步时间,层级为 4

    强制同步系统时钟(特定条件才能进行,超过步进时间则无法同步)

    1. date -s "2023-09-11 11:30"
    2. chronyc -a makestep
    3. systemctl restart chronyd --- 需重启chronyd服务才可同步
    4. # 或者
    5. timedatectl set-ntp no
    6. timedatectl set-time "2022-02-28 17:13:55"
    7. timedatectl set-ntp yes
    8. ntpdate 192.168.2.104 -- 客户端立即获取

    总结: 以上内网和外网的配置文件我只修改配置文件 chrony.conf 中的 server信息,客户端的配置文件不用做特殊修改。


    参考原文链接:linux上外网和内网环境配置NTP时间同步详解~【基于chrony服务,效率更高的方法】、chrony不能同步时间排错详解、timedatactl命令修改时间和时区等说明【4.7万字符详细说明】_内网ntp服务器时间修改-CSDN博客

    linux进阶 --- chrony服务器_chrony安装-CSDN博客

  • 相关阅读:
    随便写一下
    STM32CubeMX和STM32F4
    JVM--基础--24.2--日志参数
    Awake()、OnEnable()、Start()、Reset()、OnDisable()、OnDestroy()、OnValidate()
    【Pytorch笔记】2.张量操作
    Selenium+Pytest自动化测试框架详解
    企业应用超融合架构的设计实例及超融合应用场景分析
    Python 获得pdf中的文字、图片文字方法
    离散型制造行业智能工厂解决方案,助力国家新智产业升级
    阿里云——算法面经
  • 原文地址:https://blog.csdn.net/qq_35995514/article/details/133752893