linux时间同步工具chrony的配置和时间设置的相干说明

去皮卡多  金牌会员 | 2024-6-23 20:03:49 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 692|帖子 692|积分 2076

目录

目录
先容
1.搭建ntp服务器
 2.配置ntp客户端
3.其他设置
 4.客户端无法举行时间同步

先容

现在比较流行的时间同步工具有ntpd和chrony,ntpd采用123/UDP端口通讯,chrony采用323/UDP端口通讯。Centos7以上版本默认安装chrony服务来同步时间,而Centos6则默认安装ntpd服务。假如chrony作为时间同步的服务器,如下图,Chrony默认listen端口是323,通过 323 端口与 chrond 交互,可监控 chronyd 的性能并在运行时更改各种操作参数;chronyd 在后台静默运行并通过 123 端口与时间服务器定时同步时间。机器2作为时间服务器,则需要开放123/udp给客户端服务器。
选择 chrony 是有缘故原由的,相比 ntpd , 它有如下的优点:
  1. 1、时间同步的速度比 ntpd 更快
  2. 2、chrony 很好的处理了同步延迟以及网络延迟
  3. 3、即使出现网络降级,chrony 仍然能正常工作
  4. 4、本地机器可以作为时间服务器,其他机器从这台服务器上同步时间
复制代码

  1. # Use public servers from the pool.ntp.org project.
  2. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  3. # 配置NTP服务器
  4. server 0.centos.pool.ntp.org iburst
  5. server 1.centos.pool.ntp.org iburst
  6. server 2.centos.pool.ntp.org iburst
  7. server 3.centos.pool.ntp.org iburst
  8. server ntp.aliyun.com iburst
  9. # Record the rate at which the system clock gains/losses time.
  10. # 记录系统时钟获得/丢失时间的速率至drift文件中
  11. driftfile /var/lib/chrony/drift
  12. # Allow the system clock to be stepped in the first three updates
  13. # if its offset is larger than 1 second.
  14. # 默认情况下,chronyd通过减慢或加快时钟速度来逐渐调整时钟。如果时钟与实际时间偏差太大,则需要很长时间才能纠正错误。这种方法叫做步进时钟(时间跳变)。
  15. # 此处表示如果调整值大于1000秒,则这将使系统时钟步进,但仅在前十个时钟更新中。
  16. makestep 1000 10
  17. # Enable kernel synchronization of the real-time clock (RTC).
  18. # 启用RTC(实时时钟)的内核同步
  19. rtcsync
  20. # Enable hardware timestamping on all interfaces that support it.
  21. #通过使用hwtimestamp指令启用硬件时间戳
  22. #hwtimestamp eth0
  23. #hwtimestamp eth1
  24. #hwtimestamp *
  25. # Increase the minimum number of selectable sources required to adjust
  26. # the system clock.
  27. #minsources 2
  28. # Allow NTP client access from local network.
  29. #指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
  30. #语法相同,指令也可以多次使用。
  31. #只允许192.168.网段的客户端进行时间同步
  32. #allow 192.168.0.0/16
  33. #拒绝192.168.网段的客户端进行时间同步
  34. #deny 192.168.0.0/16
  35. # Serve time even if not synchronized to a time source.
  36. # NTP服务器不可用时,采用本地时间作为同步标准
  37. #local stratum 10
  38. # Specify file containing keys for NTP authentication.
  39. # 指定包含NTP验证密钥的文件
  40. #keyfile /etc/chrony.keys
  41. # Specify directory for log files.
  42. # 指定日志文件的目录
  43. logdir /var/log/chrony
  44. # Select which information is logged.
  45. # 将对系统增益或损耗率的估计值以及所做的任何转换记录的更改记录到名为的文件中tracking.log。
  46. #log measurements statistics tracking
  47. #**** 其他未在默认配置文件的配置项
  48. # 在第一次时钟更新之后,chronyd将检查每次时钟更新的偏移量,它将忽略两次大于1000秒的调整,并退出另一个调整。
  49. maxchange 1000 1 2
  50. # 该rtcfile指令定义中的文件名chronyd可以保存跟踪系统的实时时钟(RTC)的精度相关的参数。
  51. rtcfile /var/lib/chrony/rtc
复制代码
1.搭建ntp服务器

  1. # Centos7.6已默认安装,查看状态
  2. systemctl status  chronyd
  3. # 注释其他server开头的配置,添加阿里云NTP公共时间同步服务器
  4. vim /etc/chrony.conf
  5. 添加内容
  6. server ntp.aliyun.com iburst
  7. makestep 1000 10
  8. allow 0.0.0.0/0 #或者allow all
  9. local stratum 10
  10. # 重启chronyd
  11. systemctl restart   chronyd
  12. # 查看时间同步源,查看时间同步进度
  13. chronyc sources –v
复制代码
 2.配置ntp客户端

参考上图,客户端与服务端的区别就在于把自己的server指定为服务主机,而服务端的server就指向上游(外网)NTP服务器。
Chrony默认listen端口是323, 假如有其他client想要通过123端口访问,需要将server配置为NTP的server(listen 123),这里只需要allow 子网即可。默认情况下不答应任何客户端访问,即 chronyd 纯粹作为 NTP 客户端运行。 假如利用了 allow 指令,chronyd 将既是其服务器的客户端,又是其他客户端的服务器。
  1. # Centos7.6已默认安装,查看状态
  2. systemctl status  chronyd
  3. # # 注释其他server开头的配置,添加本地NTP公共时间同步服务器
  4. vim /etc/chrony.conf
  5. server 192.168.66.71 iburst
  6. makestep 1000 10
  7. # 重启chronyd
  8. systemctl restart   chronyd
  9. # 查看时间同步源,查看时间同步进度
  10. chronyc -n sources –v
复制代码
3.其他设置

  1. #服务器防火墙设置
  2. firewall-cmd --add-port=123/udp --permanent
  3. #或者firewall-cmd --add-service=ntp --permanent
  4. firewall-cmd --reload
  5. #服务器和客户端的时区设置
  6. timedatectl set-timezone Asia/Shanghai
  7. timedatectl set-ntp yes
  8. #设置系统时间的时间日期
  9. timedatectl set-time '16:10:40 2015-11-20'
  10. timedatectl set-time 15:58:30
  11. timedatectl set-time 20151120
  12. #查看时间
  13. date #系统时间system time(Wall Time)
  14. hwclock --show #硬件时间(RTC)
  15. #当系统时钟与硬件时钟不一致时,可进行同步到同一时间
  16. hwclock --systohc    #以系统时钟为准,同步硬件时钟
  17. hwclock --hctosys    #以硬件时钟为准,同步系统时钟
  18. #如果是12小时制,想改为24小时制
  19. update-locale LC_TIME=C.UTF-8
  20. #dns
  21. 223.5.5.5       # 阿里DNS
  22. 223.6.6.6       # 阿里DNS
  23. 180.76.76.76    #百度DNS
  24. 8.8.8.8         # google域名服务器
  25. 114.114.114.114 # 是国内第一个、全球第三个开放的DNS服务地址,又称114DNS
  26. #ntp
  27. ntp.aliyun.com     # 阿里NTP授时服务器地址
  28. ntp.tencent.com    # 腾讯云NTP授时服务器地址
  29. time.edu.cn        # 教育网内的授时服务器地址
复制代码
  1. timedatectl
  2.                Local time: Mon 2024-04-01 16:24:49 CST
  3.            Universal time: Mon 2024-04-01 08:24:49 UTC
  4.                  RTC time: Mon 2024-04-01 08:11:55
  5.                 Time zone: Asia/Shanghai (CST, +0800)
  6. System clock synchronized: yes
  7.               NTP service: active
  8.           RTC in local TZ: no
复制代码
  1. Local time           本地时间 通常为 RTC + 时区
  2. Universal time       系统时间一直是UTC
  3. RTC time             硬件时钟的时间,一般也 BIOS 时间
  4. Time zone            时区, set-timezone就是设置的这个
  5. NTP enabled          是否开启ntp时间同步
  6. NTP synchronized     NTP同步是否完成
  7. RTC in local TZ      是否设置RTC时间,set-local-rtc 选项就是控制该处
  8. DST active           夏令时
复制代码
 4.客户端无法举行时间同步

假如服务器之上存在防火墙,这时客户端向服务器请求时间不会有任何的响应,在客户端机器输入 chronyc sources 命令可以看到 Reach 字段的值为 0 ,表示客户端无法收到服务器的响应了。因此先排查防火墙题目。
假如排除了防火墙的题目的话,大概需要利用一些工具(tcpdump、nc)查抄下客户端是否有收到服务器的数据包。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表