Linux 环境下NTP 服务搭建

简介:

##################################################################################

实验环境:Red Hat 6.8

vmware workstation 12.5

NTP Server Name:ocbsap01

NTP client Name: ocbsweb01

实验目的:架设一台ntp服务器,使用internet中的ntp服务器进行网络校时,

         并允许子网192.168.10.0/24中的客户机通过该服务器进行网络校时

实验外网NTP地址: cn.pool.ntp.org  

###################################################################################

   NTP服务器Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

协议使用的UDP 123端口


#####################Server 端操作#####################################

1、检查ntp软件是否安装,这里安装的是系统自带版本ntp-4.2.6p5-10.el6.x86_64

1
2
3
[root@ocbsap01 /] # rpm -qa | grep ntp-
ntp-4.2.6p5-10.el6.x86_64
ntpdate-4.2.6p5-10.el6.x86_64


2、编辑NTP配置文件/etc/ntp.conf,先备份一下,然后echo > /etc/ntp.conf清空文件复制如下配置

restrict 参数解释:

restrict 控制相关权限。

语法为: restrict IP地址 mask 子网掩码 参数

其中IP地址也可以是default ,default 就是指所有的IP、


参数有以下几个:

ignore  :关闭所有的 NTP 联机服务

nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。

notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网

noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器

notrap : 不提供trap远端登陆:拒绝为匹配的主机提供模式,控制消息陷阱服务。陷阱服务是ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。

nopeer : 用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟

kod :    访问违规时发送 KoD 包。

restrict -6 表示IPV6地址的权限设置。


注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!


2.1 配置文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
driftfile  /var/lib/ntp/drift
#默认是拒绝所有的的服务器
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#添加同步ntp clent的网段,这里允许 192.168.10.0 网段的客户机进行时间同步
restrict 192.168.10.0    mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1 
restrict -6 ::1
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
#添加外网同步地址,也就是上一级服务器
server  cn.pool.ntp.org  minpoll 4 maxpoll 4 perfer
#server 127.127.1.0
fudge  127.127.1.0 stratum 10
includefile  /etc/ntp/crypto/pw
keys  /etc/ntp/keys
#指定日志文件位置
logfile  /var/log/ntp
logconfig all
statistics clockstats cryptostats loopstats peerstats


3、启动ntp服务

[root@ocbsap01 etc]# service  ntpd start

正在启动 ntpd:                                            [确定]


4、查看ntp Server状态

[root@ocbsap01 ~]# ntpq -p

     remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*time6.aliyun.co 10.137.38.86     2 u    5   16    1   48.348   43.397   0.000


相关参数解释:

remote: 指最先响应这个请求的NTP服务器的名称

refid: 指给本地NTP服务器提供时间同步的上级NTP服务器源。

st: 该值用来表示上级NTP服务器源的层级别。由于NTP是层型结构,有顶端的服务器,多层的NTP服务器源,再到客户端。所以服务器从高到低级别可以设定为1-16。为了减缓负荷和网络堵塞,原则上应该避免直接连接到层级别为1的服务器上。

t: 该值用来表示远程服务器的类型,有如下类型:u代表单播或多播的客户端,b代表广播或组播服务器,l代表本地(参考时钟),s代表同级NTP服务器, A代表多播服务器,B代表广播服务器,M代表组播服务器

when: 该值为自上次接收到数据包的时间距离当前的时间值

poll: 该值为本地NTP服务器和上级NTP服务器源的轮询间隔,即双方每过多久同步一次(单位为秒)。在NTP刚开始运行时,poll值会比较小,此时和上级NTP服务器源同步的频率就会增加,因此可以尽快调整到正确的时间范围内。之后poll值就会逐渐增大,同步的频率也就会相应减小。

reach:这是一个八进制值,用来测试能否和服务器连接.每成功连接一次它的值就会增加

delay:该值为本地NTP服务器和上级NTP服务器源的NTP报文的往返时延。

offset:该值为本地NTP服务器和上级NTP服务器源的时间差值。该值越接近0,我们和上级NTP服务器源的时间就越准确。(日常关注这条)

jitter:该值是用来统计在特定个连续的连接数里面offset(时间差值)的分布情况。该数值的绝对值越小,我们和上级NTP服务器源的时间就越准确。



#####################Client 端操作#####################################

1、使用ntpdate命令,检查命令是否安装如果没有安装rpm安装一下

1
2
[root@ocbsweb01 ~] # rpm -qa | grep ntpdate
ntpdate-4.2.6p5-10.el6.x86_64


测试修改目前clent端的时间。

[root@ocbsweb01 ~]# date -s 2014/05/05 

2014年 05月 05日 星期一 00:00:00 CST

[root@ocbsweb01 ~]# date

2014年 05月 05日 星期一 00:00:01 CST


2、client端从server端同步时间

1
2
[root@ocbsweb01 ~] # ntpdate 192.168.10.128
12 Jan 11:17:37 ntpdate[6694]: adjust  time  server 192.168.10.128 offset 0.004131 sec

备注:注意防火墙关闭,ntpd启动后客户机要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found”错误。


3、client 自动同步时间,编辑/etc/ntp.conf,chkconfig ntpd --level 35 on

注销如下行

#server 0.rhel.pool.ntp.org iburst

#server 1.rhel.pool.ntp.org iburst

#server 2.rhel.pool.ntp.org iburst

#server 3.rhel.pool.ntp.org iburst

添加server 192.168.10.128 minpoll 4 maxpoll 4 perfer 或主机名即可 即可


#########################Client端验证操作#############################

1、查看ntp服务器有无和上层ntp连通,这里能看到NTP Server的IP,如下显示说明clent和ntp server之前通讯没有问题

1
2
3
4
[root@ocbsweb01 ~] # ntpstat 
synchronised to NTP server (192.168.10.128) at stratum 4 
    time  correct to within 333 ms
    polling server every 16 s


2、使用ntpdate -d 192.168.10.128 进行时间服务验证,并查看同步详细信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@ocbsweb01 ~] # ntpdate -d 192.168.10.128
12 Jan 11:27:51 ntpdate[6722]: ntpdate 4.2.6p5@1.2349-o Tue Jan 26 13:50:53 UTC 2016 (1)
Looking  for  host 192.168.10.128 and service ntp
host found : ocbsap01
transmit(192.168.10.128)
receive(192.168.10.128)
transmit(192.168.10.128)
receive(192.168.10.128)
transmit(192.168.10.128)
receive(192.168.10.128)
transmit(192.168.10.128)
receive(192.168.10.128)
server 192.168.10.128, port 123
stratum 3, precision -24, leap 00, trust 000
refid [192.168.10.128], delay 0.02585, dispersion 0.00017
transmitted 4,  in  filter 4
reference  time :    de02a7b8.6b274a2a  Fri, Jan 12 2018 11:19:20.418
originate timestamp: de02a9b7.417bb6cb  Fri, Jan 12 2018 11:27:51.255
transmit timestamp:  de02a9b7.40d639fc  Fri, Jan 12 2018 11:27:51.253
filter delay:  0.02629  0.02661  0.02585  0.02655 
          0.00000  0.00000  0.00000  0.00000 
filter offset: 0.001500 0.001742 0.001690 0.001996
          0.000000 0.000000 0.000000 0.000000
delay 0.02585, dispersion 0.00017
offset 0.001690
12 Jan 11:27:51 ntpdate[6722]: adjust  time  server 192.168.10.128 offset 0.001690 sec


####################################常见报错#####################################################

1、当用ntpdate -d 来查询时会发现导致 no server suitable for synchronization found 

错误1.Server dropped: Strata too high

在ntp客户端运行ntpdate serverIP,出现no server suitable for synchronization found的错误。

在ntp客户端用ntpdate -d serverIP查看,发现有“Server dropped: strata too high”的错误,并且显示“stratum 16”。

而正常情况下stratum这个值得范围是“0~15”。

这是因为NTP server还没有和其自身或者它的server同步上。


以下的定义是让NTP Server和其自身保持同步,如果在/ntp.conf中定义的server都不可用时,将使用local时间作为ntp服务提供给ntp客户端。

server 127.127.1.0

fudge  127.127.1.0 stratum 8


在ntp server上重新启动ntp服务后,ntp server自身或者与其server的同步的需要一个时间段,

这个过程可能是5分钟,在这个时间之内在客户端运行ntpdate命令时会产生no server suitable for synchronization found的错误。

那么如何知道何时ntp server完成了和自身同步的过程呢?



错误2.Server dropped: no data

从客户端执行netdate -d时有错误信息如下:

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

transmit(192.168.30.22)

192.168.30.22: Server dropped: no data

server 192.168.30.22, port 123

.....

28 Jul 17:42:24 ntpdate[14148]: no server suitable for synchronization found


出现这个问题的原因可能是:


检查ntp的版本,如果你使用的是ntp4.2(包括4.2)之后的版本,在restrict的定义中使用了notrust的话,会导致以上错误。


使用以下命令检查ntp的版本:

# ntpq -c version

下面是来自ntp官方网站的说明:

The behavior of notrust changed between versions 4.1 and 4.2.

In 4.1 (and earlier) notrust meant "Don't trust this host/subnet for time".

In 4.2 (and later) notrust means "Ignore all NTP packets that are not cryptographically authenticated." This forces remote time servers to authenticate themselves to your (client) ntpd


解决:

把notrust去掉。





本文转自 yuri_cto 51CTO博客,原文链接:http://blog.51cto.com/laobaiv1/2060196,如需转载请自行联系原作者

相关文章
|
25天前
|
JSON Kubernetes Linux
Linux环境签发CA证书和K8s需要的证书
Linux环境签发CA证书和K8s需要的证书
23 0
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
1月前
|
存储 缓存 Linux
如何在Linux环境下对pip的缓存地址进行修改
如何在Linux环境下对pip的缓存地址进行修改
|
12天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
32 6
|
7天前
|
存储 关系型数据库 MySQL
Linux服务详解
Linux服务详解
21 0
|
8天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
15天前
|
监控 Java Linux
linux下监控java进程 实现自动重启服务
linux下监控java进程 实现自动重启服务
|
18天前
|
关系型数据库 MySQL Linux
linux特定服务日志
Linux系统的服务日志在`/var/log`目录下,如系统日志(`/var/log/syslog`或`/var/log/messages`)、认证日志(`/var/log/auth.log`)、SSH日志(`/var/log/auth.log`或`/var/log/secure`)。Web服务器(Apache和Nginx)的访问和错误日志、MySQL错误日志、Postfix及Dovecot邮件服务器日志也在此处。日志位置可能因发行版和服务配置而异,不确定时可查服务配置或用`grep`搜索。使用`logrotate`可管理日志文件大小。
20 6
|
25天前
|
Linux
linux中服务管理
在Linux服务管理中,从传统的System V init到Upstart,再到广泛采用的systemd,管理方式不断发展。systemd以其强大的功能和依赖解决成为现代Linux的核心。`systemctl`是管理服务的关键命令,如启动(`start`)、停止(`stop`)、重启(`restart`)服务及设置开机启动(`enable`)或取消(`disable`)。了解和服务管理,特别是systemd和`systemctl`的使用,对系统管理员至关重要。其他如xinetd用于控制网络服务,而特定环境下有OpenRC等工具。
17 2
|
25天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
22 0