搭建NTP时间服务器

文章目录

    • NTP服务说明
    • 部署服务端NTP服务
      • 参数详解
      • 定时任务语法说明

NTP服务说明

(1)NTP服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,某些应用对时间实时性要求高,必须保证时间的统一性

(2)在互联网中的时间服务器也有很多,
例如: 复旦大学免费NTP:"ntp.fudan.edu.cn
    阿里云免费NTP:"ntp1.aliyun.com"
NTP服务器的监听端口为UDP123端口,如果防火墙开启的话就需要在本地防火墙开启运行客户端访问123端口
实验系统环境

root@rsync[15:33:47]:~#cat /etc/redhat-release
CentOS release 6.9 (Final)

在iptables配置文件中添加如下规则:

vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT

如图所示
搭建NTP时间服务器_第1张图片

部署服务端NTP服务

第一步:yum安装NTP

yum install ntp ntpdate -y

第二步:配置ntp.conf配置文件

#备份源配置文件
cp /etc/ntp.conf{,.bak}

#清空原有文件中的配置内容
> /etc/ntp.conf

#编辑ntp.conf配置文件
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server  127.127.1.0     # local clock
server  ntp3.aliyun.com #阿里云时间服务器
fudge   127.127.1.0 stratum 10
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

参数详解

参数 说明
restrict default ignore # 关闭所有的 NTP 要求封包
restrict 127.0.0.1 # 开启内部递归网络接口 lo
restrict 192.168.0.0 mask 255.255.255.0 nomodify #在内部子网里面的客户端可以进行网络校时,但不能修改NTP服务器的时间参数。
server 198.123.30.132 #198.123.30.132作为上级时间服务器参考
restrict 198.123.30.132 #开放server 访问我们ntp服务的权限
driftfile /var/lib/ntp/drift 在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内
broadcastdelay 0.008 #广播延迟时间

说明
一般情况下,下载下来后不需要修改配置文件,启动ntp服务即可

第三步:启动/关闭/重启-ntp服务

#以守护进程启动ntpd服务
#关闭ntp服务
root@rsync[15:41:36]:~#/etc/init.d/ntpd stop
Shutting down ntpd:                                        [  OK  ]

#启动ntp服务
root@rsync[15:45:24]:~#/etc/init.d/ntpd start
Starting ntpd:                                             [  OK  ]

#重启ntp服务
root@rsync[15:45:27]:~#/etc/init.d/ntpd restart
Shutting down ntpd:                                        [  OK  ]
Starting ntpd:                                             [  OK

#查看ntp服务状态
root@rsync[15:41:26]:~#ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*cn.ntp.faelix.n 185.134.196.169  2 u    1   64    1  173.221   -0.756   1.068
 ntp5.flashdance 194.58.202.20    2 u    1   64    1  384.297    0.655   1.245
 119.28.183.184  100.122.36.4     2 u    1   64    1   50.899   11.596   0.778
 static-5-103-13 .GPS.            1 u    1   64    1  349.924    6.084   0.371

注意
ntpd启动后,客户端等待几分钟再与服务端进行时间同步,否则会报错提示"no server suitable for synchronization found"

##部署客户端
第一步:安装ntp服务
因为需要用到ntpdate这个命令所以要安装一下ntp服务

yum install ntp ntpdate -y

第二步:命令行测试是否可用

#修改时间为2012年
root@db01[16:22:29]:~#date -s "20120523 01:01:01"
Wed May 23 01:01:01 CST 2012

root@db01[01:01:01]:~#date
Wed May 23 01:01:03 CST 2012

#时间同步测试,把服务端上的时间同步到客户端上来
root@db01[01:01:50]:~#ntpdate 10.0.0.31
 5 Jan 16:24:28 ntpdate[36173]: step time server 10.0.0.31 offset 208970553.688881 sec
 
root@db01[16:24:28]:~#date
Sat Jan  5 16:24:46 CST 2019

第三步:添加配置crontab定时任务

#编辑定时任务
crontab -e

#添加定时任务
0  0   *  *  * /usr/sbin/ntpdate  10.0.0.31>>/data/logs/ntp.log 2>&1
#上面的IP地址是服务端的IP地址

定时任务语法说明

前面五个*号表示

前5个*字段分别表示:
       分钟:0-59
       小时:1-23
       日期:1-31
       月份:1-12
       星期:0-6(0表示周日)
一些特殊符号:
		*: 表示任何时刻
		,: 表示分割
		-:表示一个段,如第二端里: 1-5,就表示1到5点
		/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

例如:
0,10,20,30,40,50 * * * * 每隔10分 执行
*/10 * * * *         每隔10分 执行
* 1 * * *          从1:0到1:59 每隔1分钟 执行
0 1 * * *          1:00 执行
0 */1 * * *         毎时0分 每隔1小时 执行
0 * * * *          毎时0分 每隔1小时 执行
2 8-20/3 * * *       8:02,11:02,14:02,17:02,20:02 执行
30 5 1,15 * *        1日 和 15日的 5:30 执行

至此ntp服务已经配置完成

你可能感兴趣的:(Linux自动化运维)