当前位置: 首页 > news >正文

Linux系统中的时间同步服务

 一、时间同步服务的概念

时间同步:多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议,日志,集群等,利用NTP(Network Time Protocol)协议使网络中的各个计算机时间达到同步。目前NTP协议属于运维基础架构中必备的基本服务之一

二、时间同步实现的方法

(1)ntp:将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精度可以达到1-50ms。

(2)chrony : 实现NTP协议的的自由软件。可使系统时钟与NTP服务器,参考时钟(例如GPS接收器)以及使用手表和键盘的手动输入进行同步。还可以作为NTPv4(RFC 5905)服务器和对等体运行,为网络中的计算机提供时间服务。设计用于在各种条件下良好运行,包括间歇性和高度拥挤的网络连接,温度变化(计算机时钟对温度敏感),以及不能连续运行或在虚拟机上运行的系统。通过Internet同步的两台机器之间的典型精度在几毫秒之内,在LAN上,精度通常为几十微秒。利用硬件时间戳或硬件参考时钟,可实现亚微秒的精度。

三、时间同步服务的使用

1、基础时间管理:timedatectl 命令

timedatectl 是 systemd 提供的工具,用于管理系统时间、时区和NTP同步状态。  

(一)、查看时间状态

## timedatectl   /   ## timedatectl status

(二)、修改系统时间与时区  

(1)、手动设置时间(需关闭NTP同步)

格式:YYYY-MM-DD HH:MM:SS

timedatectl set-time "2025-10-01 12:00:00"   

(2)、修改时区

timedatectl list-timezones                ### 列出所有时区

timedatectl set-timezone Asia/Shanghai     ### 设置时区

(3)、启用/禁用NTP自动同步  

timedatectl set-ntp true        ### 启用NTP

timedatectl set-ntp false       ### 禁用NTP(需手动设置时间

(4)、设定系统时间计算方式

timedatectl set-local-rtc 0|1        ##  0表示使用utc时间计算方式

四、使用网络时间源同步时间

1、公共ntp地址

(一)、www.ntppool.org

项目是一个提供可靠易用的NTP服务的虚拟集群,[0-3].asia.pool.ntp.org

(二)、公共NTP服务器

  • Unix/linux类: ntp.aliyun.com,ntp1-7.aliyun.com    阿里云NTP服务器
  • windows类: time.google.com iburst     Google公共NTP
  • 国家授时中心服务器:ntp.ntsc.ac.cn

2、使用公共ntp时间到本机

RHEL 9 中使用的同步时间软件为chrony

chrony由两个程序组成,分别是chronydchronyc

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

(一)、使用 chrony(推荐)

chrony 是大多数Linux发行版的默认NTP客户端和服务端工具。  

chrony作为client的使用方法:

安装与配置

#  dnf install chrony -y

# vim /etc/chrony.conf                           【配置时间同步ntp文件】

重启服务并验证查看时间同步情况

systemctl restart chronyd.service      【需要重启服务才有效】

# chronyc sources -v               查看同步状态

 chronyc tracking                查看时间偏差

同步信息个参数的含义:
文字类:
M
时间源模式,“ ^”  表示服务器,“ =”  表示对等方,“ #”  表示本地连接的参考时钟。
S
指源的状态。
Name/IP address
显示源的名称或 IP 地址。
Stratum
显示时间来源的层。
Poll
显示轮询源的速率。
Reach
显示源的可达性寄存器以八进制数字打印。
LastRx
显示多长时间前从来源接收到了最后一个好的样本。
Last sample
此列显示上次测量时本地时钟与源之间的偏移。
符号类:
*
表示 chronyd 当前已经同步到的源。
+表示可接受的信号源,与选定的信号源组合在一起。
-表示被合并算法排除的可接受源。
指已失去连接性或者其数据包未通过所有测试的源。
x表示chronyd认为时虚假行情的时钟,即标记该时间与其他多数时间不一致。
~表示时间似乎具有太多可变性。

(二)、使用 ntpdate(临时手动同步)

ntpdate ntp.aliyun.com     手动同步时间(需先关闭NTP服务)

五、部署本地时间源(NTP服务器)  

1、时间同步服务器的搭建

RHEL9ntp的服务端同样默认使用chrony

chrony使用端口为udp 323chrony兼容ntp所以在设定chrony为服务端是也会开启udp123端口

chrony 的优势:

  1. 更快的同步只需要数分钟而非数小时时间,从而最大程度减少了时间和频率误差,对于并非全天24小时运行的虚拟计算机而言非常有用
  2. 能够更好地响应时钟频率的快速变化,对于具备不稳定时钟的虚拟机或导致时钟频率发生变化的节能技术而言非常有用
  3. 在初始同步后,它不会停止时钟,以防对需要系统时间保持单调的应用程序造成影响
  4. 在应对临时非对称延迟时(例如,在大规模下载造成链接饱和时)提供了更好的稳定性
  5. 无需对服务器进行定期轮询,因此具备间歇性网络连接的系统仍然可以快速同步时钟

使用 chrony 部署  

服务端配置:  

# vim /etc/chrony.conf

允许特定网段访问

  allow 0.0.0.0/0          ### 允许所有人访问

本地时钟作为时间源(stratum 10表示层级)        ### 设置同步时间第十层

  local stratum 10

客户端配置:  

关闭防火墙:

  # systemctl stop firewalld           ### 服务器端要关闭防火墙才可以同步时间

修改客户端 /etc/chrony.conf,指向本地服务器:  

  # vim /etc/chrony.conf

    pool 192.168.0.0 iburst    本地NTP服务器IP

 重启服务(在客户端和服务端配置完毕后进行):  

  systemctl restart chronyd.service

调试与日志:

查看chrony日志:  

  journalctl -u chronyd

查看ntp同步状态:  

  ntpq -p     显示NTP服务器列表及同步状态

  

chrony的参数说明

serve可用于时钟服务器
iburst

选项当服务器可达时,发送一个八个数据包而不是通常的一个数据包,包间隔通常为2,可加快初始同步速度

driftfile 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件会在重启后为系统时钟作出补偿
rtcsyn启用内核模式,系统时间每11分钟会拷贝到实时时钟(RTC)
allow / deny指定一台主机、子网,或者网络以允许或拒绝访问本服务器
bindcmdaddres允许chronyd监听哪个接口来接收由chronyc执行的命令
local stratum 10即使server指令中时间服务器不可用,也允许将本地时间作为标准时间授时给其它客户端

 2、注意事项

1、层级(Stratum)

    Stratum 0:原子钟、GPS时钟等硬件设备。  

    Stratum 1:直接连接Stratum 0设备的服务器。  

    每增加一层,层级数加1(最高为15)。  

2、时间同步冲突

    若同时使用chrony和ntpd,需确保只启用一个服务。  

    手动修改时间后需禁用NTP同步:timedatectl set-ntp false。  

相关文章:

  • 线程与进程深度解析:从fork行为到生产者-消费者模型
  • 网络Tips20-003
  • ArrayList的扩容机制(源码解析)
  • (ADC)数模转换器的不同类型对比
  • 支撑座的安装精度对滚珠丝杆性能有哪些影响?
  • SimpleLive 1.8.1 |聚合虎牙、斗鱼、哔哩哔哩及抖音直播
  • 【形式化验证】动态逻辑(DL)的定义解释与示例
  • 利用KMP找出模式串在目标串中所有匹配位置的起始下标
  • uniapp开发微信小程序时如何进行分包(新手图文)
  • Granite 4.0 Tiny:IBM也开始卷大模型?
  • 嵌入式系统基础知识
  • SMT贴片加工报价精准核算方法
  • imx6uLL应用-v4l2
  • Java 基础语法篇
  • 类和对象(上)
  • Google Agent space时代,浅谈Agent2Agent (A2A) 协议和挑战!
  • PMP-第四章 项目整合管理(一)
  • 234树和红黑树
  • 【AI论文】COMPACT:从原子级到复杂级的组合式视觉能力调优
  • 新建模范式Mamba——“Selectivity is All You Need?”
  • 黎巴嫩9年来首次举行地方选举
  • 国防部新闻发言人就日本民用飞机侵闯中国钓鱼岛领空答问
  • 马斯克的“星舰基地”成为新城镇,首任市长为SpaceX员工
  • 国铁集团:全国铁路旅客发送量连续3天同比增幅超10%
  • 阿根廷发生5.6级地震,震源深度30公里
  • 长三角议事厅| AI作曲时代:长三角如何奏响数字音乐乐章