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

[[email protected] /]# 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 配置文件内容如下:

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服务

[[email protected] etc]# service  ntpd start

正在启动 ntpd:                                            [确定]

4、查看ntp Server状态

[[email protected] ~]# 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安装一下

[[email protected] ~]# rpm -qa | grep ntpdate
ntpdate-4.2.6p5-10.el6.x86_64

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

[[email protected] ~]# date -s 2014/05/05

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

[[email protected] ~]# date

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

2、client端从server端同步时间

[[email protected] ~]# 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之前通讯没有问题

[[email protected] ~]# 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 进行时间服务验证,并查看同步详细信息

[[email protected] ~]# ntpdate -d 192.168.10.128
12 Jan 11:27:51 ntpdate[6722]: ntpdate [email protected] 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去掉。

原文地址:http://blog.51cto.com/laobaiv1/2060197

时间: 2024-10-10 17:12:03

Linux 环境下NTP 服务搭建的相关文章

Linux 环境下NFS 服务搭建

之前接到一个电话面试其中一个问题是如何搭建一个NFS服务器,他说他看过我的博客了,忽然我的第一反应是联想到博客里面可能是缺少了一篇关于NFS的文章了^_^~ 开玩笑啦!~ 下面说点正经的,如果大家是在生产环境上建议使用成熟封装后产品,国产和国外的很多固定存储产品都能满足并且价格也不算太贵.如果实在是囊中羞涩可以使用free nas或openfiler等软件.这样是提供服务更加纯粹,从而减少不必要的麻烦.以前在建行工作的时候提供nfs服务的主机经常要重启服务甚至主机才行,因急于恢复生产所以也没详细

(1)Jenkins Linux环境下的简单搭建

(1)Jenkins Linux环境下的简单搭建 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. ----百度百科 这是一款基于Java开发的工具.种种原因,最近刚开始接触,决定研究一下.Jenkins的搭建方法不止一种,一下就是个人总结的其中一种,文章内容比较浅显,不足之处,欢迎指正. 首先,所需要准备的工具JDK.Maven.资料上显示JDK版本最好高于1.7,并没有研究1.7以下版本,所谓"没有实际调研,就没有发言权",在此就不做过多

Windows/Linux环境下模拟服务端口方法

场景需求: 对于涉及纵向级联(比如与总部.分部级联)或横向互联(与本级其他系统互联)的大系统,往往需要在未部署系统服务时验证相关端口的开通情况,以备在防火墙上进行端口开通申请. Windows环境下模拟服务端口: 在服务器端使用第三方软件"TCP&UDP测试工具"进行模拟端口,可以很方面的用"telnet  ip  port"命令测试. Linux环境下模拟服务端口: 可以使用"nc  -v  ip  port"命令测试端口是否开通,若提

Linux(CentOS)下NTP服务搭建

1.安装 CentOS默认会自动安装NTP服务.如果不确定是否安装了ntp软件包可以用命令rpm –qa|grep ntp 查询一下.如果没有安装,可以用命令yum install ntp安装一下,也可以从Centos安装盘安装(搭建简单yum源,安装光盘镜像做源). [[email protected] ~]# rpm -qa |grep ntp ntp-4.2.6p5-1.el6.centos.x86_64 fontpackages-filesystem-1.41-1.1.el6.noarc

Linux环境下Jenkins简单搭建步骤

简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.这是一款基于Java开发的工具. 种种原因,最近刚开始接触,决定研究一下.Jenkins的搭建方法不止一种,一下就是个人总结的其中一种,文章内容比较浅显,不足之处,欢迎指正. JDK下载地址应该不用说了,相信你肯定能搜到. Maven下载地址  http://maven.apache.org/download.cgi 安装软件如下: jdk-8u131-linux-x64.tar.gz apache

linux环境下禅道搭建

1.下载禅道安装包,根据操作系统的版本: 2.上传包到linux的opt目录中: 3.解压包: cd /opt tar xzvf 禅道包名称,如:tar xzvf ZenTaoPMS.8.1.3.zbox_64.tar.gz 4.启动apache服务器: cd zobx ./zobx start 5.默认端口是80,解决端口被占用问题 找到文件httpd.conf修改端口号 重新启动服务 ./zbox start 也可以使用如下命令查看禅道服务状态: 6.查看所有端口命令: netstat -l

Linux环境下用Docker搭建SQL SERVER开发环境

第一步:安装Dokcer 见官方文档 第二步:安装SQL SERVER镜像 sudo docker run -e 'ACCEPT_EULA=Y' -e '[email protected]' -p 1444:1433 --name mssql -d microsoft/mssql-server-linux:2017-latest Microsoft SQL Server的Docker镜像名为:microsoft/mssql-server-linux,tag为2017-latest SQL Ser

linux下DHCP服务搭建

实验环境 RHEL5.9 dhcp服务器 RHEL5.9 LINUX客户端 win7    windows客户端 实验前提: 1,服务器与客户机需要在同一个网段 2,dhcp需要有固定IP 实验步骤: 服务端操作步骤: 1,设置IP cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0    //设备名 BOOTPROTO=static    //静态IP HWADDR=00:0C:29:DB:02:CE ONBOOT=yes  //

linux下nsf服务搭建

实验环境 RHEL5.9两台 实验一: 将/root 共享给192.168.10.20,可写.同步,允许客户机以root权限访问 服务端配置: [[email protected] ~]# rpm -qa |grep nfs  //检查软件包是否安装 nfs-utils-lib-1.0.8-7.9.el5 nfs-utils-1.0.9-66.el5 [[email protected] ~]# rpm -qa |grep portmap portmap-4.0-65.2.2.1 [[email