Linux(Centos7.4及RHEL7.4)环境下NTP服务器的构建

本文涉及的产品
云防火墙,500元 1000GB
简介:  一、软件环境 1、操作系统版本 [root@Geeklp201 etc]# cat /etc/redhat-release CentOS Linux release 7.


一、软件环境

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会被作为依赖包被安装。当然,也可以直接找到ntpdrpm包单独安装。强烈不建议使用源码安装。

[root@Geeklp201 ~]# yum -y install  ntp

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

已安装:

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)

… ….

我们可以看到,服务并未运行,也没有开机启动。今天应该是1027日,但是实际显示的时间是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.cn perfer

server edu.ntp.org.cn iburst

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)

jitterLinux系统时间与 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,在后续的文章中我们将进一步讨论。

参考资料:

https://www.eecis.udel.edu/~mills/ntp/html/index.html  

http://blog.csdn.net/sztyler/article/details/5937458

http://www.ntp.org

相关文章
|
18天前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
89 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
12天前
|
关系型数据库 MySQL 应用服务中间件
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
|
13天前
|
数据挖掘 虚拟化
虚拟化数据恢复—VMware虚拟化环境下重装系统导致服务器崩溃的数据恢复
VMware虚拟化平台 vmfs文件系统 工作人员误操作重装操作系统,服务器崩溃。 重装系统会导致文件系统元文件被覆盖。要恢复数据,必须找到&提取重装系统前的文件系统残留信息,通过提取出来的元文件信息恢复虚拟磁盘。通过拼接虚拟磁盘来恢复服务器数据。
37 13
|
1月前
|
关系型数据库 应用服务中间件 Linux
Linux云服务器如何搭建LNMP环境
LNMP环境是Linux系统中常用的Web服务架构,由Linux、Nginx、MySQL/MariaDB和PHP组成,适用于高效托管动态网站。本文以CentOS 7为例,详细介绍了LNMP环境的搭建步骤,包括Nginx、MariaDB和PHP的安装与配置,以及最终通过创建`index.php`文件验证环境是否成功部署。具体操作涵盖配置YUM仓库、安装服务、编辑配置文件、启动服务等关键步骤,确保用户能够顺利搭建并运行LNMP环境。
48 1
Linux云服务器如何搭建LNMP环境
|
1月前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
145 25
|
1天前
|
JavaScript Ubuntu Linux
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
14天前
|
Linux
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat > filename` 创建新文件,`cat >> filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
41 5
Linux 常用文件查看命令
|
4月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
491 8
|
1月前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
89 24
Linux系统之whereis命令的基本使用
|
20天前
|
Linux
Linux od命令
本文详细介绍了Linux中的 `od`命令,包括其基本语法、常用选项和示例。通过这些内容,你可以灵活地使用 `od`命令查看文件内容,提高分析和调试效率。确保理解每一个选项和示例的实现细节,应用到实际工作中时能有效地处理各种文件查看需求。
50 19