作为CentOS上缺省的NTPD的同步服务,Chrony俨然已经成为了NTPD的继任者。这篇文章将介绍一下如何使用Chrony搭建NTPD服务器和客户端。
NTP基础知识
基础知识请参看如下文章,此处不再赘述。
Why Chrony
已经有NTPD了为什么还需要chrony呢,自然是有一定原因的,比如以下原因
- 在NTP服务器因为种种原因断断续续可连接的情况,NTPD效果不好
- 时间相差过大,需要手工执行ntpdate同步时间时需要先停下客户端的ntpd,手工操作之后再重启
- 参数设定较为复杂,不易理解
- …
事前准备
用途 | IP | OS版本 |
---|---|---|
NTP服务器 | 192.168.163.131 | CentOS7.6 |
NTP客户端 | 192.168.163.132 | CentOS7.6 |
[root@host131 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@host131 ~]#
安装准备
安装命令:yum install -y chrony
注:chrony缺省已被安装和设定,一般此命令不必执行
[root@host131 ~]# rpm -qa |grep chrony
chrony-3.2-2.el7.x86_64
[root@host131 ~]# chronyd --version
chronyd (chrony) version 3.2 (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +ASYNCDNS +IPV6 +DEBUG)
[root@host131 ~]#
端口开放:如果有防火墙的话,需要注意chrony的服务是使用UDP方式在123端口进行服务。要么关闭,要么加入规则对端口放行。
firewall设定:
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
安装设定
设定文件:/etc/chrony.conf
设定文件chrony.conf是chrony服务的重中之重,设定格式如下所示:
设定格式:
设定指令 指令参数
设定指令:server
使用介绍:
VS ntpd: 常用方式基本一致
使用 server ip或者server hostname方式进行设定
设定例:server 192.168.163.131
设定例:server host131
参数介绍:prefer
perfer参数用于设置优先使用的NTP服务器
设定例:
server 192.168.163.131 prefer
server 192.168.163.132
设定说明:默认使用192.168.163.131进行同步,192.168.163.132为备用NTP服务器
参数介绍:burst
当NTP服务器可用时,向其发送一些列并发包进行检测
设定例:server 192.168.163.131 burst
参数介绍:iburst
当NTP服务器不可用时,向其发送一些列并发包进行检测
设定例:server 192.168.163.131 iburst
设定指令:logdir
参数介绍:日志的FULL PATH
VS ntpd: logfile
说明:默认情况下,NTP服务器的日志保存在/var/log/messages中,但也可自行指定
使用例:logdir /var/log/chrony
设定指令:local
VS ntpd: fudge + server
说明:简化本地时钟作为NTP源
使用示例:
local stratum 5
场景说明:指定本地时钟的层为5,在无法取到外部服务的时候使用本地时钟,在无法连接外网的局域网环境中运用较多。此时一般将其他的server设定全部删除或注释即可。
设定指令:driftfile
VS ntpd: 使用方式基本一致,一般同样无需修改
参数说明:/var/lib/chrony/drift
说明:根据实际时间计算出服务器增减时间的比率,通过指定文件进行记录,调整时间时会根据此文件进行补偿。此指令一般无需修改
设定指令:allow/deny
VS ntpd: restrict
使用介绍
黑白名单,简化restrict常用的部分主要功能
使用示例:
allow 192.168.0.0/16
说明:这也是缺省的ntp.conf被注释的使用例,允许192.168.*.*的机器进行连接,只需打开注释即可。
设定指令: makestep
使用介绍
根据需求偏移量的阈值进行调整同步速度的步伐
使用示例:
makestep 1.0 3
说明:当偏移量offset大于1秒时,更新的步数为3
设定指令:rtcsync
使用介绍
开启内核模式,将定期同步到RTC硬件时钟
设定示例(服务器侧)
在本文中,进行最小的修改启动ntpd,场景为无法连接外网的NTP服务器和NTP客户端。承担NTP服务器的host131通过server和fudge指令进行设定。内容的修改仅限于如下三点:
- allow的白名单注释直接打开
- 外网的NTP源注释掉
- 本地设定方式直接打开,并调整stratum
[root@host131 chrony]# cp /etc/chrony.conf /etc/chrony.conf.org
[root@host131 chrony]# vi /etc/chrony.c