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,如需转载请自行联系原作者

相关文章
|
21天前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
77 8
|
2月前
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
245 16
|
2月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
153 10
|
1月前
|
Ubuntu 安全 Linux
Ubuntu 24.10 发行版登场:Linux 6.11 内核、GNOME 47 桌面环境
Ubuntu 24.10 还带来了 GNOME 47,增强了性能和稳定性,并引入了新功能。此版本的 Ubuntu 还默认在采用 Nvidia 显卡的硬件上切换到 Wayland,并在支持的硬件上默认使用开源的 Nvidia 560 内核模块。 另外需要注意的是,Ubuntu 24.10 是稳定版本,但作为非 LTS 版本,仅支持 9 个月。
|
1月前
|
安全 Linux 网络安全
Linux系统初步设置本地Git环境和生成SSH密钥的步骤。
现在您的Linux系统已经配置好了Git环境,并创建并添加了SSH密钥,可以安全地与远端仓库进行交互,无论是克隆、推送还是拉取操作。此过程确保了数据传输的安全并使版本控制流程更为顺畅。使用Git时应考虑定期更新并管理您的凭据,以确保安全性。
280 0
|
1月前
|
XML 缓存 Linux
在Linux环境下解决Visual Studio Code字体显示异常和字体替换方法。
解决Linux下VS Code字体显示异常,需要对Linux字体渲染机制有所理解,并对VS Code的配置选项进行合理设置。替换字体时则要通过系统字体配置或VS Code设置来完成。通过上述方法,可以有效地解决字体显示问题,从而提升代码编辑的视觉体验。
160 0
|
2月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
150 0
|
Linux
linux中服务管理
在Linux服务管理中,从传统的System V init到Upstart,再到广泛采用的systemd,管理方式不断发展。systemd以其强大的功能和依赖解决成为现代Linux的核心。`systemctl`是管理服务的关键命令,如启动(`start`)、停止(`stop`)、重启(`restart`)服务及设置开机启动(`enable`)或取消(`disable`)。了解和服务管理,特别是systemd和`systemctl`的使用,对系统管理员至关重要。其他如xinetd用于控制网络服务,而特定环境下有OpenRC等工具。
142 2
|
安全 Ubuntu 网络协议
Linux中的服务管理
Linux系统可以同时运行数百个任务。其中大多数都属于操作系统环境的组成部分,不过可能也会有那么一两个你不需要的**守护进程**。有3种可用于启动守护进程和服务的工具,Linux发行版支持其中任意一种。传统的SysV系统使用/etc/init.d中的脚本。较新的systemd守护进程除了使用/etc/init.d之外,还用到了systemctl调用。还有些发行版使用的是upstart,配置脚本保存在/etc/init中。systemd如今已经取代了SysVinit系统。upstart是由Ubuntu开发并采用的,但是在14.04版中,已经改成了systemd。
290 3
|
Ubuntu 关系型数据库 MySQL
【Linux进阶篇】启动流程和服务管理
【Linux进阶篇】启动流程和服务管理
284 0