Linux - 时间服务器

二、时间服务器

1、Chrony

Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软件。它能让计算机保持系统时钟与时 钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算 机提供时间同步服务。

Chrony由两个程序组成,分别是chronyd和chronyc:

​ chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算 机增减时间的比率,并对此进行补偿。

chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机 上工作,也可以在一台不同的远程计算机上工作。 

安装

bash 复制代码
yum install chrony -y

开机自启动

bash 复制代码
systemctl enable --now chronyd

2、时间服务器客户端配置

编辑配置文件

bash 复制代码
[root@client ~]# vim /etc/chrony.conf
#文件内容:
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).

pool 2.centos.pool.ntp.org iburst

# Use NTP servers from DHCP.
sourcedir /run/chrony-dhcp

# 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

# Serve time even if not synchronized to a time source.
#local stratum 10

# Require authentication (nts or key option) for all NTP sources.
#authselectmode require

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

# Save NTS keys and cookies.
ntsdumpdir /var/lib/chrony

# Insert/delete leap seconds by slewing instead of stepping.
#leapsecmode slew

# Set the TAI-UTC offset of the system clock.
#leapseclist /usr/share/zoneinfo/leap-seconds.list

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

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

添加新的时间服务器信息

bash 复制代码
#在"Please consider joining the pool"下添加:
例如:
pool ntp.aliyun.com iburst
#注意:时间服务器的匹配是由上到下依次匹配的,越靠上优先级越高。

添加完成后保存退出,测试

bash 复制代码
#修改主机时间:date -s "时间"
例如:
[root@client ~]# date -s "20221010"
2022年 10月 10日 星期一 00:00:00 CST
#修改时间后重启服务(这里是重启守护进程,即chronyd):
[root@client ~]# systemctl restart chronyd
#再次查看时间:
[root@client ~]# date
2024年 10月 26日 星期六 11:35:46 CST
#时间同步成功。

查看已配置的时间服务器

bash 复制代码
[root@client ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                  2   6    77    43  -2324us[-8884us] +/-   34ms
^- a.chl.la                      2   6    77    43    +56ms[  +56ms] +/-  149ms
^- makaki.miuku.net              3   6    77    43  +6414us[+6414us] +/-   90ms
^+ 117.80.112.205                2   6    77    43  -1424us[-3232us] +/-   93ms
^- ntp8.flashdance.cx            2   6    33    35    -39ms[  -39ms] +/-  143ms
# * 表示chronyd当前同步到的源
# + 表示可接受的信号源,与选定的信号源组合在一起
# ? 指示已失去连接性或其数据包未通过所有测试的源。它也显示在启动时,直到从中至少收集了3个样本为止  

3、时间服务器服务端配置

首先配置服务端

bash 复制代码
[root@server ~]# vim /etc/chrony.conf 
#也可以添加其他时间服务器,这里就不做改动。
#修改允许访问本服务器的网段地址:
# Allow NTP client access from local network.
allow 192.168.5.0/24
#完成后保存退出。
#重启服务:
[root@server ~]# systemctl restart chronyd

配置客户端

bash 复制代码
[root@client ~]# vim /etc/chrony.conf
#添加对端客户端并写在第一条(方便测试,将其他都删除):
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
pool 192.168.5.100 iburst
#保存退出。

测试

bash 复制代码
[root@client ~]# date -s "20221010"
2022年 10月 10日 星期一 00:00:00 CST
[root@client ~]# date
2022年 10月 10日 星期一 00:00:07 CST
[root@client ~]# systemctl restart chronyd
[root@client ~]# date
2024年 10月 26日 星期六 11:58:34 CST
#查看时间服务器情况:
[root@client ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 192.168.5.100                 2   6    17    10  -7837ns[-1112us] +/-   25ms
^- electrode.felixc.at           2   6    17     9    +44ms[  +44ms] +/-  140ms
^? ntp8.flashdance.cx            0   7     0     -     +0ns[   +0ns] +/-    0ns
^? ntp7.flashdance.cx            0   7     0     -     +0ns[   +0ns] +/-    0ns
^- dns1.synet.edu.cn             1   6    17     9   -682us[ -682us] +/-   22ms

补充

bash 复制代码
#时间服务器使用udp的123号端口。
#查看在使用的端口号:
[root@server ~]# ss -lntup
#可以结合过滤使用:
[root@server ~]# ss -lntup | grep 123
udp   UNCONN 0      0            0.0.0.0:123        0.0.0.0:*    users:(("chronyd",pid=2121,fd=7))   
#注意:时间服务器与客户端要实现时间同步必须网络可达,关闭防火墙,端口启用。
相关推荐
jekc8682 分钟前
Ubuntu更改内核
linux·运维·ubuntu
复园电子14 分钟前
朝天椒USB服务器在银泰证券虚拟化超融合场景的应用案例
运维·服务器·github·usb
kong790692815 分钟前
Linux系列(二)安装Linux和Linux目录结构
linux·运维·服务器
FHKHH16 分钟前
Boost.Asio 同步读写及客户端 - 服务器实现详解
服务器·网络·c++·网络协议
童先生16 分钟前
负载均衡服务器要怎么配置?
运维·服务器·负载均衡
i-Java26 分钟前
CentOS7安装redis
linux·redis·缓存·centos
Andya_net35 分钟前
Nginx | 解决 Spring Boot 与 Nginx 中的 “413 Request Entity Too Large“ 错误
运维·spring boot·nginx
看星星的派大星41 分钟前
关于接线 ,端子, 杜邦线的概念
linux
Fiona.y43 分钟前
Linux系统常用指令学习
linux·服务器·学习
liuzhilongDBA1 小时前
pg数据库运维经验2024
运维·数据库