当前位置:   article > 正文

Chrony 时间与NTP同步详解_failed to set time: automatic time synchronization

failed to set time: automatic time synchronization is enabled

目录

Chrony服务器和客户端配置

一、 简介

二、安装与配置

三、使用

四、chronyc 命令

五、timedatectl 命令

六、授时中心

七、系统时钟与硬件时钟之间同步

八、常见时区

 九、实例

 十、chronyc sources 输出结果解析​编辑

 NTP 服务器和客户端配置

一、NTP服务器

二、NTP客户端


Chrony服务器和客户端配置

一、 简介

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

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

chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿。
chronyc提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步。
RHEL7中默认使用chrony作为时间服务器,也支持NTP,需要额外安装。
NTP与chrony不能同时存在,只能用其中一个,并将另一个mask掉。

二、安装与配置

  1. 1,rpm查询不到可安装服务
  2. #yum -y install chrony
  3. #systemctl enable chronyd
  4. #systemctl start chronyd
  5. 2
  6. rpm -qi chrony
  7. rpm -ql chrony
  8. vim /etc/chrony.cong(修改配置项参考一下示例)
  9. systemctl enable chronyd
  10. systemctl start chronyd

chrony.conf 默认配置

Chrony的配置文件是/etc/chrony.conf

  1. # 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。
  2. # Use public servers from the pool.ntp.org project.
  3. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  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. # 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
  9. # Record the rate at which the system clock gains/losses time.
  10. driftfile /var/lib/chrony/drift
  11. # 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
  12. # Allow the system clock to be stepped in the first three updates if its offset is larger than 1 second.
  13. makestep 1.0 3
  14. # 启用实时时钟(RTC)的内核同步。
  15. # Enable kernel synchronization of the real-time clock (RTC).
  16. rtcsync
  17. # 通过使用 hwtimestamp 指令启用硬件时间戳
  18. # Enable hardware timestamping on all interfaces that support it.
  19. #hwtimestamp *
  20. # Increase the minimum number of selectable sources required to adjust the system clock.
  21. #minsources 2
  22. # 指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器
  23. # Allow NTP client access from local network.
  24. #allow 192.168.0.0/16
  25. # Serve time even if not synchronized to a time source.
  26. #local stratum 10
  27. # 指定包含 NTP 身份验证密钥的文件。
  28. # Specify file containing keys for NTP authentication.
  29. #keyfile /etc/chrony.keys
  30. # 指定日志文件的目录。
  31. # Specify directory for log files.
  32. logdir /var/log/chrony
  33. # 选择日志文件要记录的信息。
  34. # Select which information is logged.
  35. #log measurements statistics tracking

三、使用

1.服务端配置

chrony.conf 修改两处

  1. # Use public servers from the pool.ntp.org project.
  2. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  3. server s1a.time.edu.cn iburst
  4. server ntp.aliyun.com iburst
  5. server ntp.ntsc.ac.cn iburst
  6. server ntp1.aliyun.com iburst
  7. # Allow NTP client access from local network.(此处不指定即放行全部)
  8. allow 192.168.0.0/16
  9. 设置开机启动,重启服务
  10. systemctl enable chronyd
  11. systemctl restart chronyd
  12. # 查看时间同步状态
  13. timedatectl status
  14. # 开启网络时间同步
  15. timedatectl set-ntp true

2.客户端配置

chrony.conf 修改两处

  1. # Use public servers from the pool.ntp.org project.
  2. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  3. server 192.168.8.5 iburst
  4. # Allow NTP client access from local network.
  5. allow 192.168.8.5
  6. 设置开机启动,重启服务
  7. systemctl enable chronyd
  8. systemctl restart chronyd

查看时间同步状态

timedatectl status

开启网络时间同步

timedatectl set-ntp true

四、chronyc 命令

  1. 查看 ntp_servers
  2. chronyc sources -v
  3. 查看 ntp_servers 状态
  4. chronyc sourcestats -v
  5. 查看 ntp_servers 是否在线
  6. chronyc activity -v
  7. 查看 ntp 详细信息
  8. chronyc tracking -v
  9. 强制同步下系统时钟
  10. chronyc -a makestep

五、timedatectl 命令

  1. 查看日期时间、时区及 NTP 状态
  2. timedatectl
  3. 查看时区列表
  4. timedatectl list-timezones
  5. timedatectl list-timezones | grep -E "Asia/S.*"
  6. 修改时区
  7. timedatectl set-timezone Asia/Shanghai
  8. 修改日期时间(可以只修改其中一个)
  9. timedatectl set-time "2021-04-15 15:50:20"
  10. 开启 NTP
  11. timedatectl set-ntp true/flase

六、授时中心

  1. 210.72.145.44 国家授时中心
  2. ntp.aliyun.com 阿里云
  3. s1a.time.edu.cn 北京邮电大学
  4. s1b.time.edu.cn 清华大学
  5. s1c.time.edu.cn 北京大学
  6. s1d.time.edu.cn 东南大学
  7. s1e.time.edu.cn 清华大学
  8. s2a.time.edu.cn 清华大学
  9. s2b.time.edu.cn 清华大学
  10. s2c.time.edu.cn 北京邮电大学
  11. s2d.time.edu.cn 西南地区网络中心
  12. s2e.time.edu.cn 西北地区网络中心
  13. s2f.time.edu.cn 东北地区网络中心
  14. s2g.time.edu.cn 华东南地区网络中心
  15. s2h.time.edu.cn 四川大学网络管理中心
  16. s2j.time.edu.cn 大连理工大学网络中心
  17. s2k.time.edu.cn CERNET桂林主节点
  18. s2m.time.edu.cn 北京大学
  19. ntp.sjtu.edu.cn 202.120.2.101 上海交通大学

七、系统时钟与硬件时钟之间同步

  1. 设置硬件时钟
  2. -w,--systohc
  3. hwclock -w
  4. 设置系统时钟
  5. -s, --hctosys
  6. hwclock -s
  7. 修改配置文件方式
  8. vim /etc/sysconfig/ntpd
  9. 将系统时间写入BIOS,与 hwclock -w 效果相同
  10. SYNC_HWCLOCK=yes

八、常见时区

(1)UTC 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。

(2)GMT  格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的×××格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。(UTC与GMT时间基本相同,本文中不做区分)

(3)CST  中国标准时间 (China Standard Time)
GMT + 8 = UTC + 8 = CST

(4)DST夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用。(中国不使用)

 九、实例

  1. [root@rhel7.9 ~]# timedatectl set-time "2020-02-23 12:23:01" <<========设置系统时间,因为开启了时间同步所以报错
  2. Failed to set time: Automatic time synchronization is enabled
  3. [root@rhel7.9 ~]# systemctl stop chronyd
  4. [root@rhel7.9 ~]# timedatectl set-time "2020-02-23 12:23:01" <<==========stop chronyd 后修改系统时间,报错依旧
  5. Failed to set time: Automatic time synchronization is enabled
  6. [root@rhel7.9 ~]# systemctl status chronyd
  7. ● chronyd.service - NTP client/server
  8. Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
  9. Active: inactive (dead) since 四 2021-04-15 15:45:37 CST; 21s ago
  10. Docs: man:chronyd(8)
  11. man:chrony.conf(5)
  12. Process: 13722 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  13. Process: 13716 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
  14. Main PID: 13720 (code=exited, status=0/SUCCESS)
  15. 4月 15 15:40:54 rhel7.9 systemd[1]: Starting NTP client/server...
  16. 4月 15 15:40:54 rhel7.9 chronyd[13720]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
  17. 4月 15 15:40:54 rhel7.9 chronyd[13720]: Frequency 8.664 +/- 0.118 ppm read from /var/lib/chrony/drift
  18. 4月 15 15:40:54 rhel7.9 systemd[1]: Started NTP client/server.
  19. 4月 15 15:41:02 rhel7.9 chronyd[13720]: Selected source 119.28.206.193
  20. 4月 15 15:43:16 rhel7.9 chronyd[13720]: Source 124.108.20.1 replaced with 84.16.67.12
  21. 4月 15 15:45:37 rhel7.9 systemd[1]: Stopping NTP client/server...
  22. 4月 15 15:45:37 rhel7.9 chronyd[13720]: chronyd exiting
  23. 4月 15 15:45:37 rhel7.9 systemd[1]: Stopped NTP client/server.
  24. [root@rhel7.9 ~]#
  25. [root@rhel7.9 ~]# date
  26. 2021年 04月 15日 星期四 15:46:13 CST
  27. [root@rhel7.9 ~]#
  28. [root@rhel7.9 ~]#
  29. [root@rhel7.9 ~]# timedatectl set-ntp false
  30. [root@rhel7.9 ~]#
  31. [root@rhel7.9 ~]# timedatectl set-time "2020-02-23 12:23:01"
  32. [root@rhel7.9 ~]# systemctl status chronyd
  33. ● chronyd.service - NTP client/server
  34. Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
  35. Active: inactive (dead)
  36. Docs: man:chronyd(8)
  37. man:chrony.conf(5)
  38. 4月 15 15:40:34 rhel7.9 systemd[1]: Stopped NTP client/server.
  39. 4月 15 15:40:54 rhel7.9 systemd[1]: Starting NTP client/server...
  40. 4月 15 15:40:54 rhel7.9 chronyd[13720]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
  41. 4月 15 15:40:54 rhel7.9 chronyd[13720]: Frequency 8.664 +/- 0.118 ppm read from /var/lib/chrony/drift
  42. 4月 15 15:40:54 rhel7.9 systemd[1]: Started NTP client/server.
  43. 4月 15 15:41:02 rhel7.9 chronyd[13720]: Selected source 119.28.206.193
  44. 4月 15 15:43:16 rhel7.9 chronyd[13720]: Source 124.108.20.1 replaced with 84.16.67.12
  45. 4月 15 15:45:37 rhel7.9 systemd[1]: Stopping NTP client/server...
  46. 4月 15 15:45:37 rhel7.9 chronyd[13720]: chronyd exiting
  47. 4月 15 15:45:37 rhel7.9 systemd[1]: Stopped NTP client/server.
  48. [root@rhel7.9 ~]#
  49. [root@rhel7.9 ~]# timedatectl status     <<============ 显示当前系统和RTC设置
  50. Local time: 日 2020-02-23 12:23:39 CST
  51. Universal time: 日 2020-02-23 04:23:39 UTC
  52. RTC time: 日 2020-02-23 04:23:39
  53. Time zone: Asia/Shanghai (CST, +0800)
  54. NTP enabled: no
  55. NTP synchronized: no
  56. RTC in local TZ: no
  57. DST active: n/a
  58. [root@rhel7.9 ~]# timedatectl set-ntp true
  59. [root@rhel7.9 ~]# timedatectl status
  60. Local time: 日 2020-02-23 12:24:14 CST
  61. Universal time: 日 2020-02-23 04:24:14 UTC
  62. RTC time: 日 2020-02-23 04:24:14
  63. Time zone: Asia/Shanghai (CST, +0800)
  64. NTP enabled: yes
  65. NTP synchronized: no
  66. RTC in local TZ: no
  67. DST active: n/a
  68. [root@rhel7.9 ~]# systemctl start chronyd
  69. [root@rhel7.9 ~]#
  70. [root@rhel7.9 ~]# timedatectl status
  71. Local time: 四 2021-04-15 15:48:52 CST
  72. Universal time: 四 2021-04-15 07:48:52 UTC
  73. RTC time: 日 2020-02-23 04:24:44
  74. Time zone: Asia/Shanghai (CST, +0800)
  75. NTP enabled: yes
  76. NTP synchronized: yes
  77. RTC in local TZ: no
  78. DST active: n/a
  79. [root@rhel7.9 ~]# timedatectl set-time "2020-02-23 12:23:01"
  80. Failed to set time: Automatic time synchronization is enabled
  81. [root@rhel7.9 ~]#
  82. [root@rhel7.9 ~]# timedatectl set-ntp false     <<============= 禁用基于NTP的网络时间同步
  83. [root@rhel7.9 ~]# systemctl status chronyd
  84. ● chronyd.service - NTP client/server
  85. Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
  86. Active: inactive (dead)
  87. Docs: man:chronyd(8)
  88. man:chrony.conf(5)
  89. 2月 23 12:24:12 rhel7.9 systemd[1]: Starting NTP client/server...
  90. 2月 23 12:24:12 rhel7.9 chronyd[15212]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
  91. 2月 23 12:24:12 rhel7.9 chronyd[15212]: Frequency 8.646 +/- 0.520 ppm read from /var/lib/chrony/drift
  92. 2月 23 12:24:12 rhel7.9 systemd[1]: Started NTP client/server.
  93. 2月 23 12:24:18 rhel7.9 chronyd[15212]: Selected source 84.16.67.12
  94. 2月 23 12:24:18 rhel7.9 chronyd[15212]: System clock wrong by 36041047.965352 seconds, adjustment started
  95. 4月 15 15:48:26 rhel7.9 chronyd[15212]: System clock was stepped by 36041047.965352 seconds
  96. 4月 15 15:51:05 rhel7.9 chronyd[15212]: chronyd exiting
  97. 4月 15 15:51:05 rhel7.9 systemd[1]: Stopping NTP client/server...
  98. 4月 15 15:51:05 rhel7.9 systemd[1]: Stopped NTP client/server.
  99. [root@rhel7.9 ~]#
  100. [root@rhel7.9 ~]# timedatectl set-time "2020-02-23 12:23:01"      <<=========== 再次设置时间成功
  101. [root@rhel7.9 ~]# timedatectl set-ntp true     <<============ 启用基于NTP的网络时间同步
  102. [root@rhel7.9 ~]#
  103. [root@rhel7.9 ~]# systemctl status chronyd
  104. ● chronyd.service - NTP client/server
  105. Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
  106. Active: active (running) since 日 2020-02-23 12:23:25 CST; 4s ago
  107. Docs: man:chronyd(8)
  108. man:chrony.conf(5)
  109. Process: 16110 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  110. Process: 16103 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
  111. Main PID: 16105 (chronyd)
  112. Tasks: 1
  113. CGroup: /system.slice/chronyd.service
  114. └─16105 /usr/sbin/chronyd
  115. 2月 23 12:23:25 rhel7.9 systemd[1]: Starting NTP client/server...
  116. 2月 23 12:23:25 rhel7.9 chronyd[16105]: chronyd version 3.4 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +SECHASH +IPV6 +DEBUG)
  117. 2月 23 12:23:25 rhel7.9 chronyd[16105]: Frequency 8.645 +/- 0.714 ppm read from /var/lib/chrony/drift
  118. 2月 23 12:23:25 rhel7.9 systemd[1]: Started NTP client/server.
  119. [root@rhel7.9 ~]#
  120. [root@rhel7.9 ~]# date
  121. 2021年 04月 15日 星期四 15:52:14 CST

在使用timedatectl 设置系统时间时间必须停止NTP时间同步

 十、chronyc sources 输出结果解析

  1. M
  2. 这表示信号源的模式。^表示服务器,=表示对等方,#表示本地连接的参考时钟。
  3. S
  4. 此列指示源的状态。
  5. * 表示chronyd当前同步到的源。
  6. + 表示可接受的信号源,与选定的信号源组合在一起。
  7. - 表示被合并算法排除的可接受源。
  8. ? 指示已失去连接性或其数据包未通过所有测试的源。它也显示在启动时,直到从中至少收集了3个样本为止。
  9. x 表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致)。
  10. 〜 表示时间似乎具有太多可变性的来源。
  11. Name/IP address
  12. 这显示了源的名称或IP地址,或参考时钟的参考ID。
  13. Stratum
  14. 这显示了来源的层,如其最近收到的样本中所报告的那样。层1表示一台具有本地连接的参考时钟的计算机。与第1层计算机同步的计算机位于第2层。与第2层计算机同步的计算机位于第3层,依此类推。
  15. Poll
  16. 这显示轮询源的速率,以秒为单位的时间间隔的以2为底的对数。因此,值为6表示每64秒进行一次测量。chronyd会根据当前情况自动更改轮询速率。
  17. Reach
  18. 这显示了源的可达性寄存器以八进制数字打印。寄存器有8位,并在每个从源接收或丢失的数据包上更新。值377表示从最后八次传输中收到了对所有用户的有效答复。
  19. LastRx
  20. 此列显示多长时间前从来源接收到了最后一个好的样本(在下一列中显示)。未通过某些测试的测量将被忽略。通常以秒为单位。字母m,h,d或y表示分钟,小时,天或年。
  21. Last sample
  22. 此列显示上次测量时本地时钟与源之间的偏移。方括号中的数字表示实际测得的偏移量。可以用ns(表示纳秒),us (表示微秒),ms(表示毫秒)或s(表示秒)作为后缀。方括号左侧的数字表示原始测量值,已调整为允许此后施加于本地时钟的任何摆度。
  23. +/-指示器后面的数字表示测量中的误差范围。正偏移表示本地时钟位于源时钟之前。
  24. [root@rhel7.9 ~]# chronyc add server 10.39.149.249
  25. 200 OK
  26. [root@rhel7.9 ~]# chronyc sources -v
  27. 210 Number of sources = 5
  28. .-- Source mode '^' = server, '=' = peer, '#' = local clock.
  29. / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
  30. | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
  31. || .- xxxx [ yyyy ] +/- zzzz
  32. || Reachability register (octal) -. | xxxx = adjusted offset,
  33. || Log2(Polling interval) --. | | yyyy = measured offset,
  34. || \ | | zzzz = estimated error.
  35. || | | \
  36. MS Name/IP address Stratum Poll Reach LastRx Last sample
  37. ===============================================================================
  38. ^- ntp1.ams1.nl.leaseweb.net 3 10 377 651 -4572us[-4572us] +/- 227ms
  39. ^- 114.118.7.163 2 9 377 17 +2553us[+2553us] +/- 26ms
  40. ^* 120.25.115.20 2 10 377 656 -1432us[-1106us] +/- 19ms
  41. ^- 123.57.102.16 1 9 377 52m -16ms[ -16ms] +/- 103ms
  42. ^? 10.39.149.249 3 6 1 10 +1089us[+1089us] +/- 34ms
  43. [root@rhel7.9 ~]# chronyc sources -v
  44. 210 Number of sources = 5
  45. .-- Source mode '^' = server, '=' = peer, '#' = local clock.
  46. / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
  47. | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
  48. || .- xxxx [ yyyy ] +/- zzzz
  49. || Reachability register (octal) -. | xxxx = adjusted offset,
  50. || Log2(Polling interval) --. | | yyyy = measured offset,
  51. || \ | | zzzz = estimated error.
  52. || | | \
  53. MS Name/IP address Stratum Poll Reach LastRx Last sample
  54. ===============================================================================
  55. ^- ntp1.ams1.nl.leaseweb.net 3 10 377 843 -4572us[-4572us] +/- 227ms
  56. ^- 114.118.7.163 2 9 377 208 +2553us[+2553us] +/- 26ms
  57. ^* 120.25.115.20 2 10 377 847 -1432us[-1106us] +/- 19ms
  58. ^- 123.57.102.16 1 9 377 56m -16ms[ -16ms] +/- 103ms
  59. ^- 10.39.149.249 3 6 17 6 +1225us[+1225us] +/- 37ms

上面示例中刚加入的NTP部分显示是 ?即不可达的,过了两分钟再查看状态变成了 - 

 NTP 服务器和客户端配置

一、NTP服务器

  1. 1 NTP服务器安装
  2. [root@DBTest:/root]# yum install ntp -y
  3. [root@DBTest:/root]# rpm -qa | grep ntp
  4. ntpdate-4.2.6p5-29.el7.centos.2.x86_64
  5. ntp-4.2.6p5-29.el7.centos.2.x86_64
  6. 2 NTP服务器配置及初步试运行
  7. 服务试开启
  8. systemctl enable ntpd
  9. systemctl start ntpd
  10. systemctl status ntpd
  11. 3 配置NTP文件
  12. 1.配置文件默认位置:/etc/ntp.conf
  13. 2.NTP官方网站:https://www.ntppool.org/zone/cn
  14. 3.修改配置文件中的NTP服务器地址
  15. [root@DBTest:/root]# vim /etc/ntp.conf
  16. //位于20行左右-->修改为:
  17. server 0.cn.pool.ntp.org iburst
  18. server 1.cn.pool.ntp.org iburst
  19. 4 重启服务并查看
  20. 1.重启服务
  21. [root@DBTest:/root]# systemctl restart ntpd
  22. 2.查看ntp服务器有无和上层ntp连通
  23. [root@DBTest:/root]# ntpstat
  24. synchronised to NTP server (84.16.73.33) at stratum 2
  25. time correct to within 1059 ms
  26. polling server every 64 s
  27. 3.查看ntp服务器与上层ntp的状态
  28. [root@DBTest:/root]# watch ntpq -p
  29. Every 2.0s: ntpq -p Wed Feb 24 10:00:16 2021
  30. remote refid st t when poll reach delay offset jitter
  31. ==============================================================================
  32. *202.118.1.130 .PTP. 1 u 3 64 3 57.615 2.717 0.854
  33. +time.cloudflare 10.20.10.78 3 u 1 64 3 266.444 -19.620 1.578
  34. 补充:
  35. ntpq –p 参数详解
  36. remote:响应这个请求的NTP服务器的名称
  37. refid:NTP服务器使用的上一级ntp服务器
  38. st :remote远程服务器的级别.由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端.所以服务器从高到低级别可以设定为1-16.为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的.
  39. when: 上一次成功请求之后到现在的秒数。
  40. poll : 本地机和远程服务器多少时间进行一次同步(单位为秒).在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小
  41. reach:这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加
  42. delay:从本地机发送同步要求到ntp服务器的round trip time
  43. offset:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms),offset越接近于0,主机和ntp服务器的时间越接近
  44. jitter:这是一个用来做统计的值.它统计了在特定个连续的连接数里offset的分布情况.简单地说这个数值的绝对值越小,主机的时间就越精确
  45. 5 此步骤作为补充
  46. 5.1.配置/etc/sysconfig/ntpd文件
  47. ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。
  48. #允许BIOS与系统时间同步,也可以通过hwclock -w 命令
  49. SYNC_HWCLOCK=yes
  50. # Drop root to id 'ntp:ntp' by default.
  51. OPTIONS="-x -p /var/run/ntpd.pid -g"
  52. (OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g")感觉有点问题
  53. 有时会在messages日志里看到NTP进程正在做DELETING动作,不过NTP进程并不会真正删除虚拟网络接口,但这个动作会造成网络短暂不通。红帽官方有个对应的解决办法是:
  54. 就是在这个文件里增加-L参数。
  55. 还有-x和-g参数:
  56. ntpd服务的方式,又有两种策略,一种是平滑、缓慢的渐进式调整(adjusts the clock in small steps所谓的微调);一种是步进式调整(跳跃式调整)。两种策略的区别就在于,微调方式在启动NTP服务时加了个“-x”的参数,而默认的是不加“-x”参数。
  57. 假如使用了-x选项,那么ntpd只做微调,不跳跃调整时间,但是要注意,-x参数的负作用:当时钟差大的时候,同步时间将花费很长的时间。-x也有一个阈值,就是600s,当系统时钟与标准时间差距大于600s时,ntpd会使用较大“步进值”的方式来调整时间,将时钟“步进”调整到正确时间。
  58. 假如不使用-x选项,那么ntpd在时钟差距小于128ms时,使用微调方式调整时间,当时差大于128ms时,使用“跳跃”式调整。
  59. 这两种方式都会在本地时钟与远端的NTP服务器时钟相差大于1000s时,ntpd会停止工作。在启动NTP时加了参数“-g”就可以忽略1000S的问题。
  60. [root@DBTest:/root]# vim /etc/sysconfig/ntpd
  61. # Command line options for ntpd
  62. SYNC_HWCLOCK=yes
  63. OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"
  64. 5.2.重启服务
  65. systemctl restart ntpd
  66. 5.3.linux的硬件时间
  67. Linux硬件时间的设置:可以用hwclock或者clock命令,用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。
  68. //查看硬件时间 可以是用 hwclock ,hwclock --show 或者 hwclock -r
  69. [root@DBTest:/root]# hwclock --show
  70. Wed 24 Feb 2021 10:35:47 AM CST -0.173780 seconds
  71. 5.4.ntpq -c asso 用法
  72. 运行ntpq -c asso, 如果显示sys.peer则已经处于同步状态了.
  73. [root@DBTest:/root]# ntpq -c asso
  74. ind assid status conf reach auth condition last_event cnt
  75. ===========================================================
  76. 1 48693 943a yes yes none candidate sys_peer 3
  77. 2 48694 963a yes yes none sys.peer sys_peer 3
  78. 5.5.ntpq -c version 用法
  79. 检查ntp的版本
  80. [root@DBTest:/root]# ntpq -c version
  81. ntpq 4.2.6p5@1.2349-o Tue Jun 23 15:38:21 UTC 2020 (1)
  82. 6 放行防火墙
  83. firewall-cmd --permanent --add-service=ntp
  84. firewall-cmd --reload
  85. 考虑到更加安全点,系统防火墙ntp服务开放至指定IP;同时可以在接入层交换机增添ACL
  86. 已开放192.168.7.102为例,更改如下
  87. firewall-cmd --permanent --remove-service=ntp
  88. firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.7.102 port protocol=udp port=123 accept'
  89. firewall-cmd --reload
  90. 7 NTP 服务端安全设置
  91. 权限管理使用 restrict 公式如下:
  92. restrict IP mask [参数] / restrict 192.168.0.0 mask 255.255.0.0 nomodify
  93. 其中参数主要有底下这些:
  94. * ignore:拒绝所有类型的NTP的连线;
  95. * nomodfiy:用户端不能使用NTPC与ntpq这两支程式来修改伺服器的时间参数,但使用者端仍可透过这部主机来进行网路校时的;
  96. * noquery:用户端不能够使用ntpq,NTPC等指令来查询发表伺服器,等于不提供的NTP的网路校时幂;
  97. * notrap:不提供陷阱这个远端事件邮箱(远程事件日志)的功能;
  98. * notrust:拒绝没有认证的用户端.
  99. 8 示例
  100. 8.1.配置ntp.conf文件
  101. PS:①首先对于默认的client拒绝所有的操作
  102. ②允许本机地址一切的操作
  103. ③允许局域网内特定client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间
  104. PS:grep -Ev "^#|^$" /etc/ntp.conf
  105. [root@DBTest:/root]# vim /etc/ntp.conf
  106. # For more information about this file, see the man pages
  107. # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
  108. driftfile /var/lib/ntp/drift
  109. # Permit time synchronization with our time source, but do not
  110. # permit the source to query or modify the service on this system.
  111. restrict default kod nomodify notrap nopeer noquery
  112. restrict -6 default kod nomodify notrap nopeer noquery
  113. restrict 111.230.189.174 mask 255.255.255.255 nomodify notrap
  114. restrict time1.cloud.tencent.com nomodify notrap
  115. restrict time2.cloud.tencent.com nomodify notrap
  116. # 使用time1.cloud.tencent.com等域名在系统重启后,会报“ntpd_intres[1081]: host name not found:”保险起见此处添加111.230.189.174
  117. # 111.230.189.174为time2.cloud.tencent.com中其中一个地址
  118. # Permit all access over the loopback interface. This could
  119. # be tightened as well, but to do so would effect some of
  120. # the administrative functions.
  121. restrict 127.0.0.1
  122. restrict ::1
  123. # Hosts on local network are less restricted.
  124. restrict 192.168.7.102 mask 255.255.255.255 nomodify notrap
  125. #restrict 192.168.7.199 mask 255.255.255.255 nomodify notrap
  126. restrict 0.0.0.0 mask 0.0.0.0 notrust
  127. interface ignore wildcard
  128. interface listen enp2s0
  129. # Use public servers from the pool.ntp.org project.
  130. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  131. server 111.230.189.174 prefer
  132. server time1.cloud.tencent.com iburst
  133. server time2.cloud.tencent.com iburst
  134. #broadcast 192.168.1.255 autokey # broadcast server
  135. #broadcastclient # broadcast client
  136. #broadcast 224.0.1.1 autokey # multicast server
  137. #multicastclient 224.0.1.1 # multicast client
  138. #manycastserver 239.255.254.254 # manycast server
  139. #manycastclient 239.255.254.254 autokey # manycast client
  140. # Enable public key cryptography.
  141. #crypto
  142. includefile /etc/ntp/crypto/pw
  143. # Key file containing the keys and key identifiers used when operating
  144. # with symmetric key cryptography.
  145. keys /etc/ntp/keys
  146. # Specify the key identifiers which are trusted.
  147. #trustedkey 4 8 42
  148. # Specify the key identifier to use with the ntpdc utility.
  149. #requestkey 8
  150. # Specify the key identifier to use with the ntpq utility.
  151. #controlkey 8
  152. # Enable writing of statistics records.
  153. #statistics clockstats cryptostats loopstats peerstats
  154. # Disable the monitoring facility to prevent amplification attacks using ntpdc
  155. # monlist command when default restrict does not include the noquery flag. See
  156. # CVE-2013-5211 for more details.
  157. # Note: Monitoring will not be disabled with the limited restriction flag.
  158. disable monitor
  159. 8.2.特殊补充说明:
  160. 8.3其中“restrict 192.168.7.102 mask 255.255.255.255 nomodify notrap”
  161. 可以修改为(可根据实际情况开放整个IP段)-->
  162. “restrict 192.168.7.1 mask 255.255.255.0 nomodify notrap”
  163. 8.4 其中“interface listen enp2s0” 中的 “enp2s0” 已实际服务器为主,有的是“eth0”
  164. 8.5.重启ntpd服务
  165. [root@DBTest:/root]# systemctl restart ntpd
  166. [root@DBTest:/root]# ntpq -p
  167. remote refid st t when poll reach delay offset jitter
  168. ==============================================================================
  169. *139.199.215.251 100.122.36.196 2 u 11 64 1 29.245 -14.986 0.116
  170. +111.230.189.174 100.122.36.4 2 u 10 64 1 25.432 -15.905 0.115
  171. 9 NTP防御方式建议
  172. 9.1.NTP服务端加固服务
  173. 9.2 NTP 服务器升级到 4.2.7p26或更高版本
  174. 9.3 关闭现在 NTP 服务的 monlist 功能,在ntp.conf配置文件中增加disable monitor选项
  175. 9.4 改用Chrony服务
  176. 9.5 防御 NTP 反射和放大攻击
  177. 9.6 由于这种攻击的特征比较明显,所以可以通过网络层或者借助运营商实施 ACL 来防御
  178. 9.7 使用防 DDoS 设备进行清洗

二、NTP客户端

  1. NTP客户端安装
  2. yum install ntp -y
  3. 配置NTP配置文件
  4. [root@host-192-168-2-134 ~]# cat /etc/ntp.conf
  5. //修改位于20行左右的server几行--->修改为:
  6. server 10.39.149.249 iburst
  7. 2.2.1 手动更新时间
  8. ntpdate 10.39.149.249
  9. [root@DbMysql:/root]# ntpdate 10.39.149.249
  10. 24 Feb 10:19:42 ntpdate[7367]: adjust time server 10.39.149.249 offset 0.000320 sec
  11. 运行NTP服务
  12. systemctl enable ntpd
  13. systemctl start ntpd
  14. systemctl status ntpd
  15. 查看状态
  16. [root@host-192-168-2-134 ~]# ntpstat
  17. synchronised to NTP server (10.39.149.249) at stratum 3
  18. time correct to within 993 ms
  19. polling server every 64 s
  20. [root@host-192-168-2-134 ~]# watch ntpq -p
  21. Every 2.0s: ntpq -p Wed Feb 24 10:24:42 2021
  22. remote refid st t when poll reach delay offset jitter
  23. ==============================================================================
  24. *10.39.149.249 10.39.149.250 2 u 3 64 7 0.257 -0.115 0.096
  25. NTP客户端安全设置示例
  26. 1.配置/etc/ntp.conf
  27. [root@host-192-168-2-134 ~]# egrep -Ev "^#|^$" /etc/ntp.conf
  28. driftfile /var/lib/ntp/drift
  29. restrict default kod nomodify notrap nopeer noquery
  30. restrict -6 default kod nomodify notrap nopeer noquery
  31. restrict 10.39.149.249 mask 255.255.255.0 nomodify notrap
  32. restrict 127.0.0.1
  33. restrict ::1
  34. restrict 0.0.0.0 mask 0.0.0.0 notrust
  35. interface ignore wildcard
  36. interface listen enp2s0
  37. server 10.39.149.249 iburst
  38. includefile /etc/ntp/crypto/pw
  39. keys /etc/ntp/keys
  40. disable monitor
  41. 2.重启ntp服务
  42. systemctl restart ntpd
  43. systemctl status ntpd

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/192605
推荐阅读
相关标签
  

闽ICP备14008679号