网络时间协议(NTP)用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间。而另一方面,一个 NTP 服务器会将它的时间和任意公共 NTP 服务器,或者你选定的服务器同步。由 NTP 管理的所有系统时钟都会同步精确到毫秒级。

在公司环境中,如果他们不想为 NTP 传输打开防火墙,就有必要设置一个内部 NTP 服务器,然后让员工使用内部服务器而不是公共 NTP 服务器。在这个指南中,我们会介绍如何将一个 CentOS 系统配置为 NTP 服务器。在介绍详细内容之前,让我们先来简单了解一下 NTP 的概念。

为什么我们需要 NTP?

由于制造工艺多种多样,所有的(非原子)时钟并不按照完全一致的速度行走。有一些时钟走的比较快而有一些走的比较慢。因此经过很长一段时间以后,一个时钟的时间慢慢的和其它的发生偏移,这就是常说的 “时钟漂移” 或 “时间漂移”。为了将时钟漂移的影响最小化,使用 NTP 的主机应该周期性地和指定的 NTP 服务器交互以保持它们的时钟同步。

在不同的主机之间进行时间同步对于计划备份、入侵检测记录、分布式任务调度或者事务订单管理来说是很重要的事情。它甚至应该作为日常任务的一部分。

NTP 的层次结构

NTP 时钟以层次模型组织。层级中的每层被称为一个 stratum(阶层)。stratum 的概念说明了一台机器到授权的时间源有多少 NTP 跳。

Stratum 0 由没有时间漂移的时钟组成,例如原子时钟。这种时钟不能在网络上直接使用。Stratum N (N > 1) 层服务器从 Stratum N-1 层服务器同步时间。Stratum N 时钟能通过网络和彼此互联。

NTP 支持多达 15 个 stratum 的层级。Stratum 16 被认为是未同步的,不能使用的。

准备 CentOS 服务器

现在让我们来开始在 CentOS 上设置 NTP 服务器。

首先,我们需要保证正确设置了服务器的时区。在 CentOS 7 中,我们可以使用 timedatectl 命令查看和更改服务器的时区(比如,"Australia/Adelaide",LCTT 译注:中国可设置为 Asia/Shanghai )

# timedatectl list-timezones | grep Australia

# timedatectl set-timezone Australia/Adelaide

# timedatectl

继续并使用 yum 安装需要的软件

# yum install ntp

然后我们会添加全球 NTP 服务器用于同步时间。

# vim /etc/ntp.conf

server 0.oceania.pool.ntp.org

server 1.oceania.pool.ntp.org

server 2.oceania.pool.ntp.org

server 3.oceania.pool.ntp.org

默认情况下,NTP 服务器的日志保存在 /var/log/messages。如果你希望使用自定义的日志文件,那也可以指定。

logfile /var/log/ntpd.log

如果你选择自定义日志文件,确保更改了它的属主和 SELinux 环境。

# chown ntp:ntp /var/log/ntpd.log

# chcon -t ntpd_log_t /var/log/ntpd.log

现在初始化 NTP 服务并确保把它添加到了开机启动。

# systemctl restart ntp

# systemctl enable ntp

验证 NTP Server 时钟

我们可以使用 ntpq 命令来检查本地服务器的时钟如何通过 NTP 同步。

下面解释了输出列。

remote 源在 ntp.conf 中定义。‘*’ 表示当前使用的,也是最好的源;‘+’ 表示这些源可作为 NTP 源;‘-’ 标记的源是不可用的。

refid 用于和本地时钟同步的远程服务器的 IP 地址。

st Stratum(阶层)

t 类型。 'u' 表示单播(unicast)。其它值包括本地(local)、多播(multicast)、广播(broadcast)。

when 自从上次和服务器交互后经过的时间(以秒数计)。

poll 和服务器的轮询间隔,以秒数计。

reach 表示和服务器交互是否有任何错误的八进制数。值 337 表示 100% 成功(即十进制的255)。

delay 服务器和远程服务器来回的时间。

offset 我们服务器和远程服务器的时间差异,以毫秒数计。

jitter 两次取样之间平均时差,以毫秒数计。

控制到 NTP 服务器的访问

默认情况下,NTP 服务器允许来自所有主机的查询。如果你想过滤进来的 NTP 同步连接,你可以在你的防火墙中添加规则过滤流量。

# iptables -A INPUT -s 192.168.1.0/24 -p udp --dport 123 -j ACCEPT

# iptables -A INPUT -p udp --dport 123 -j DROP

该规则允许从 192.168.1.0/24 来的 NTP 流量(端口 UDP/123),任何其它网络的流量会被丢弃。你可以根据需要更改规则。

配置 NTP 客户端

1. Linux

NTP 客户端主机需要 ntpupdate 软件包来和服务器同步时间。可以轻松地使用 yum 或 apt-get 安装这个软件包。安装完软件包之后,用服务器的 IP 地址运行下面的命令。

# ntpdate <server-IP-address>

基于 RHEL 和 Debian 的系统命令都相同。

2. Windows

如果你正在使用 Windows,在日期和时间设置(Date and Time settings)下查找网络时间(Internet Time)。

3. Cisco 设备

如果你想要同步 Cisco 设备的时间,你可以在全局配置模式下使用下面的命令。

# ntp server <server-IP-address>

来自其它厂家的支持 NTP 的设备有自己的用于网络时间的参数。如果你想将设备和 NTP服务器同步时间,请查看设备的说明文档。

结论

总而言之,NTP 是在你的所有主机上同步时钟的一个协议。我们已经介绍了如何设置 NTP 服务器并使支持 NTP 的设备和服务器同步时间。

希望能对你有所帮助。

免费领取兄弟连IT教育原创linux运维工程师视频/细说linux教程,详情咨询官网客服:http://www.itxdl.cn/linux/

或者勾搭Q2430675018

欢迎加入linux交流群 478068715

转载于:https://www.cnblogs.com/shitoufengkuang/p/4913198.html

如何在 CentOS 中设置 NTP 服务器相关推荐

  1. linux中DNS服务器查看域名,如何在Linux中查看DNS服务器设置

    1. 前言 DNS(域名系统)是非常重要的基础网络服务,如邮件服务器.互联网浏览和流媒体服务,如Netflix和Spotify等网络服务都依赖于它. 它在一个叫做DNS服务器的特殊计算机上工作-它保存 ...

  2. xp系统电脑ntp服务器,xp设置ntp服务器地址

    xp设置ntp服务器地址 内容精选 换一换 通过云服务器或者外部镜像文件创建私有镜像时,如果云服务器或镜像文件所在虚拟机的网络配置是静态IP地址时,您需要修改网卡属性为DHCP,以使私有镜像发放的新云 ...

  3. 如何在MySQL中设置主从复制

    原作者:Etel Sverdlov 转载&翻译:https://www.digitalocean.com/community/tutorials/how-to-set-up-master-sl ...

  4. win10修改ntp服务器地址,win10怎么设置ntp服务器地址

    win10怎么设置ntp服务器地址 内容精选 换一换 以NTP服务器.DNS服务器的操作系统均为SUSE为例:登录Linux弹性云服务器.执行以下命令,切换至root用户.sudo su -sudo ...

  5. xp系统电脑ntp服务器,xp 设置ntp服务器

    xp 设置ntp服务器 内容精选 换一换 已获取服务器管理员帐号与密码.打开CMD运行窗口,输入gpedit.msc,打开本地组策略编辑器.打开组策略在指定RD会话主机服务器的授权模式下拉列表中选择按 ...

  6. 如何在Postfix中设置邮件转发

    如何在Postfix中设置邮件转发 2016年1月5日 Mail服务 Postfix 是广泛使用的邮件传输代理(MTA)服务器,可用于发送,接收和通过网络发送的电子邮件转发.本教程将帮助您配置Post ...

  7. C# Winform小程序:局域网设置NTP服务器、实现时间同步

    设置NTP服务器: NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议. 局域网不能连接Internet,可以设置一台计算机为NTP服务器. ...

  8. aws中部署防火墙_如何在AWS中设置自动部署

    aws中部署防火墙 by Harry Sauers 哈里·绍尔斯(Harry Sauers) 如何在AWS中设置自动部署 (How to set up automated deployment in ...

  9. c语言sgoto 标志位,如何在Go中设置TCP数据包的“不分段”标志位?(How to set “don't fragment” flag bit for TCP packet in Go?)...

    如何在Go中设置TCP数据包的"不分段"标志位?(How to set "don't fragment" flag bit for TCP packet in ...

最新文章

  1. **IOS:xib文件解析(xib和storyboard的比较,一个轻量级一个重量级)
  2. 断电后supervisor启动时报错
  3. 【渝粤题库】陕西师范大学201371 国际法学作业
  4. 13个您应该安装的WordPress插件
  5. unity多人联机插件_Mirror ---Unity多人联机游戏API(一)
  6. android 动态壁纸 时钟,Android自定义动态壁纸开发(时钟)
  7. Mars3D讲解视频
  8. vb webQQ登陆器
  9. c语言写的电脑开关机代码,只需要几行代码制作电脑开关机控制软件
  10. javascript开发简易画板
  11. VBS:UBound()函数
  12. 关于RK3288开发板的学习(1)
  13. 异次元个人发卡系统_开源发卡系统
  14. linux每日命令,Linux日常命令整理
  15. 卷积核的优势-权值共享与局部感知能力
  16. 如何混迹程序猿江湖,你得懂程序员黑话暗语!
  17. Django自定义FilterSet
  18. VS2015无法打开输入文件xxx.lib
  19. 波动方程——弦的横振动(牛顿第二定律+胡克定律)| 偏微分方程(二)
  20. 南京大学计算机 史颖欢,离散数学-南京大学计算机科学与技术系.pdf

热门文章

  1. python __slots__ [转]
  2. 【科普】联邦知识蒸馏概述与思考
  3. 字节约翰斯·霍普金斯上交提出iBOT框架,基于MIM进行自监督训练,在ImageNet-1K上达到86.3%的微调精度!...
  4. 使用Disentangling形式的损失函数回归2D和3D目标框
  5. CVPR 2020 Oral | 旷视提出目前最好的密集场景目标检测算法:一个候选框,多个预测结果...
  6. 60页论文综述深度学习优化方法,出自UIUC
  7. 可怕!微软AI:一张面部照片一段音频,完美生成头像演讲视频
  8. 到底ResNet在解决一个什么问题呢?知乎热门回答
  9. AdvancedEAST高效场景文本检测(附Github地址)
  10. 怎么保存 html静态页面,静态页面怎么实现,就是把数据写入到html页面在缓存起来?...