Chrony 应用本身已经有几年了,其是是网络时间协议的 (NTP) 的另一种实现。
Chrony可以同时做为ntp服务的客户端和服务端
一直以来众多发行版里标配的都是ntpd对时服务,自rhel7/centos7 起,Chrony做为了发行版里的标配服务,不过老的ntpd服务依旧在rhel7/centos7里可以找到 。
Chrony有两个核心组件:
chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。
chronyc:提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
chrony用来同步时间,来代替ntp服务,优点是很精巧的时间同步工具,更快响应时钟变化,在应对延时提供更好的稳定性能,不会出现时间空白,跨越互联网同步时间只需要几毫秒。
*** 作系统: CentOS7.x
chronyServer 192.168.1.106
chronyClient 192.168.1.100
在chronyServer 和chronyClient 服务器:
# yum -y install chrony
# rpm -ql chrony
开启防火墙
# firewall-cmd --add-service=ntp --permanent
# firewall-cmd --reload
关闭selinux
# setenforce 0
# sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
在chronyServer服务器:
# vim /etc/chrony.conf
#########################
server pool.ntp.org iburst prefer
server 192.168.1.106 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.1.0/24
local stratum 10
logdir /var/log/chrony
bindaddress 192.168.1.106
port 123
###############################
# systemctl start chronyd
# systemctl enable chronyd
# systemctl status chronyd
查看服务端绑定的IP和端口监听
# ss -uan
chronyd默认监听两个端口: 123/udp 323/udp
123/udp ,是供客户端通讯连接用的,安全起见,请绑定服务端socket的IP,而不是0.0.0.0
323/udp,供chronyc连接用,安全起见,默认绑定的本地socket的IP为 127.0.0.1
在chronyClient服务器:
# vim /etc/chrony.conf
################################
server 192.168.1.106 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
bindacqaddress 192.168.1.100
acquisitionport 1234
#######################################
# systemctl start chronyd
# systemctl enable chronyd
# systemctl status chronyd
# ss -uan
注意:chrony作为客户端是采用随机的udp端口与服务端进行通讯的,但是我们可以绑定客户端socket的的IP和端口,以便于相应的防火墙管理控制,,本客户端,我们配置的与服务端通讯的端口为 1234。
# watch chronyc tracking
Chrony Introduction
https://chrony.tuxfamily.org/
https://wiki.archlinux.org/index.php/Chrony
chrony.conf(5) Manual Page
https://chrony.tuxfamily.org/doc/3.4/chrony.conf.html
CentOS / RHEL 7 : Chrony V/s NTP (Differences Between ntpd and chronyd)
https://www.thegeekdiary.com/centos-rhel-7-chrony-vs-ntp-differences-between-ntpd-and-chronyd/
CHAPTER 17. CONFIGURING NTP USING THE CHRONY SUITE
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite
CentOS 7.x中正确设置时间与时钟服务器同步
https://linux.cn/article-4764-1.html
https://www.jianshu.com/p/a8cc55c894e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
chronyd Can't synchronise: no majority
https://forums.fedoraforum.org/showthread.php?298929-Automatic-time-set
CentOS / RHEL 7 : How to sync chrony to local clock
https://www.thegeekdiary.com/centos-rhel-7-chrony-how-to-sync-to-local-clock/
Manage NTP with Chrony
https://opensource.com/article/18/12/manage-ntp-chrony
Chrony:一个类 Unix 系统上 NTP 客户端和服务器替代品
https://linux.cn/article-10250-1.html
How to Install and Use Chrony in Linux
https://www.tecmint.com/install-chrony-in-centos-ubuntu-linux/
Centos 8不在直接使用ntp,而是使用chrony作为时间同步,chrony既可以当服务器端广播时间,又可以作为客户端同步时间
安装
sudo dnf install chrony -y
sudo yum install chrony -y
Centos8使用firewalld服务对防火墙进行管理。放行ntp服务(123/udp)
firewall-cmd --add-service=ntp --permanent &&firewall-cmd --reload
作为服务器端
配置chrony服务端
sudo vim /etc/chrony.conf
删除配置自带的NTP服务器。换成国内阿里云的NTP服务器地址。
添加上游NTP服务器
server time1.aliyun.com iburst
server time2.aliyun.com iburst
server time3.aliyun.com iburst
允许 192.168.1.0/24 内的客户端通过这台服务器获取时间
allow 192.168.1.0/24
配置无误后,重启chrony服务,并配置开机自启动:
systemctl restart chronyd.service
systemctl enable chronyd.service
使用ss -tlunp | grep chrony或者 lsof -i:123 命令 检查chrony服务使用的123/udp端口是否启动成功
作为客户端
同样安装,然后修改客户端chrony配置文件
sudo 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.centos.pool.ntp.org iburst
#添加NTP服务器
server time1.aliyun.com iburst
server time2.aliyun.com iburst
server time3.aliyun.com iburst
如果有自建的chrony客户端也可以自行配置
server 192.168.1.30 iburst
重启chrony客户端服务,重启chrony服务,并配置开机自启动:
systemctl restart chronyd.service &&systemctl enable chronyd.service --now
查看同步状态
chronyc sources -v
本想简单的找点chrony的讲解视频看看,但没找到;我想,可能是因为服务这个服务太简单了吧,觉得没什么讲的;所以都忽略了;现在只有自己烧烧脑,手动研究一下下
公司里 虚拟机加物理机 2000+ 台 机器,一直使用的是 ntpdate 直接强行同步三台NTP服务器,就这么暴力的用了几年,到现在,也没出啥问题;但是身为一名运维屌丝,预感到了强烈安全隐患。
是时候展现真正的技术了 ~~~
一啪啦的扯淡,进入正题。
我的 rhel8上面没有,我使用过yum安装的
安装完成之后,系统会多出一个 chronyd的服务
查看服务状态: systemctl status chronyd
停止服务: systemctl stop chronyd
重启服务: systemctl restart chronyd
我们可以用 rpm -ql chrony 看一下安装 chrony 后产生的安装文件,帮助了解这个服务的大体结构,与复杂度,不想看也可以不看;
大体上就是这些东西了
下面开始介绍,将chrony配置为 NTP 服务端,用来供NTP 客户端同步使用的,后面再讲客户端
配置前先讲一下 配置文件件:
经过一番烧脑,大致的理解了一下主配置文件里的参数,并做了一下注释,方便以后查阅
配置都很简单
就更改一下域名服务器,与允许同步的网段就可以了,其余的基本都是默认;更改完后重启一下服务
阿里云的时间服务器:
ntp1.aliyun.com
ntp2.aliyun.com
中科院的时间服务器:
ntp.ntsc.ac.cn
显示目前同步的状态:
与外部互联网同步的时间间隔不能设置为小于64秒,否则会因为过于平凡与NTP服务器同步,而视为垃圾数据报被丢弃,这个需要注意一下
就是添加一个ntp服务IP就行了,其余的基本不用动;重启服务器,并加入开机启动
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)