NTP时间服务器部署
一、NTP时间服务器
1.1 NTP服务介绍
随着网络拓扑的日益复杂,整个网络内设备的时钟同步将变得十分重要。如果依靠管理员手工修改系统时钟,不仅工作量巨大,而且时钟的准确性也无法得到保证。网络时间协议( NetworkTime Protocol,NTP)的出现就是为了解决网络内设备系统时钟的同步问题。NTP是 TCP/IP协议簇里的一个应用层协议。NTP报文通过UDP传输,端口号是123。
1.2 公共NTP服务器
(1)阿里NTP地址:https://help.aliyun.com/document_detail/92704.html
ntp.aliyun.com
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com
(2)腾讯NTP地址:https://cloud.tencent.com/document/product/213/30392
time1.cloud.tencent.com
time2.cloud.tencent.com
time3.cloud.tencent.com
time4.cloud.tencent.com
time5.cloud.tencent.com
(3)google NTP地址:https://developers.google.com/time
time1.google.com
time2.google.com
time3.google.com
time4.google.com
注:海外业务推荐使用,国内不一定能访问。
(4)国家授时中心:http://www.ntsc.ac.cn/
ntp.ntsc.ac.cn
(5)ntp.org:https://www.ntp.org/
中国公共NTP服务器,https://www.pool.ntp.org/zone/cn
全球公共NTP服务器,https://www.ntppool.org/zone/@
0.cn.pool.ntp.org
1.cn.pool.ntp.org
2.cn.pool.ntp.org
3.cn.pool.ntp.org
(6)微软Windows公共NTP
time.windows.com
注:国内不建议使用。
(7)美国标准技术研究院 NTP:https://tf.nist.gov/tf-cgi/servers.cgi
time.nist.gov
二、NTP服务部署
2.1 NTP服务之ntpd
(1)NTP服务安装
[root@10-27-0-224 ~]# yum install ntp -y
(2)修改NTP配置
[root@10-27-0-224 ~]# vim /etc/ntp.conf driftfile /var/lib/ntp/drift logfile /var/log/ntpd.log # 新增日志目录 pidfile /var/run/ntp.pid # 定义pid路径 # restrict default nomodify notrap nopeer noquery # 拒绝所有IPv4的client连接此NTP服务器 restrict 10.27.0.0 mask 255.255.252.0 nomodify notrap # 授权10.27.0.0网段上的所有机器可以从这台机器上查询和同步时间 # 允许上游NTP时间服务器主动修改本机时间 restrict ntp1.aliyun.com nomodify restrict ntp2.aliyun.com nomodify restrict ntp3.aliyun.com nomodify restrict ntp4.aliyun.com nomodify # 定义使用的上游NTP服务器 server ntp1.aliyun.com iburst prefer # prefer表示为优先,表示本机优先同步该服务器时间 server ntp2.aliyun.com server ntp3.aliyun.com server ntp4.aliyun.com # 外部时间服务器不可用时,以本地时间作为时间服务 server 127.127.1.0 fudge 127.127.1.0 stratum 10 tinker dispersion 100 tinker step 1800 tinker stepout 3600
restrict格式:restrict [IP地址] mask [IP掩码] [参数]
参数:
◆ ignore # 关闭所有NTP联机服务
◆ nomodify # 客户端不能使用ntpc和ntpq这两个程序来更改服务器的时间参数,但客户端可以通过此主机来进行网络校时
◆ notrust # 客户端除非通过认证,否则客户端来源将视为不信任子网
◆ noquery # 客户端不能使用ntpc和ntpq等命令来查询时间服务器,等于不提供网络校时服务
◆ notrap # 不提供trap远程登录功能,trap服务是一种远程时间日志服务
◆ nopeer # 提供时间服务,但不作为对等体
◆ kod # 向不安全的访问者发送Kiss-Of-Death报文
server host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]
◆ host # 是上层NTP服务器的IP地址或域名
◆ key # 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号
◆ version # 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2
◆ prefer # 如果有多个server选项,具有该参数的服务器有限使用
◆ mode # 指定数据报文mode字段的值
◆ minpoll # 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14
◆ maxpoll # 指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14
◆ iburst # 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒
(3)查看NTP服务
[root@10-27-0-224 ~]# systemctl status ntpd.service ● ntpd.service - Network Time Service Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2021-09-29 01:04:40 EST; 9min ago Process: 70469 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 70470 (ntpd) CGroup: /system.slice/ntpd.service └─70470 /usr/sbin/ntpd -u ntp:ntp -g Sep 29 01:04:40 10-27-0-224 ntpd[70470]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123 Sep 29 01:04:40 10-27-0-224 ntpd[70470]: Listen and drop on 1 v6wildcard :: UDP 123 Sep 29 01:04:40 10-27-0-224 ntpd[70470]: Listen normally on 2 lo 127.0.0.1 UDP 123 Sep 29 01:04:40 10-27-0-224 ntpd[70470]: Listen normally on 3 eth0 10.27.0.224 UDP 123 Sep 29 01:04:40 10-27-0-224 ntpd[70470]: Listening on routing socket on fd #20 for interface updates Sep 29 01:04:40 10-27-0-224 ntpd[70470]: inappropriate address 127.0.0.1 for the fudge command, line ignored Sep 29 01:04:40 10-27-0-224 ntpd[70470]: 0.0.0.0 c016 06 restart Sep 29 01:04:40 10-27-0-224 ntpd[70470]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM Sep 29 01:04:40 10-27-0-224 ntpd[70470]: 0.0.0.0 c011 01 freq_not_set Sep 29 01:07:54 10-27-0-224 ntpd[70470]: 0.0.0.0 c614 04 freq_mode
(4)NTP同步状态
列 | 说明 |
---|---|
remote | 当前远程NTP服务器,+表示可用,-表示不可用,*表示推荐 |
refid | 用于和本地时钟同步的远程服务器的 IP 地址 |
st | Stratum(阶层),表示经过n=2次NTP同步到当前服务器 |
t | 类型,u表示单播(unicast)。其它值包括本地(local)、多播(multicast)、广播(broadcast)。 |
when | 自从上次和服务器交互后经过的时间(以秒数计)。 |
poll | 和服务器的轮询间隔,以秒数计。 |
reach | 表示和服务器交互是否有任何错误的八进制数。值 337 表示 100% 成功(即十进制的255)。 |
delay | 服务器和远程服务器来回的时间。 |
offset | 我们服务器和远程服务器的时间差异,以毫秒数计。 |
jitter | 两次取样之间平均时差,以毫秒数计。 |
# 上层 NTP 的状态 [root@10-27-0-224 ~]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 120.25.115.20 10.137.53.7 2 u 11 64 3 242.748 33.893 0.807 203.107.6.88 10.137.38.86 2 u 12 64 1 239.911 20.332 0.000 localhost .INIT. 16 l - 64 0 0.000 0.000 0.000 [root@10-27-0-224 ~]# watch ntpq -p # 实时查看 # NTP同步状态 [root@10-27-0-224 ~]# ntpstat # 确认本地NTP与上层NTP服务器是否联通 synchronised to NTP server (120.25.115.20) at stratum 3 # 本NTP服务器层次为3,已向120.25.115.20 NTP同步过 time correct to within 133 ms # 时间校正到相差133ms之内 polling server every 64 s # 每64秒会向上级NTP轮询更新一次时间 # NTP同步状态 [root@10-27-0-224 ~]# timedatectl status Local time: Wed 2021-09-29 02:30:20 EST Universal time: Wed 2021-09-29 07:30:20 UTC RTC time: Wed 2021-09-29 07:30:20 Time zone: EST (EST, -0500) NTP enabled: no NTP synchronized: yes RTC in local TZ: no DST active: n/a [root@10-27-0-224 ~]# timedatectl list-timezones # 查看时区列表 [root@10-27-0-224 ~]# timedatectl set-timezone Asia/Shanghai # 设置本地时区 # 设置日期与时间 timedatectl set-time "YYYY-MM-DD HH:MM:SS" timedatectl set-time "YYYY-MM-DD" timedatectl set-time "HH:MM:SS" timedatectl set-ntp no # 关闭同步 timedatectl set-ntp yes # 开启同步
(5)客户端时间同步测试
[root@ansible ~]# ntpdate 107.155.48.73
2.2 NTP服务之chronyd
Chrony是网络时间协议(NTP)的另一种实现,与ntpd相比,它能够更快地同步系统时钟并具有更好的准确性。Chrony还可以对时钟频率的快速变化提供更好的响应,这对于时钟不稳定或无法保持时钟频率恒定的节能技术的虚拟机很有用。
◆ Chrony 是一个开源的自由软件,它能帮助你保持系统时钟与时钟服务器(NTP)同步。
◆ 它由两个程序组成,分别是 chronyd 和 chronyc。
◆ Chronyd 是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步,它确定计算机增减时间的比率,并对此进行补偿。
◆ Chronyc 提供了一个用户界面,用于监控性能并进行多样化的配置。它可以在 chronyd 实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
服务端
(1)关闭老版本NTP服务,并禁用
[root@10-27-0-224 ~]# yum search ntp Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile ================================================ N/S matched: ntp ================================================ nagios-plugins-ntp.x86_64 : Nagios Plugin - check_ntp nagios-plugins-ntp-perl.x86_64 : Nagios Plugin - check_ntp.pl nodejs-sntp.noarch : SNTP v4 client (RFC4330) for Node.js ntp.x86_64 : The NTP daemon and utilities ntp-doc.noarch : NTP documentation ntp-perl.noarch : NTP utilities written in Perl ntpdate.x86_64 : Utility to set the date and time via NTP
[root@10-27-0-224 ~]# yum remove ntp -y # 卸载老版NTP [root@10-27-0-224 ~]# systemctl mask ntpd # 关闭NTP服务
(2)安装新版NTP服务chrony
[root@10-27-0-224 ~]# yum install chrony -y [root@10-27-0-224 ~]# systemctl restart chronyd.service [root@10-27-0-224 ~]# systemctl enable chronyd.service
(3)修改主配置文件
[root@10-27-0-224 ~]# vim /etc/chrony.conf server 10.27.0.224 iburst # 上游NTP服务器 driftfile /var/lib/chrony/drift # 记录系统时钟获得/丢失时间的速率至drift文件中 allow 0.0.0.0/0 # 允许所有客户端主机/IP地址[掩码] local stratum 10 # 开启自我对时功能 makestep 10 3 # 如果系统时钟的偏移量大于10秒,则允许在前三次更新中步进调整系统时钟 rtcsync # 启用RTC(实时时钟)的内核同步 keyfile /etc/chrony.keys # 指定包含NTP验证密钥的文件 logdir /var/log/chrony # 指定存放日志文件的目录 noclientlog # 禁用客户端访问的日志记录 logchange 0.5 # 如果时钟调整大于0.5秒,则向系统日志发送消息
# 修改NTP服务器时间 [root@10-27-0-224 ~]# timedatectl set-ntp no [root@10-27-0-224 ~]# timedatectl set-time "2021-01-01 01:01:01" [root@10-27-0-224 ~]# date Fri Jan 1 01:01:17 EST 2021 [root@10-27-0-224 ~]# timedatectl set-ntp yes
(4)查看时间同步情况
[root@10-27-0-224 ~]# chronyc sources -v 210 Number of sources = 1 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 10-27-0-224 10 6 377 152 -96ns[-5505ns] +/- 11us 注:最后一行的*代表同步成功,?代表未同步 [root@10-27-0-224 ~]# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 10-27-0-224 10 6 377 178 -96ns[-5505ns] +/- 11us [root@10-27-0-224 ~]# chronyc sourcestats 210 Number of sources = 1 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== 10-27-0-224 3 3 4 +0.398 205.110 -96ns 674ns
(5)命令交互式
[root@10-27-0-224 ~]# chronyc chrony version 3.4 Copyright (C) 1997-2003, 2007, 2009-2018 Richard P. Curnow and others chrony comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the GNU General Public License version 2 for details. chronyc> sourcestats 210 Number of sources = 1 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== 10-27-0-224 3 3 4 +0.398 205.110 -96ns 674ns
(6)查看时间同步情况
[root@10-27-0-224 ~]# timedatectl Local time: Fri 2021-01-01 01:17:26 EST Universal time: Fri 2021-01-01 06:17:26 UTC # 世界统一时间 RTC time: Fri 2021-01-01 06:17:26 # 硬件时钟的时间 Time zone: EST (EST, -0500) # 当前时区 NTP enabled: yes # 开启自动同步时间服务器功能 NTP synchronized: yes # 查看时间已经同步 RTC in local TZ: no # 将时区设置为本地时区 DST active: n/a
[root@10-27-0-224 ~]# chronyc tracking Reference ID : 0A1B00E0 (10-27-0-224) Stratum : 11 Ref time (UTC) : Fri Jan 01 06:12:59 2021 System time : 0.000000002 seconds slow of NTP time Last offset : -0.000005409 seconds RMS offset : 0.000005409 seconds Frequency : 11.928 ppm slow Residual freq : +0.398 ppm Skew : 0.361 ppm Root delay : 0.000022110 seconds Root dispersion : 0.000557802 seconds Update interval : 0.0 seconds Leap status : Normal
客户端
(1)安装chrony
[root@10-27-0-132 ~]# yum install chrony -y
(2)修改时间同步服务器
[root@10-27-0-132 ~]# vim /etc/chrony.conf server 10.27.0.224 iburst
(4)客户端进行时间同步
[root@10-27-0-132 ~]# ntpdate 10.27.0.224 1 Jan 01:13:26 ntpdate[10471]: step time server 10.27.0.224 offset -23515943.870334 sec [root@10-27-0-132 ~]# date Fri Jan 1 01:13:31 EST 2021
作者:UStarGao
链接:https://www.starcto.com/application_of_operational/246.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2022-03-22Redis数据备份与恢复以及迁移解决方案
- 2022-03-08Linux SSH的SSL弱加密算法漏洞修复
- 2021-02-28Linux账户风险和安全策略
- 2021-09-16开源SQL审计检查分析平台
- 2021-01-27数据库宕机以后恢复的过程?如何保证事务的ACID特性?