【讲清楚,说明白!】NTP时间同步服务详解

目录:
(一)NTP服务器的概念
(二)NTP服务器的设置



(一)NTP服务器的概念
(1.1)NTP(Network Time Protocol)服务器是用来是计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准时间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议attack。时间按NTP服务器的等级传播,按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中。
(1.2)NTP提供准确时间,首先要有准确的时间来源,这一时间应该是国际标准时间UTC。NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。这样就有了准确而可靠的时间源。时间按NTP服务器的等级传播。按照离外部UTC的远近将所有服务器归入不同的Stratum(层)中。Stratum-1在顶层,有外部UTC接入,而Stratum-2则从Stratum-1获取时间,Stratum-3从Stratum-2获取时间,以此类推,但Stratum层的总数限制在15以内。所有这些服务器在逻辑上形成阶梯式的架构互相连接,而Stratum-1的时间服务器是整个系统的基础。计算机主机一般同多个时间服务器连接,利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源来校正主机时间。即使主机在长时间无法与某一时间服务器相联系的情况下,NTP服务依然有效运转。为防止对事件服务器的恶意破坏,NTP使用了识别(Authentication)机制,检查来对时的信息是否是真正来自所宣称的服务器并检查资料的返回路径,以提供对抗干扰的保护机制。
(1.3)例如在我们系统中有一台NTP服务器,然后会有多台待同步时间的成员服务器。在每台主机的主板上都会有一个晶体震荡芯片始终在跳动着,由于每个晶体震荡芯片的震动频率不完全一致,所以各个主机也很难保持时间的同步。此时我们就需要由NTP服务器来保证各个主机时间的一致性,例如现在NTP服务器标准时间是7:00:00点整,而此时在A主机上的时间是6:59:00分,C主机是7:01:00分,那么此时A主机便会加快自己晶体震荡芯片的跳动频率尽快赶上NTP服务器的步伐,而C主机便会减慢自己晶体震荡芯片的跳动频率降速也尽快和NTP服务器的时间保持一致。



(二)NTP服务器的设置
(2.1)在我们系统中有多种同步时间的服务,其中RHEL 7系统中默认的时间同步服务是chrony,不过这个服务并不好用,我们使用的是NTP服务。我们先将vms002主机的chrony服务删除掉,然后安装NTP软件包。
# yum list chr*---查询chrony服务
# yum remove chrony.x86_64 -y---将chrony服务卸载掉
# systemctl stop ntpd---停止ntpd服务
# yum remove ntp -y---将之前的NTP服务卸载掉
# rm -rf /etc/ntp.conf.rpmsave---将ntp服务剩余的文件删除掉
# yum install ntp -y---安装NTP服务的软件包


(2.2)接着我们编辑ntp服务的配置文件,其中vms002主机的/var/lib/ntp/drift文件表示的是晶体震荡芯片的配置文件,而restrict表示“限制”,default表示“默认”,nomodify表示“不允许修改”,notrap表示“不允许陷阱操作”,nopeer表示不允许建立对等的连接,noquery表示不允许查询。然后我们指定192.168.26.0网段的主机可以向vms002主机发送NTP查询,并指定本机NTP服务器的时间参考标准为本机主板上晶体震荡芯片的IP地址127.127.1.0
# vim /etc/ntp.conf---编辑ntp服务的配置文件

(2.3)然后我们将vms002主机的ntp服务重启一下,并设置开机自动启动,因为ntp服务监听的端口是123,此时我们通过netstat命令查询发现ntp服务也已经处于监听的状态了。
# systemctl restart ntpd---将ntp服务重启一下
# systemctl enable ntpd---设置开机自动启动
# netstat -tunlp | grep ‘:123‘---查看ntp服务是否有监听

(2.4)接着我们在vms002主机上设置将当前的时间调整为慢了1个小时左右的状态,然后我们在vms002主机上使用ntpdate命令以此来设置按照vms001主机的时间进行同步,此时我们发现vms002主机的时间已经更新为正确的状态了。
# date -s "2019-11-12 20:00:00"---设置当前系统的时间
# ntpdate 192.168.26.101---设置时间和vms001主机的时间的进行同步时间同步

(2.5)由于以上的方式我们是通过ntpdate手动的方式进行时间同步的,随着时间的推移可能会经常产生时间不同步的情况。所以我们需要在系统中设置一个守护进程daemon,让它自己自动和服务器保持时间同步。此时我们便可以在vms002主机上安装ntp客户端软件(图2-6),接着打开ntp客户端软件后,我们输入时间同步的服务器的地址192.168.26.101,并勾选加速初始同步(图2-7),其中如果勾选了使用本地时钟源就是表示以本机晶体震荡芯片的IP地址127.127.1.0为时间同步。如果我们希望在客户端使用命令行的方式进行配置,则可以在/etc/chrony.conf配置文件中进行设置(图2-7-1)。
# yum install system-config-date -y---在vms002主机安装ntp客户端软件
# system-config-date &---打开图形化界面
# vim /etc/chrony.conf---客户端中ntp服务的配置文件



(2.6)如果我们希望查看系统是否真的已经保持了时间同步,我们可以使用chronyc命令,当我们看到此处表示的为“*”的时候,就表示当前系统的时间已经同步了。
# chronyc sources -v---查询当前系统是否已经保持时间同步

(2.7)
(2.7.1)我们除了使用date命令可以来设置系统时间,我们还可以使用timedatectl命令来设置我们的系统时间。我们可以使用status来查看当前系统的状态,可以使用list-timezones来查看当前系统所有的时区信息,使用set-timezone参数来设定当前系统的时区。
# timedatectl---默认和timedatectl status意义一致
# timedatectl status---查看当前系统时间的状态
# timedatectl list-timezones---查看当前系统所有时区的信息
# timedatectl set-timezone Africa/Dakar---修改当前的时区为Africa/Dakar
# timedatectl set-timezone Asia/Shanghai---修改当前的时区为亚洲上海


(2.7.2)如果我们想对时间进行设置,则可以使用set-time命令进行时间的设置。
# timedatectl set-time "2012-12-21 10:00:00"---使用set-time设置当前系统时间

(2.7.3)如果我们系统是RHEL 6的系统,没有timedatectl命令,那么我们应该怎样修改时区的信息呢?我们可以将/usr/share/zoneinfo/Asia/目录中的模板文件拷贝到当前系统的/etc/localtime时区的目录中,此时我们/etc/localtime其实是一个链接文件(图2-13)。
# ls /usr/share/zoneinfo/Asia/
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime---将上海的时区拷贝到/etc/localtime的目录
# ls -l /etc/localtime

—————— 本文至此结束,感谢阅读 ——————

原文地址:https://blog.51cto.com/13613726/2461838

时间: 2024-10-07 16:48:26

【讲清楚,说明白!】NTP时间同步服务详解的相关文章

CentOS 默认基本服务详解

1.使用chkconfig --list来查看安装的服务,比如我这里最小化安装后的一些服务 [[email protected] ~]# chkconfig --list auditd          0:off   1:off  2:on    3:on    4:on   5:on    6:off crond           0:off   1:off  2:on    3:on    4:on   5:on    6:off ip6tables       0:off  1:off

HTTPD服务详解

HTTPD服务详解 目录 一.httpd的程序版本 二.httpd的特性 三.httpd的功能特性 四.httpd使用 1.httpd的安装 2.程序环境 Httpd-2.2 (Centos6) http-2.4 (Centos7) 五.http配置相关说明 1.修改监听的ip和port 2.持久连接 3.MPM 4.DSO配置指令模块加载 5.定义Main'server文档页面路径 6.站点访问控制 文件系统路径 URL路径 7.<Directory> 中基于源地址实现访问控制 Option

winxp计算机管理中服务详解

winxp计算机管理中服务详解01 http://blog.sina.com.cn/s/blog_60f923b50100efy9.html http://blog.sina.com.cn/s/blog_b08c76100102vijm.html winxp计算机管理中服务详解02 http://blog.sina.com.cn/s/blog_60f923b50100efz3.html http://blog.sina.com.cn/s/blog_b08c76100102vijn.html

CentOS5启用Telnet服务详解(转载)

CentOS5启用Telnet服务详解 配置步骤如下: 一.安装telnet软件包(通常需要两个) 1. telnet(或 telnet-client),这个软件包提供telnet 客户端程序: 2. telnet-server,这个软件包提供telnet 服务器端程序: 安装之前先检查系统是否已安装这些软件包,方法如下: [[email protected] /]#rpm –qa |grep telnet 如果没有检测到软件包,则需要进行安装.CentOS5默认已安装了telnet软件包,te

Linux杂记-配置ntp时间同步服务

概念 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议. 安装 目标 现集群有三台主机,分别为centos7-1,centos7-2,centos7-3. centos7-1作为master,同步硬件时间. centos7-2,centos7-3同步centos7-1的时间. 安装ntp 三台主机分别安装ntp,并设置一个初始时间. yum -y install ntp date -s '2018-05-04 00:00:00' 修改/

内网NTP时间同步服务部署

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议.因为公司内网段机器的需求,不能开放外网使其去同步公共的NTP时间服务器,但这些服务器对系统时间的依赖性很高.因此,选择同网段的一台可以连外网的服务器作为内部NTP服务,让这台服务器去同步公共的NTP服务,再让同段的内网机器同步这台内部NTP服务的时间,所有内网机器的系统时间就都可以精确到毫秒级了.这样一方面是可以节省资源,一方面是就算纯内网机器也能保证时间的精确性. 服务端(内部NTP服

Linux时间同步,ntpdate命令、ntpd服务详解

声明:以下内容来自网友整理(http://blog.sina.com.cn/s/blog_636a55070101u1mg.html),为便于以后学习暂时收录,请不要随意转载 Linux默认情况下,系统时间和硬件时间,并不会自动同步.在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰.硬件时间的运行,是靠Bios电池来维持,而系统时间,是用CPU tick来维持的.在系统开机的时候,会自动从Bios中取得硬件时间,设置为系统时间. linux系统时间设置,在Linux中设置系统

MySQL服务器主从服务详解

MySQL主从复制概念 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从

ntp时间同步服务配置

好久没有配置过ntp时间同步了,记录一下,记性不好 首先安装ntp.ntpdate服务 备份配置文件,并做修改 mv  /etc/ntp.conf  /etc/ntp.conf.bak vim  /etc/ntp.conf 将"restrict default kod nomodify notrap nopeer noquery"修改为"restrict  default  nomodify"允许任何的IP进行时间同步 启动ntp时间同步服务器 service  n