资讯专栏INFORMATION COLUMN

NTP时间服务器部署

社区管理员 / 1214人阅读

一、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)查看时间同步情况

                 
               
              

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128166.html

相关文章

  • 数人云工程师手记 | 双剑合璧,分布式部署两步走

    摘要:今天小数给大家带来的是数人云工程师金烨的分享,有关于自动快速部署服务相关组件的一些实践。当与相遇,双剑合璧,一切变得如此简单有趣。通过将服务注册到来做健康检查。 今天小数给大家带来的是数人云工程师金烨的分享,有关于自动快速部署DCOS服务相关组件的一些实践。当Ansible与Docker相遇,双剑合璧,一切变得如此简单有趣。 本次分享将包括以下内容: 云平台部署使用的服务、组件 Do...

    Jonathan Shieber 评论0 收藏0
  • 【Memache】部署Memcache,采用Supervisord管理

    摘要:修改主机名主机名服务器磁盘挂载将磁盘挂载修改为方式初始化服务器安装程序下载,根据需求安装所需与执行初始化脚本基础工作常用类库常用软件配置设置前缀为解除与前缀的对应关系 1.修改主机名 vim /etc/hostname vim /etc/hosts hostname 2.服务器磁盘挂载 vim /data/scripts/auto_fdisk.sh 3.将磁盘挂载修改为uuid方式...

    skinner 评论0 收藏0
  • 手把手教你搭建Linux时间同步务器

    摘要:按照离外部源的远近把所有服务器归入不同的层中。服务器就是利用协议提供时间同步服务的。如果没有则进行下一步启动服务测试服务客户端时间同步客户机要等分钟左右再与新启动的服务器进行时间同步,否则会报错。 ...

    jayce 评论0 收藏0
  • 中国时间务器,国内阿里云时间务器

    摘要:设定东八时区里面用表示东八区,等价于中的北京重庆香港特别行政区,乌鲁木齐的时区设置重启服务重新检查中国时间服务器,国内阿里云时间服务器很多用户使用的是国外VPS使用过程中常常遇到时间与国内不同步的情况好在阿里提供了7台NTP服务器,地址如下:阿里云提供了7个NTP时间服务器也就是Internet时间同步服务器地址 ntp1.aliyun.comntp2.aliyun.comntp3.aliy...

    Leo_chen 评论0 收藏0
  • 中国时间务器,国内阿里云时间务器

    摘要:设定东八时区里面用表示东八区,等价于中的北京重庆香港特别行政区,乌鲁木齐的时区设置重启服务重新检查很多用户使用的是国外VPS使用过程中常常遇到时间与国内不同步的情况好在阿里提供了7台NTP服务器,地址如下:阿里云提供了7个NTP时间服务器也就是Internet时间同步服务器地址 ntp1.aliyun.comntp2.aliyun.comntp3.aliyun.comntp4.aliyun....

    huangjinnan 评论0 收藏0

发表评论

0条评论

社区管理员

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<