centos8+chrony部署ntp服务 2020-06-26 linux 暂无评论 2914 次阅读 为什么要用chrony代替ntp? 这里要分清一个概念ntpd软件和NTP协议不是一个东西,NTP协议是网络时间同步协议。而chrony和ntpd都是实现NTP协议的软件。我们所谓的的“chrony代替ntp”,只是chrony代替了ntpd这个软件。 再强调一遍:chrony是实现NTP协议的其中一个软件。 之所以chrony会代替ntp,Tristone认为主要有如下几个原因: 1、chrony是新的设计,ntpd是老的设计,chrony的设计思想更先进; 2、chrony的配置参数比ntpd稍微简单一些; 3、chrony的运行速度比ntpd要快的多。 chrony相关知识 Chrony有两个核心组件,chronyd和chronyc chronyd:是守护进程,它负责: 1、将server上时间获取到本机; 2、调整本机内核中运行的系统时间(完成时间同步); 3、对外提供时间同步服务(作为时间同步服务器server)。 在细节上,如果本机时间与服务器时间差距过大,chronyd还会确定每次增减时间的比率,并对此进行调整补偿。 chronyc:是用户界面,它负责: 1、监控chrony的性能; 2、对chrony进行多样化配置; 安装chrony chrony的安装特别简单,以下一个命令搞定 ``` yum -y install chrony ``` 配置 chrony.conf 运行下列命令,修改配置文件 ``` vi /etc/chrony.conf ``` 相关的参数设置如下: ``` # 从时间服务器192.168.1.231上获取时间,如果有别的时间服务器,再添加一行就行,总数没上限。 server 192.168.1.231 iburst # 根据实际时间计算出计算机增减时间的比率,将它记录到一个文件中是最合理的,它会在重启后为系统时钟作出补偿 # 甚至可能的话,会从时钟服务器获得较好的估值 driftfile /var/lib/chrony/drift # chronyd根据需求减慢或加速时间调整,Tristone发现网上有好多互相抄的内容,让人不知所云 # 这里表示时间的误差如果小于5秒,则通过减慢或加快时钟速度来逐渐调整时钟。 # 如果时间的误差大于5秒,前3次更新时间时允许步进时间(一步到位调整时间)。 # 如果改为:makestep 5 -1,则一直是按照一步到位的方式调整时间(慎用) makestep 5 3 # rtcsync指令将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC); rtcsync #允许哪个IP访问本服务器的时间服务 allow 192.168.1.0/24 #禁止哪个IP访问本服务器的时间服务 deny 192.168/16 #Get TAI-UTC offset and leap seconds from the system tz database. #从system tz数据库中获取TAI-UTC偏移量和闰秒。 leapsectz right/UTC # 指定日志文件的目录。 logdir /var/log/chrony # 指定包含NTP验证密钥的文件。 #keyfile /etc/chrony.keys ``` server:指明时间服务器地址; allow NETADD/NETMASK 允许那些客户端来同步 allow all:允许所有客户端主机; deny NETADDR/NETMASK deny all:拒绝所有客户端; bindcmdaddress:命令管理接口监听的地址; local stratum 10:即使自己未能通过网络时间服务器同步到时间,也允许将本地时间作为标准时间授时给其它客户端; 如果你担心配置有问题,可以将你的“/etc/chrony.conf”内容清空,并将上述内容复制到里面。 每次修改万“/etc/chrony.conf”都需要重启一下chronyd服务 基本操作 ``` systemctl stop chronyd #停止chronyd服务 systemctl start chronyd #开始chronyd服务 systemctl restart chronyd #重启chronyd服务 systemctl status chronyd #查看chronyd服务状态 systemctl enable chronyd #开机启动chronyd服务 systemctl disable chronyd #禁止开机启动chronyd服务 chronyc sources –v #查看时间同步源,查看时间同步进度 #结果解释: *说明时间同步完成,如果为?说明不成功,检查防火墙再看看chronyd有没有重启。 chronyc sourcestats -v #查看时间同步源状态: timedatectl set-local-rtc 1 #硬件时间默认为UTC: timedatectl set-ntp yes #启用NTP时间同步: chronyc tracking #校准时间服务器: ``` 查看chronyd服务监听状态 ``` #方法一 [root@ntp ~]# ss -una #方法二 [root@ntp ~]# netstat -antulp | grep chronyd ``` 防火墙允许对外提供服务 firewall-cmd --add-service=ntp --permanent #永久允许对外提供NTP时间服务 firewall-cmd --reload chronyc相关命令 系统时钟: ``` tracking 显示系统时间信息 makestep 立即步进地校正时钟 makestep 配置自动时钟步进 maxupdateskew 修改更新频率的最大有效时滞 waitsync [ [ [ []]]] 等待,直到同步到指定的阈值内 ``` 时间来源: ``` sources [-v] 显示关于当前来源的信息 sourcestats [-v] 显示有关收集测量的统计信息 reselect 强制重新选择同步源 reselectdist 修改重选距离 ``` NTP源: ``` activity 检查有多少个NTP源在线/离线 ntpdata [] 显示上次有效测量的信息 add server [options] 添加新的NTP服务器 add peer [options] 添加新的NTP peer delete 移除服务器或 peer burst / [/] 开始快速设置的测量 maxdelay 修改最大有效采样延迟 maxdelayratio 修改最大有效延迟/最小比率 maxdelaydevratio 修改最大有效延迟/偏差比率 minpoll 修改最小轮询时间间隔 maxpoll 修改最大轮询间隔 minstratum 修改最小层级 offline [/] 将子网中的源设置为离线状态 online [/] 将子网中的源设置为在线状态 polltarget 修改投票目标 refresh 刷新IP地址 ``` 手动时间输入: ``` manual off|on|reset 禁用/启用/重置settime命令 manual list 显示以前的设置时间条目 manual delete 删除之前的设置时间条目 settime 置守护进程的时间 (e.g. Sep 25, 2015 16:30:05 or 16:30:05) ``` NTP访问: ``` accheck 检查地址是否被允许 clients 报告访问服务器的客户端 serverstats 显示服务器的统计信息 allow [] 默认允许访问子网 allow all [] 默认允许访问子网和所有子节点 deny [] 默认拒绝访问子网 deny all [] 默认拒绝访问子网和所有子节点 local [options] 在未同步的情况下也提供服务 local off 在未同步的情况下不提供服务 smoothtime reset|activate 重置/激活时间平滑 smoothing 显示当前时间平滑状态 ``` 访问监控: ``` cmdaccheck 检查地址是否被允许 cmdallow [] 默认允许访问子网 cmdallow all [] 默认允许访问子网和所有子节点 cmddeny [] 默认拒绝访问子网 cmddeny all [] 默认拒绝访问子网和所有子节点 ``` Real-time clock: ``` rtcdata 打印当前的RTC性能参数 trimrtc 相对于系统时钟校正RTC writertc 将RTC性能参数保存到文件 ``` Other daemon commands: ``` cyclelogs 关闭并重新打开日志文件 dump 转储所有测量以保存文件 rekey 重新读取密钥文件中的密钥 ``` Client commands: ``` dns -n|+n 禁用/启用将IP地址解析为主机名 dns -4|-6|-46 将主机名解析为IPv4、IPv6或全部 timeout 设置初始响应超时 retries 设置最大重试次数 keygen [ [ []]] 为密钥文件生成密钥 exit|quit 退出程序 help 生成此帮助 ``` firewall相关命令 1、查看firewall服务状态 ``` systemctl status firewalld ``` 2、查看firewall的状态 ``` firewall-cmd --state ``` 3、开启、重启、关闭、firewalld.service服务 ``` # 开启 service firewalld start # 重启 service firewalld restart # 关闭 service firewalld stop ``` 4、查看防火墙规则 ``` firewall-cmd --list-all ``` 5、查询、开放、关闭端口 ``` # 查询端口是否开放 firewall-cmd --query-port=8080/tcp # 开放80端口 firewall-cmd --permanent --add-port=80/tcp # 移除端口 firewall-cmd --permanent --remove-port=8080/tcp #重启防火墙(修改配置后要重启防火墙) firewall-cmd --reload # 参数解释 1、firwall-cmd:是Linux提供的操作firewall的一个工具; 2、--permanent:表示设置为持久; 3、--add-port:标识添加的端口; ``` 参考https://blog.csdn.net/dengshulei/java/article/details/103749922 参考https://blog.csdn.net/l835311324/java/article/details/82186538 标签: ntp 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。