NTP服务器时间同步

1、概述

NTP(Network Time Protocol)可以很方便的解决服务器之间的时间同步问题,Ubuntu系统下NTP安装也很方便,经过测试,在Ubuntu 16.04环境下,直接安装NTP服务,使用Ubuntu系统自带的pool ntp.ubuntu.com 时间服务器地址池,就可以实现时间同步。用户也可以选择NTP官方网站推荐的pool pool.ntp.org地址池,或者选择中国区的pool cn.pool.ntp.org地址池,都会生效的。

用户还可以选择集群中的1台作为主授时服务器(NTP 服务器角色),通过配置文件中的pool 地址池与上层的服务器同步时间,集群内所有其他机器(NTP客户端角色)的NTP配置文件中,使用Server xx.xx.xx.xx形式,明确指向主授时服务器IP地址,也可以实现为集群提供统一的时间服务。如果考虑高可靠性,还可以将多台服务器作为集群的授时服务器。

也可以到www.ntp.org网站中查找中国区的服务器地址,直接在NTP配置文件中使用这些地址,比如 server xx.xx.xx.xx 。

​ 下面的例子中,我们使用到的服务器信息:
​ 服务器名 IP地址 角色
​ rancher2 192.168.3.220 NTP 服务器
​ node221 192.168.3.221 NTP 客户端

2、部署NTP时间同步服务

2.1 所有服务器使用yum安装ntp服务

1
yum -y install ntp

改时区

1
2
echo " export TZ='Asia/Shanghai'" >> /etc/profile \
&& source /etc/profile

2.2 服务端配置

1
2
3
4
5
6
7
8
9
10
vim  /etc/ntp.conf
###comment following lines:
#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
###add following lines:
server 127.127.1.0 minpoll 4
fudge 127.127.1.0 stratum 0
restrict 192.168.56.0 mask 255.255.0.0 nomodify notrap #允许同步的客户端,这一行需要根据client的IP范围设置。

修改/etc/ntp/step-tickers文件如下

1
2
3
4
5
List of NTP servers used by the ntpdate service.

0.centos.pool.ntp.org

127.127.1.0

重启ntp服务,并查看server端是否运行正常,正常的标准就是ntpq -p指令的最下面一行是*:

1
2
3
4
5
6
7
systemctl enable ntpd
systemctl restart ntpd
ntpq -p

remote refid st t when poll reach delay offset jitter

*LOCAL(0) .LOCL. 0 l - 16 1 0.000 0.000 0.000

2.3 客户端配置

1
2
3
4
5
6
vim /etc/ntp.conf
#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 192.168.56.200 #服务端的地址

重启ntp服务并观察client是否正确连接到server端,同样正确连接的标准是ntpq -p的最下面一行以*号开头:

1
2
3
4
5
6
7
systemctl enable ntpd
systemctl restart ntpd
ntpq -p

remote refid st t when poll reach delay offset jitter

*ceph-admin .LOCL. 1 u 1 64 1 0.329 0.023 0.000

3、常用命令

停止NTP服务

1
sudo service ntp stop

只查询、不更新本机系统时间

1
sudo ntpdate -q pool.ntp.org

使用debug(-d)模式查询详细更新信息

1
sudo ntpdate -d pool.ntp.org

直接与pool.ntp.org中的服务器同步本机系统时间

1
sudo ntpdate pool.ntp.org

查询NTP连接上层授时服务器的状态

1
nptq -p

启动NTP服务

1
sudo service ntp start

查询ntp运行状态

1
sudo ntpstat

查看系统时间

1
2
3
4
date

#设置系统时间的日期为2018年07月09日08点44分30秒
sudo date -s "2018/07/09 08:44:30"

查看硬件时间

1
sudo hwclock --show

设置硬件时间

1
sudo hwclock --set --date="07/09/18 14:55:30"

使用硬件时间同步系统时间

1
sudo hwclock --hctosys

使用系统时间同步硬件时间

1
sudo hwclock --systohc
-------------本文结束感谢您的阅读-------------