002.NTP服务端搭建

一 安装及准备

1.1 安装NTP

  1 [root@server ~]# yum -y install ntp #也可下载之后rpm安装,或者源码安装

1.2 NTP服务地址

提供全球可用NTP服务器列表,挑选适合自己(通常为物理位置附近)的NTP服务器。如:cn.ntp.org.cn。

二 相关配置

2.1 配置说明

  • /etc/ntp.conf:NTP主配置文件;
  • /usr/share/zoneinfo:规定了各主要时区的时间设定文件,如上海/usr/share/zoneinfo/Asia/Shanghai;
  • /etc/sysconfig/clock:Linux的主要时区设定文件,每次启动后系统读取此文件来设定系统预设要显示时间,如:Zone=Asia/Shanghai;
  • /etc/localtim:本地系统的时间设定文件。

2.2 命令说明

  • /bin/date:Linux系统上面的日期与时间修改及输出命令
  • /sbin/hwclock:主机的BIOS时间与Linux系统时间分开date 这个指令调整后,只是影响系统时间。如果更改BIOS时间,需要用hwlock命令
  • /usr/sbin/ntpd:NTP服务的守护进程
  • /usr/sbin/ntpdata:NTP客户端用来连接NTP服务器命令文件
  • /usr/sbin/ntpq:标准网络计时协议(NTP)查询程序

2.3 配置详解

  • driftfile 文件名:在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。 注意: driftfile 后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd守护进程可以写入。
  • restrict配置项——语法:restrict IP地址 mask 子网掩码 参数
  • 注意:其中IP地址也可以是default ,default 就是指所有的IP。
  • 参数:
  • ignore:关闭所有的 NTP 联机服务,即拒绝任何NTP连接。
  • minpoll+maxpoll:指定NTP消息的最小和最大轮询间隔(以秒为单位)。最大轮询间隔默认为10(1,024秒),可通过maxpoll选项增加到17(36.4小时)的上限。最小轮询间隔默认为6(64 s),可通过minpoll选项降低到4(16 s)的下限。
  • nomodify:客户端不能更改服务端的时间参数,但客户端可以通过服务端进行网络校时。
  • notrust:客户端除非通过认证,即拒绝没有认证的客户端。
  • noquery:不提供客户端的时间查询,用户端不能使用ntpq,ntpc等命令来查询ntp服务器,且不可以进行网络校时。
  • notrap:不提供trap远端登陆,即不提供远程事件日志记录功能。
  • nopeer:用于阻止主机尝试与服务器对等,不与其他同一层的NTP服务器进行时间同步。
  • kod:访问违规时发送 KoD 包,即使用kod技术防范“kiss of death”攻击。
  • restrict -6 :表示IPV6地址的权限设置。

举例:

  1 restrict default nomodify notrap nopeer noquery #默认拒绝所有访问
  2 
  3 restrict 211.71.14.254 mask 255.255.255.0 #添加允许211.71.14.254/24网段访问
  4 
  5 restrict 10.111.1.1 mask 255.0.0.0 nomodify #添加10.0.0.0/8网段访问,不能修改服务器时间,但能校时

server配置项:

  • server + ip 或者 server + hostname
  • prefer:设置优先上级服务器
  • burst:当一个运程NTP服务器可用时,向它发送一系列的并发包进行检测。
  • iburst:当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测。
  • peer:一般配置中表示,服务器接收其他服务器的地址,同时也会为其他设备提供NTP服务器。

举例:

  1 server 202.112.128.33 prefer #默认上级时间服务器为202.112.128.33
  2 
  3 server 202.112.10.60 #备用上级时间服务器为202.112.10.60
  4 
  5 fudge 127.127.1.0 stratum 3
  6 
  7 #设置本地时间级别是3,如果上级时间服务器均失效,对外发布本地时间,时间层级是4。
  8 
  9 keys /etc/ntp/keys #给客户端设置认证信息

三 实验配置

3.1 实验环境

  • ntp1:172.24.8.30
  • ntp2:172.24.8.31
  • ntp-client:172.24.8.32

要求:ntp1为最上级ntp服务器,且和亚洲授时中心同步;ntp2为次级ntp服务器,和ntp1时钟同步;ntp-client和ntp2时钟同步。

四 ntp1服务端配置

4.1 安装ntp包

  1 root@ntp1 ~]# rpm -qa | grep ntp #检测ntp包安装情况
  2 
  3 [root@ntp1 ~]# yum -y install ntp #使用yum安装ntp

4.2 修改主配置

  1 [root@server ~]# vi /etc/ntp.conf
  2 
  3 server 0.cn.pool.ntp.org
  4 
  5 server 1.asia.pool.ntp.org server 2.asia.pool.ntp.org server 3.asia.pool.ntp.org #设置与亚洲时间同步 restrict 0.cn.pool.ntp.org nomodify notrap noquery restrict 1.asia.pool.ntp.org nomodify notrap noquery restrict 2.asia.pool.ntp.org nomodify notrap noquery
  6 
  7 restrict 3.asia.pool.ntp.org nomodify notrap noquery # 允许上层时间服务器主动修改本机时间
  8 
  9 server 127.127.1.0
 10 
 11 fudge 127.127.1.0 stratum 8 #外部时间服务器不可用时,以本地时间作为时间服务
 12 
 13 #将系统原有ntp地址池修改为所选定的NTP服务器。

4.3 添加允许同步的网段

  1 restrict 172.24.8.0 mask 255.255.255.0 nomodify notrap

4.4 选配

  1 logfile /var/log/ntp.log								#添加ntp相关日志记录文件
  2 [root@ntp1 ~]# chown ntp:ntp /var/log/ntp.log
  3 [root@ntp1 ~]# chcon -t ntpd_log_t /var/log/ntp.log

注意:若增加日志,则需要配置日志所属者和SELinux上下文。

五 ntp2服务端配置

5.1 安装ntp包

5.2 修改主配置

  1 restrict 127.0.0.1
  2 
  3 restrict ::1
  4 
  5 restrict 172.24.8.0 mask 255.255.255.0 nomodify notrap
  6 
  7 server 172.24.8.30 prefer
  8 
  9 restrict 172.24.8.30 nomodify notrap noquery
 10 
 11 server 127.127.1.0
 12 
 13 fudge 127.127.1.0 stratum 10 #外部时间服务器不可用时,以本地时间作为时间服务

六 ntp-client服务器配置

6.1 安装ntp包

6.2 修改主配置

  1 server 172.24.8.31
  2 
  3 restrict 172.24.8.31 nomodify notrap noquery

七 防火墙及服务器开启

7.1 添加防火墙规则

  1 [root@ntp1 ~]# firewall-cmd --permanent --add-service=ntp
  2 
  3 [root@ntp1 ~]# firewall-cmd --reload

7.2 开启相关服务

  1 [root@ntp1 ~]# systemctl start ntpd.service
  2 
  3 [root@ntp1 ~]# systemctl enable ntpd.service
  4 
  5 [root@ntp1 ~]# systemctl status ntpd.service

注意:第七步操作需要在所有ntp服务器和client上执行,也可直接关闭防火墙。

  1 [root@ntp1 ~]# systemctl stop firewalld.service
  2 
  3 [root@ntp1 ~]# systemctl disable firewalld.service
  4 
  5 [root@ntp1 ~]# setenforce 0

八 ntp1服务器查看服务

8.1 查看该NTP服务器的上层服务器情况

需要隔一定时间之后,查询:

等待一段时间后,查看是NTP服务器和NTP服务器的服务端同步状态。

九 ntp2服务器查看

十 ntp-client端查看

十一 其他选配

ntp服务,默认只会同步系统时间。若需要tp同时同步硬件时间,可以在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes ,则可以让硬件时间与系统时间一起同步。

SYNC_HWCLOCK=yes

注意:允许BIOS与系统时间同步,也可以通过hwclock -w 命令。

附:ntpq参数解释:

  • remote:本地服务器所连接的远程NTP服务器。
  • refid:NTP服务器使用的上一级ntp服务器,即给远程ntp服务器提供时间同步是服务器。。
  • st :remote远程服务器的级别,由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端。所以服务器从高到低级别可以设定为1-16,为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的。
  • when: 上一次成功请求之后到现在的秒数。
  • poll : 本地机和远程服务器多少时间进行一次同步(单位为秒),在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围,之后poll值会逐渐增大,同步的频率也就会相应减小。
  • reach:这是一个八进制值,用来测试能否和服务器连接,每成功连接一次它的值就会增加
  • delay:从本地机发送同步要求到ntp服务器的round trip time
  • offset:主机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。offset越接近于0,主机和ntp服务器的时间越接近。
  • jitter:这是一个用来做统计的值,它统计了在特定个连续的连接数里offset的分布情况,简单地说这个数值的绝对值越小,主机的时间就越精确。
  • 『 * 』:代表目前正在作用当中的NTP,即主NTP Server;
  • 『 + 』:代表辅助的NTP Server和带有*号的服务器一起为我们提供同步服务, 当主NTP Server服务器不可用时备服务器接管,即作为下一个提供时间更新的候选者。
  • 『 - 』:远程服务器被认为是不合格的NTP Server。
  • 『 x 』:远程服务器不可用。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟Qt君学编程

Qt处理Excel的一些库

1.2K20
来自专栏Linux知识积累

Linux 的内存分页管理

内存是计算机的主存储器。内存为进程开辟出进程空间,让进程在其中保存数据。我将从内存的物理特性出发,深入到内存管理的细节,特别是了解虚拟内存和内存分页的概念。

10330
来自专栏相遇Linux

Linux sysfs文件系统实现之顺聊Linux文件系统实现

最近三天写了一个jefffs文件系统,是高仿sysfs文件系统实现的,所以想分享一下sysfs文件系统的实现过程,顺道分享一下我对文件系统的一点理解,...

15040
来自专栏相遇Linux

DeadLine调度器,以及文章后面的重要小话

对于NORMAL和FIFO/RR的调度,他们的权重、优先级一山更比一山高,不能保证进程在规定的期限内调度,DeadLine就不一样,在规定的期限内cpu...

8330
来自专栏Linux知识积累

Linux 启动流程分析

这个部分比较有意思。因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多;但是,一旦进入操作系统,程序员几乎可以定制所有方面。所以,这个部分...

11130
来自专栏编程大道

记一次生产优化-优化定时提前加载用户信息

最近,有不少用户反映登录我们的APP后,进入首页展示用户数据时要很久很久才能展示出来。刚开始还没在意,以为是用户自己的网络慢导致的,后来有好几个用户都反映了此问...

11830
来自专栏跟Qt君学编程

Shell脚本格式化内容(处理多余空格与更换分割符)

文档字段与字段之间多余的空格怎么处理,如何将多余的空格格式化,让程序更容易批量读入到数组或其他变量里面呢?

9310
来自专栏相遇Linux

Linux内核编码技巧之兄弟团圆

要掌握读懂linux内核不是一件容易的事情,除了要掌握操作系统原理和熟悉一些硬件、编译原理和各种框架、概念以外,还要懂得linux kernel源码在编码方式上...

9320
来自专栏跟Qt君学编程

Qt开源网络库[3]-原理篇上

上一篇介绍到接口的使用,本篇主要讲述的是该网络库的HttpService与HttpRequest原理与实现。对QNetworkAccessManager...

12530
来自专栏跟Qt君学编程

QtCreator代码对齐的方法

18410

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励