【ntp】CentOS上搭建ntp服务器,并实现时间同步

NTP服务器顾名思义就是时间同步服务器(Network Time Protocol),Linux下的ntp服务器配置相对来说都比较容易,但在Linux下有一个弊端,不同时区或者说是时间相差太大的无法同步,所以在配置ntp服务器之前需要把时间配置成相同的。

【ntp】CentOS上搭建ntp服务器,并实现时间同步_第1张图片

NTP时钟同步方式说明

NTP在linux下有两种时钟同步方式,分别为直接同步和平滑同步: 

直接同步

使用ntpdate命令进行同步,直接进行时间变更。如果服务器上存在一个12点运行的任务,当前服务器时间是13点,但标准时间时11点,使用此命令可能会造成任务重复执行。因此使用ntpdate同步可能会引发风险,因此该命令也多用于配置时钟同步服务时第一次同步时间时使用。

平滑同步

使用ntpd进行时钟同步,可以保证一个时间不经历两次,它每次同步时间的偏移量不会太陡,是慢慢来的,这正因为这样,ntpd平滑同步可能耗费的时间比较长。

标准时钟同步服务

http://www.pool.ntp.org/zone/cn

这个网站包含全球的标准时间同步服务,也包括对中国时间的同步,对应的URL为:cn.pool.ntp.org

在其中也描述了ntp配置文件中的建议写法:

server  1.cn.pool.ntp.org

server  2.asia.pool.ntp.org

server  3.asia.pool.ntp.org

实验室集群没有联网,我们需要搭建ntp服务器并进行时间同步。

现使用的系统为centos7.2,机器使用情况如下表所示,这里以192.168.1.102为ntp server,192.168.1.104为client对时间进行同步。

NTP server   192.168.1.102

client       192.168.1.104

方法一:在所有节点安装 NTP,然后一台设置为server,其他为client,和server同步

1.在集群中所有节点上安装ntp

# yum  -y  install ntp 

2.所有节点设置时区,这里设置为中国所用时间

# timedatectl set-timezone Asia/Shanghai 

3.在server节点上启动ntp服务

# systemctl start ntpd

# systemctl enable ntpd

4.在server节点上设置现在的准确时间

# timedatectl set-time HH:MM:SS 

5.在server节点上设置其ntp服务器为其自身,同时设置可以接受连接服务的客户端,是通过更改/etc/ntp.conf文件来实现,其中server设置127.127.1.0为其自身,新增加一个 restrict 段为可以接受服务的网段

 # vim  /etc/ntp.conf

【ntp】CentOS上搭建ntp服务器,并实现时间同步_第2张图片

6.重启ntpd服务

# systemctl restart ntpd

7.在client节点上设置ntp服务器为server节点

 # vim  /etc/ntp.conf 

【ntp】CentOS上搭建ntp服务器,并实现时间同步_第3张图片

关于防火墙设置

关闭NTP服务器上的防火墙并非万全之策,毕竟存在即合理。

最好的解决方案一定不会是关闭防火墙。接下来,我们尝试把ntpd服务添加到防火墙策略里面。

由于CentOS7默认使用的防火墙是firewalld,所以只需要配置firewalld开放ntpd使用的123端口即可。

由于此NTP服务器需要放在dmz区域,所以我们需要把dmz区设置为默认区:

#  firewall-cmd --set-default-zone=dmz

# firewall-cmd  --permanent --zone=dmz  --add-interface=ens33

ntpd服务使用的端口是123,协议是udp协议,添加到防火墙策略:

# firewall-cmd --permanent --zone=dmz --add-port=123/udp

# firewall-cmd --reload

8.在client节点上同步server的时间

#  ntpdate 10.107.18.35 

9.client节点启动ntpd服务

# systemctl start ntpd

# systemctl enable ntpd

10.所有节点启动时间同步

#  timedatectl set-ntp yes

11.使用ntpq -p 查看网络中的NTP服务器,同时显示客户端和每个服务器的关系

【ntp】CentOS上搭建ntp服务器,并实现时间同步_第4张图片

12.使用ntpstat 命令查看时间同步状态,这个一般需要5-10分钟后才能成功连接和同步

刚启动时:

#  ntpstat 

unsynchronised

  time server re-starting

polling server every 8 s

连接并同步后:

synchronised to NTP server (202.112.10.36) at stratum 3

   time correct to within 275 ms

   polling server every 256 s

方法二:只在NTP server节点安装安装 NTP,其他为client,通过定时任务和NTP server时间同步

服务端设置同方法一

客户端设置

修改/etc/sysconfig/ntpdate,让ntpdate每次同步时间之后把时间写入hwclock,相当于命令hwclock -w

将最后一行SYNC_HWCLOCK=no修改为:SYNC_HWCLOCK=yes

#  vim  

/etc/sysconfig/ntpdate

【ntp】CentOS上搭建ntp服务器,并实现时间同步_第5张图片

客户端定时任务配置

# crontab -e

59 23 * * *  /sbin/ntpdate 192.168.1.102

设置为每天23:59分执行,重启crond服务

# systemctl  restart crond.service

至此,NTP服务器构建完成!

你可能感兴趣的:(【ntp】CentOS上搭建ntp服务器,并实现时间同步)