一、软件环境

1、操作系统版本

[root@Geeklp201 etc]# cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

2、实践环境IP规划

服务端:192.168.237.201

客户端:192.168.237.202        192.168.237.203

二、安装服务端及客户端相关软件

服务端(192.168.237.201)需安装ntpd服务,ntpdate会被作为依赖包被安装。当然,也可以直接找到ntpd的rpm包单独安装。强烈不建议使用源码安装。

[root@Geeklp201 ~]# yum -y installntp

安装完成之后我们会看到以下提示。

已安装:

ntp.x86_64 0:4.2.6p5-25.el7.centos.2

作为依赖被安装:

ntpdate.x86_64 0:4.2.6p5-25.el7.centos.2

查看一下当前系统时间:

[root@Geeklp201 ~]# date

2017年 10月 26日 星期四 18:51:45 CST

查看一下刚刚安装的ntpd服务:

[root@Geeklp201 ~]# systemctl status ntpd

● ntpd.service - Network Time Service

Loaded:loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset:disabled)

Active:inactive (dead) since 四 2017-10-26 16:21:00 CST; 2h 30min ago

Main PID: 1578(code=exited, status=0/SUCCESS)

… ….

我们可以看到,服务并未运行,也没有开机启动。今天应该是10月27日,但是实际显示的时间是26日。这是由于我自己的系统时间设置就是26日。

启动ntpd服务:

[root@Geeklp201 ~]# systemctl start ntpd

设置ntpd服务开机启动:

[root@Geeklp201 ~]# systemctl enable ntpd

Created symlink from/etc/systemd/system/multi-user.target.wants/ntpd.service to/usr/lib/systemd/system/ntpd.service.

稍等片刻之后,再次执行date命令,时间已经正确显示:

[root@Geeklp201 ~]# date

2017年 10月 27日 星期五 09:56:24 CST

接下来分别在2台客户机上安装ntpdate:

[root@Geeklp202 ~]# yum -y install ntpdate

安装完毕之后执行命令:

[root@Geeklp202 ~]# ntpdate 192.168.237.201

27 Oct 10:32:36ntpdate[7318]: no server suitable for synchronization found

时间同步并没有成功,原因是在服务端我们开启了防火墙,关闭防火墙:

[root@Geeklp201 ~]# systemctl stop firewalld

如果使用的是iptables防火墙,那么也是需要关闭的:

[root@Geeklp201 ~]# systemctl stop iptables

[root@Geeklp201 ~]# systemctl stop ip6tables

再次在客户端执行:

[root@Geeklp202 ~]# ntpdate 192.168.237.201

27 Oct 10:36:35ntpdate[7320]: adjust time server 192.168.237.201 offset 0.017485 sec

时间同步成功。如果没有什么其他要求,NTP服务器至此完全搭建完成。

三、个性化配置

1、关于防火墙设置

关闭NTP服务器上的防火墙并非万全之策,毕竟存在即合理。最好的解决方案一定不会是关闭防火墙。接下来,我们尝试把ntpd服务添加到防火墙策略里面。由于CentOS7默认使用的防火墙是firewalld,所以只需要配置firewalld开放ntpd使用的123端口即可。

由于此NTP服务器需要放在dmz区域,所以我们需要把dmz区设置为默认区:

[root@Geeklp201 ~]# firewall-cmd --set-default-zone=dmz

把接口添加到dmz区:

[root@Geeklp201 ~]# firewall-cmd --permanent --zone=dmz--add-interface=ens33

ntpd服务使用的端口是123,协议是udp协议,添加到防火墙策略:

[root@Geeklp201 ~]# firewall-cmd --permanent --zone=dmz--add-port=123/udp

重载防火墙:

[root@Geeklp201 ~]# firewall-cmd --reload

在服客户端行ntpdate命令:

[root@Geeklp202 ~]# ntpdate 192.168.237.201

27 Oct 11:23:24ntpdate[7436]: adjust time server 192.168.237.201 offset 0.023007 sec

如果使用的是iptables防火墙,也需要作相关配置,在此不作赘述。

2ntpd.conf的个性化配置

在ntp.conf配置文件内可以利用“restrict”来控管权限,这个参数的设定方式为:

restrict [你的IP] mask[netmask_IP] [parameter]

由于公司内网网段划分比较复杂,在此并未作限制。使用原有默认设置:

restrict default nomodify notrap nopeer noquery

restrict参数作用如下如下,可根据时间情况进行添加:

ignore:拒绝所有类型的 NTP 联机;

nomodify:客户端不能使用ntpc与ntpq这两支程序来修改服务器的时间参数,但客户端仍可透过这部主机来进行网络校时的;

noquery:客户端不能够使用 ntpq,ntpc 等指令来查询时间服务器,相当于不提供 NTP 的网络校时;

notrap:不提供 trap 这个远程事件登录(remote event logging) 的功能;

notrust:要求客户端必须通过认证,否则拒绝没有认证的客户端;

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

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

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

在本配置文件中以serve打头这一行,就是为我们提供ntp服务的上层服务器域名或IP。我使用了如下几个提供ntp服务的域名:

server cn.ntp.org.cnperfer

server edu.ntp.org.cniburst

server0.centos.pool.ntp.org iburst

server1.centos.pool.ntp.org iburst

server2.centos.pool.ntp.org iburst

server3.centos.pool.ntp.org iburst

配置文件修改完毕,保存之后重启ntp服务:

[root@Geeklp201 ~]# systemctl restart ntpd

看一下当前NTP服务器对上层服务的联机情况:

[root@Geeklp201 ~]# ntpq -p

ntpq -p可以列出目前我们的 NTP与相关的上层
NTP的状态,表头的的几个字段的意义为:

remote: NTP主机的
IP或主机域名,注意最左边的符号;

如果有『 *』代表目前正在使用中的上层
NTP;

如果是『 +』代表也有连上线,而且可作为下一个提供时间更新的候选者;

refid:参考的上一层 NTP主机的地址;

st:就是 stratum级别,正在响应请求的NTP服务器的级别;

when:几秒钟前曾经做过时间同步化更新的动作;

poll:下一次更新在几秒钟之后;

reach:已经向上层 NTP服务器要求更新的次数;

delay:网络传输过程当中延迟的时间,单位为 10^(-6)秒;

offset:时间补偿的结果,单位与 10^(-3)秒;

jitter:Linux系统时间与
BIOS 硬件时间的差异时间,单位为 10^(-6)秒。

我们还可使用ntpstat查看一下当前NTP服务器的同步情况:

[root@Geeklp201 ~]# ntpstat

synchronisedto NTP server (202.112.31.197) at stratum 3

time correct to within 41 ms

polling server every 64 s

3、客户端设置

修改/etc/sysconfig/ntpdate,让ntpdate每次同步时间之后把时间写入hwclock,相当于命令hwclock
-w:

把最后一行SYNC_HWCLOCK=no修改为:SYNC_HWCLOCK=yes

4、客户端定时任务配置

[root@Geeklp202 ntp]# crontab -e

5923 * * */sbin/ntpdate 192.168.237.201

设置为每天23:59分执行,重启crond服务。至此,NTP服务器构建完成。

[root@Geeklp202 ntp]# systemctl status crond

在CentOS7中,系统已经集成了另一款更好用的NTP服务软件chrony,在后续的文章中我们将进一步讨论。

浅谈Linux(Centos7.4)环境下NTP服务器的构建的更多相关文章

  1. Linux集群环境下NTP服务器时间同步

    NTP介绍 NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议.它的用途是把计算机的时钟同步到世界协调时UTC(Universal Time ...

  2. []转帖] 浅谈Linux下的五种I/O模型

    浅谈Linux下的五种I/O模型 https://www.cnblogs.com/chy2055/p/5220793.html  一.关于I/O模型的引出 我们都知道,为了OS的安全性等的考虑,进程是 ...

  3. 浅谈Linux下/etc/passwd文件

    浅谈Linux 下/etc/passwd文件 看过了很多渗透测试的文章,发现在很多文章中都会有/etc/passwd这个文件,那么,这个文件中到底有些什么内容呢?下面我们来详细的介绍一下. 在Linu ...

  4. 浅谈Linux中的信号处理机制(二)

    首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...

  5. 浅谈 Linux 内核无线子系统

    浅谈 Linux 内核无线子系统 本文目录 1. 全局概览 2. 模块间接口 3. 数据路径与管理路径 4. 数据包是如何被发送? 5. 谈谈管理路径 6. 数据包又是如何被接收? 7. 总结一下 L ...

  6. Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

    Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理 转自:https://www.jianshu.com/p/2b71ea919d49 本系列文章首发于我的个人博 ...

  7. 浅谈Cordova优缺点与环境部署(转载)

    浅谈Cordova优缺点与环境部署 作者:苏华杰 简介 Cordova是一个用基于HTML.CSS和JavaScript的,用于创建跨平台移动应用程序的快速开发平台.它使开发者能够利用iPhone.A ...

  8. Linux Centos7部署环境安装-CentOS

    Linux Centos7部署环境安装-CentOS Centos7部署环境安装及Linux常用命令 centos系统下各文件夹的作用 centos7修改系统默认语言 centos7安装rz/sz命令 ...

  9. Centos7.4环境下搭建Python开发环境(虚拟机安装+python安装+pycharm安装)

    目录 一.安装 Centos7.4虚拟机 二.安装 python3.6.7 三.安装 pycharm 一般情况下,大家都是在 Windows平台下进行 Python开发,软件安装和环境搭建都非常&qu ...

随机推荐

  1. sparksql hive作为数据源

    根据官方文档的说法,要把hive-site.xml,core-site.xml,hdfs-site.xml拷贝到spark的conf目录下,保证mysql已经启动 java public class ...

  2. hexo主题选择和配置

    之前用next主题,发现文章标题都是h2,不利于seo,想着通过改模板改成h1的,发现很繁琐.今天发现,通过下载指定版本的next后,标题自动是h1的. 参考网页https://notes.iissn ...

  3. 详解Qt,并举例说明动态编译(shared)和静态编译(static)以及debug and release 编译版本区别(可产生静态版的Debug版本,需要把-release 改为 –debug-and-release)

    作为初入Qt学习的新人,花了整整一两天时间,对Qt编译版本等问题进行了一步步探索,首先感谢网站博客中文章,开始也不是很明白一些几个问题: 1.Qt版本问题 作为初学者,可能下载时这么多版本,如何选择呢 ...

  4. C# 静态构造函数,静态变量执行顺序(精华版)(规正版)

    一.成员初始化整体顺序 1.成员赋值初始化先于构造函数: 2.成员赋值初始先从子类再到基类: 3.构造函数初始化先从基类再到子类: 4.静态成员初始化优先于实例成员初始化: 二.对类型静态成员构造的大 ...

  5. WPF的两棵树与绑定

    原文:WPF的两棵树与绑定   先建立测试基类 public class VisualPanel : FrameworkElement { protected VisualCollection Chi ...

  6. DDD实战12 值对象不创建表,而是直接作为实体中的字段

    这里的值对象如下风格: namespace Order.Domain.PocoModels { //订单地址 //虽然是值对象 但是不继承ValueObject //因为继承ValueObject会有 ...

  7. crossplatform---Nodejs in Visual Studio Code 03.学习Express

    1.开始 下载源码:https://github.com/sayar/NodeMVA Express组件:npm install express -g(全局安装) 2.ExpressRest 打开目录 ...

  8. 在实现视频播放器的步骤client(三)风行网络电影列表

    (三) 今日热门电影实现这个功能.主要从server获取数据.然后显示在屏幕上.虽然说是从这个server获取电影信息数据,但,不实际的http相关知识,我们直接sdk包(56网络提供api),你将能 ...

  9. ArcGIS Runtime SDK for WPF 初始化

    安装包 管理nuget包 Esri.ArcGISRuntime.WPF 也许还需要 Esri.ArcGISRuntime.Hydrography Esri.ArcGISRuntime.LocalSer ...

  10. 微软Insider Dev Tour 活动

    总述 Insider Dev Tour 将在6月全球29个城市中展开.这次活动是通过与微软全球MVPs和RD合作进行的,并涵盖了微软最新的开者方面的最新消息. 日期提示 2018年5月7日 : 暂无其 ...