一、NTP服务器介绍
网络时间协议(Network Time Protocol,NTP)服务器,也就是日常所说的NTP服务器,用来提供同步时间服务。在生产环境中,很多人都会忽略时间问题,实际上服务器、网络设备等,特别是Linux操作系统和虚拟化平台的时间不同步会导致很多问题。那么搭建一台NTP服务器就非常重要,生产环境中的设备可以直接与NTP服务器进行时间同步,NTP服务器本身也可以访问互连的NTP服务器进行同步。NTP服务器可以是物理服务器,也可以是虚拟机。
二、安装NTP服务组件
在Linux服务器(如,CentOS、Ubuntu等操作系统)上,使用命令进行安装。
本实验以CentOS 7 Linux环境进行演示操作记录。
YUM源已更新成阿里云开源镜像站里的CentOS镜像,加速快捷访问。
[root@ntp ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up list of fastest mirrors
[root@ntp ~]# yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/4): extras/7/x86_64/primary_db | 243 kB 00:00:00
(3/4): updates/7/x86_64/primary_db | 12 MB 00:00:01
(4/4): base/7/x86_64/primary_db | 6.1 MB 00:00:03
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 500
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 2,963
repolist: 13,535
[root@ntp ~]#
执行yum install -y ntp
命令,进行ntp组件安装。
[root@ntp ~]# yum install -y ntp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package ntp.x86_64 0:4.2.6p5-29.el7.centos.2 will be installed
--> Processing Dependency: ntpdate = 4.2.6p5-29.el7.centos.2 for package: ntp-4.2.6p5-29.el7.centos.2.x86_64
--> Processing Dependency: libopts.so.25()(64bit) for package: ntp-4.2.6p5-29.el7.centos.2.x86_64
--> Running transaction check
---> Package autogen-libopts.x86_64 0:5.18-5.el7 will be installed
---> Package ntpdate.x86_64 0:4.2.6p5-29.el7.centos.2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================================================
Package Arch Version Repository Size
=================================================================================================================
Installing:
ntp x86_64 4.2.6p5-29.el7.centos.2 base 549 k
Installing for dependencies:
autogen-libopts x86_64 5.18-5.el7 base 66 k
ntpdate x86_64 4.2.6p5-29.el7.centos.2 base 87 k
Transaction Summary
=================================================================================================================
Install 1 Package (+2 Dependent packages)
Total download size: 701 k
Installed size: 1.6 M
Downloading packages:
(1/3): autogen-libopts-5.18-5.el7.x86_64.rpm | 66 kB 00:00:00
(2/3): ntpdate-4.2.6p5-29.el7.centos.2.x86_64.rpm | 87 kB 00:00:00
(3/3): ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm | 549 kB 00:00:00
-----------------------------------------------------------------------------------------------------------------
Total 1.7 MB/s | 701 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : autogen-libopts-5.18-5.el7.x86_64 1/3
Installing : ntpdate-4.2.6p5-29.el7.centos.2.x86_64 2/3
Installing : ntp-4.2.6p5-29.el7.centos.2.x86_64 3/3
Verifying : ntpdate-4.2.6p5-29.el7.centos.2.x86_64 1/3
Verifying : ntp-4.2.6p5-29.el7.centos.2.x86_64 2/3
Verifying : autogen-libopts-5.18-5.el7.x86_64 3/3
Installed:
ntp.x86_64 0:4.2.6p5-29.el7.centos.2
Dependency Installed:
autogen-libopts.x86_64 0:5.18-5.el7 ntpdate.x86_64 0:4.2.6p5-29.el7.centos.2
Complete!
[root@ntp ~]#
三、配置阿里云镜像站NTP服务
配置之前,测试服务器是否能够访问到阿里云NTP服务器。
ping ntp.aliyun.com -c 5
修改/etc/ntp.conf
配置文件。
注释掉原来配置文件中的NTP服务器地址,添加阿里云NTP服务器地址。
[root@ntp ~]# vi /etc/ntp.conf
[root@ntp ~]# cat /etc/ntp.conf
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
driftfile /var/lib/ntp/drift
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp.aliyun.com
#broadcast 192.168.1.255 autokey # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 autokey # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
# Enable public key cryptography.
#crypto
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
# Disable the monitoring facility to prevent amplification attacks using ntpdc
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor
[root@ntp ~]#
四、启动NTP服务
启动ntp服务systemctl start ntpd
设置ntp服务开机自启动systemctl enable ntpd
查看ntp服务是否正常systemctl status ntpd
[root@ntp ~]# systemctl start ntpd
[root@ntp ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
[root@ntp ~]# systemctl status ntpd
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2021-11-28 19:06:34 CST; 23h left
Main PID: 1988 (ntpd)
CGroup: /system.slice/ntpd.service
└─1988 /usr/sbin/ntpd -u ntp:ntp -g
Nov 28 19:06:34 ntp ntpd[1988]: Listen normally on 3 ens32 192.168.1.50 UDP 123
Nov 28 19:06:34 ntp ntpd[1988]: Listen normally on 4 lo ::1 UDP 123
Nov 28 19:06:34 ntp ntpd[1988]: Listen normally on 5 ens32 fe80::e4b:3ef:613c:8741 UDP 123
Nov 28 19:06:34 ntp ntpd[1988]: Listening on routing socket on fd #22 for interface updates
Nov 28 19:06:34 ntp ntpd[1988]: 0.0.0.0 c016 06 restart
Nov 28 19:06:34 ntp ntpd[1988]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
Nov 28 19:06:34 ntp ntpd[1988]: 0.0.0.0 c011 01 freq_not_set
Nov 28 19:09:51 ntp ntpd[1988]: 0.0.0.0 c61c 0c clock_step -86398.982768 s
Nov 27 19:09:52 ntp ntpd[1988]: 0.0.0.0 c614 04 freq_mode
Nov 27 19:09:53 ntp ntpd[1988]: 0.0.0.0 c618 08 no_sys_peer
[root@ntp ~]#
五、查看NTP源
ntpq -p
即[203.107.6.88]地址为阿里云NTP服务器的IP地址。
[root@ntp ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
203.107.6.88 100.107.25.114 2 u 56 64 7 13.685 -0.002 0.415
六、查看NTP服务状态
# 输出如下内容,表示在同步中,需要耐心等待一下
[root@ntp ~]# ntpstat
unsynchronised
time server re-starting
polling server every 8 s
# 输出如下内容,表示同步成功
[root@ntp ~]# ntpstat
synchronised to NTP server (203.107.6.88) at stratum 3
time correct to within 958 ms
polling server every 64 s
七、将客户端与NTP服务器同步
[root@client ~]# ntpdate -d 192.168.1.50
28 Nov 19:37:54 ntpdate[2880]: ntpdate 4.2.6p5@1.2349-o Tue Jun 23 15:38:19 UTC 2020 (1)
Looking for host 192.168.1.50 and service ntp
host found : 192.168.1.50
transmit(192.168.1.50)
receive(192.168.1.50)
transmit(192.168.1.50)
receive(192.168.1.50)
transmit(192.168.1.50)
receive(192.168.1.50)
transmit(192.168.1.50)
receive(192.168.1.50)
server 192.168.1.50, port 123
stratum 3, precision -25, leap 00, trust 000
refid [192.168.1.50], delay 0.02652, dispersion 0.00000
transmitted 4, in filter 4
reference time: e54c9534.6f868aa9 Sat, Nov 27 2021 19:29:56.435
originate timestamp: e54c9719.4617ce7f Sat, Nov 27 2021 19:38:01.273
transmit timestamp: e54de898.b45bc870 Sun, Nov 28 2021 19:38:00.704
filter delay: 0.02658 0.02655 0.02652 0.02660
0.00000 0.00000 0.00000 0.00000
filter offset: -86399.4 -86399.4 -86399.4 -86399.4
0.000000 0.000000 0.000000 0.000000
delay 0.02652, dispersion 0.00000
offset -86399.431479
28 Nov 19:38:00 ntpdate[2880]: step time server 192.168.1.50 offset -86399.431479 sec
[root@client ~]#
八、将系统时间同步到硬件
[root@client ~]# hwclock -w
[root@client ~]# date
Sun Nov 28 19:39:10 CST 2021