首页 > 系统相关 >Linux配置时间同步 - chrony

Linux配置时间同步 - chrony

时间:2023-12-15 14:02:49浏览次数:29  
标签:同步 chronyd ntp Server1 chrony Linux root pool

一、chrony简介

chrony是一款开源的NTP时间同步软件,主要用于Unix-like计算机系统(如Linux、BSD和macOS)来提供高精度的时间同步。Chrony的设计注重性能和可靠性,具有低延迟、低CPU占用率、低内存消耗等优点。chrony由两个程序组成,chronyd(服务器端)和chronyc(客户端)

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

二、实验环境

2.1 实验拓扑

如图,两台服务器Server1、Server2连接到同一网络

Linux配置时间同步 - chrony_chrony

2.2 本地环境规划

主机名

IP地址

操作系统版本

内核版本

Server1

172.16.0.134/24

Rocky Linux 8.9 (Green Obsidian)

Linux 4.18.0-513.5.1.el8_9.x86_64

Server2

172.16.0.150/24

Rocky Linux 8.9 (Green Obsidian)

Linux 4.18.0-513.5.1.el8_9.x86_64

Net1网络中配置了NAT(网络地址转换),两台服务器均可以访问公网

三、配置时间同步

3.1 安装chrony

Rokcy Linux 8.9版本默认安装了chrony,验证安装状态:

[root@Server1 ~]# rpm -qa | grep chrony
chrony-4.2-1.el8.rocky.1.0.x86_64

3.2 配置Server1从公网时间源服务器同步时间

编辑“/etc/chrony.conf”文件:

[root@Server1 ~]# vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rocky.pool.ntp.org iburst			# 注释该行,添加如下两行,理论上想添加多少时间服务器都可以
Server ntp.aliyun.com iburst						# 阿里时间源服务器
Server time1.cloud.tencent.com iburst		# 腾讯时间源服务器

重启chronyd服务,并设置开机自启:

[root@Server1 ~]# systemctl restart chronyd
[root@Server1 ~]# systemctl enable chronyd
[root@Server1 ~]# systemctl is-active chronyd			# 查看chronyd服务是否正常运行
active
[root@Server1 ~]# 

查看时间同步状态:

[root@Server1 ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                  2   6    37    63    +49us[+2956us] +/-   23ms
^- 106.55.184.199                2   6   127    60  +1891us[+1891us] +/-   47ms
[root@Server1 ~]# 
[root@Server1 ~]# chronyc sources -v

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                  2   6    77     3  -3557us[-3824us] +/-   26ms
^+ 106.55.184.199                2   6   257     1  +2021us[+2021us] +/-   46ms
[root@Server1 ~]# 

chronyc sources输出结果解析:

<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(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。


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

例如:现有时钟服务器time_server:它的层级是2,一台主机node1从time_server同步时间,那么node1主机的层级就是3,以此类推另一台在node1同步时间,那它的层级就是4。

Linux配置时间同步 - chrony_chrony_02

3.3 配置Server2从Server1时间源同步时间

Server1上再次编辑“/etc/chrony.conf”文件:

[root@Server1 ~]# vim /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rocky.pool.ntp.org iburst
Server ntp.aliyun.com iburst
Server time1.cloud.tencent.com iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# 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

# Allow NTP client access from local network.
#allow 192.168.0.0/16
allow 172.16.0.0/24		# 配置访问规则,仅允许该网络的客户端访问

# Serve time even if not synchronized to a time source.
#local stratum 10
local stratum 10			# 即使未同步到时间源,也要提供时间同步服务,当前系统层级为10

# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

重启chronyd服务:

[root@Server1 ~]# systemctl restart chronyd

防火墙放行ntp服务:

[root@Server1 ~]# firewall-cmd --add-service=ntp --permanent 
success
[root@Server1 ~]# firewall-cmd --reload
success

Server2上编辑“/etc/chrony.conf”文件:

[root@Server2 ~]# vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rocky.pool.ntp.org iburst		# 注释该行,添加下面一行
Server 172.16.0.134 iburst

重启chronyd服务,并设置开机自启:

[root@Server2 ~]# systemctl restart chronyd
[root@Server2 ~]# systemctl enable chronyd

查看时间同步状态:

Linux配置时间同步 - chrony_时间同步_03


参阅

Linux: 硬件时钟, 系统时钟, 网络时钟, 时区修改和同步_system clock synchronized: no-CSDN博客

在国内常用的NTP时间源同步服务器汇总-北斗时源

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

STM32 (十四) RTC时钟-CSDN博客

鳥哥私房菜 - 第九章、區域網路參數供應者: NTP

标签:同步,chronyd,ntp,Server1,chrony,Linux,root,pool
From: https://blog.51cto.com/min2000/8840552

相关文章

  • Linux防火墙端口设置策略
    #当我们在服务器上部署好我们的环境后,一定要检查一下防火墙的端口策略;否则客户端无法连接。#查看防火墙状态systemctlstatusfirewalld#查看防火墙设已开放的端口#临时端口(默认为空)firewall-cmd--list-ports#永久开放端口(默认为空)firewall-cmd--list-ports--per......
  • linux 学习笔记
    计算机硬件软件体系 冯诺依曼体系结构1.计算机处理的数据和指令一律用二进制数表示2.顺序执行程序3.计算机硬件由运算器、控制器、存储器、输入设备、输出设备五部分组成计算机硬件组成、1.输入设备 键盘鼠标2.输出设备 显示器,音响3.存储器 1)RAM(randomaccessmemory)随......
  • Linux部署elasticsearch集群
    文章目录一、集群规划二、安装前准备(所有节点操作)创建数据目录修改系统配置文件/etc/sysctl.conf创建用户组设置limits.conf三、初始化配置(在节点1上操作)下载安装包解压安装包修改jvm.options文件下配置的所占内存修改集群配置文件elasticsearch.yml将安装包传到另外两个节点......
  • Linux下获取文件名
    linux下一切皆文件1、获取指定路径下文件或目录ls-la/usr/local/|grepxxx|head-n1|awk'{print$9}'xxx:替换为要匹配的文件名或目录命令解释:ls-la/usr/local/:列出 /usr/local/ 目录下的所有文件和子目录,包括隐藏文件(以.开头的文件)。grepxxx:从前面命令......
  • 软件测试/人工智能|Linux常见面试问题讲解
    前言现在行业对于测试工程师的要求越来越高,除了要会自动化测试,会数据库操作,现在对于linux命令的要求也越来越高了,因为很多时候,测试环境以及持续集成持续交付需要用到越来越多的Linux命令,本文就来给大家介绍一下面试常见的Linux问题以及基本概念。基础概念Linux的起源和特点Li......
  • Linux tracepoint使用和理解
    参考:如何使用TRACE_EVENT()宏来创建跟踪点1.如何查看tracepoint/sys/kernel/debug/tracing/events/通过perflisttracepoint查看2.tracepoint理解因此tracepoint方式如下:#undefTRACE_SYSTEM#defineTRACE_SYSTEMxhr_test#if!defined(_TRACE_TE_TEST_H)||def......
  • 嵌入式linux下web服务器搭建(转载)
    一、移植编译生成boa二进制文件Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。Boa的设计目标是速度和安全。首先下载......
  • Linux服务器环境安装mysql
    背景1、安装环境:kvm虚拟机2、运行环境:linux3、架构:x864、安装mysql版本:mysql-5.71、安装准备#Mysql官网https://downloads.mysql.com/archives/community/#下载安装包wget-i-chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2、安装m......
  • 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    联系:1.Linux的内核源代码和Linux的应用程序都可以自由获得,因此很多公司组织开发了属于自己的Linux发行版。2.基本上可以分为三大系类:Slackware、RedHat、Debian3.每个系列最具代表性的商业服务器级的发行版,分别是SUSELinuxEnterprise;RedHatEnterpriseLinux;UbuntuServ......
  • Linux(ps -aux命令)
    在Linux中,ps-aux是一个常见的用于查看系统进程信息的命令。以下是ps-aux命令的解释:ps:进程查看命令。-aux:这是ps命令的选项,有以下三个部分的组合:-a:显示所有用户的进程,而不仅仅是当前用户的。-u:显示详细的用户/拥有者(user)信息。-x:显示没有控制终端的进程。......