linux服务器时间同步ntp时间同步服务器设置


linux服务器时间同步ntp时间同步服务器设置

NTP意即网络时间协议(NetworkTimeProtocol),它通过网络同步计算机系统之间的时钟。NTP服务器可以使组织中的所有服务器保持同步,以精准时间执行基于时间的作业。NTP客户端会将其时钟与NTP服务器同步。

Linux中有三个命令可用于验证NTP同步情况。详情如下:在本文中,我们将告诉您如何使用所有这些命令验证NTP同步。

该程序可以以交互模式运行,也可以使用命令行参数进行控制。它通过向服务器发送多个查询来打印出连接的对等项列表。如果NTP正常工作,你将获得类似于下面的输出。

remoterefidsttwhenpollreachdelayoffsetjitter

==============================================================================

*CentOS7.2daygee133.243.238.u...432

ntpstat将报告在本地计算机上运行的NTP守护程序(ntpd)的同步状态。如果发现本地系统与参考时间源保持同步,则ntpstat将报告大致的时间精度。

synchronisedtoNTPserver(192.168.1.8)atstratum3

NextDSTchange:DSTends(theclockjumpsonehourbackwards)at

Chrony是一个NTP客户端的替代品。它可以更快地同步系统时钟,时间精度更高,对于一直不在线的系统尤其有用。

chronyd较小,它使用较少的内存,只在必要时才唤醒CPU,这样可以更好地节省电能。即使网络拥塞较长时间,它也能很好地运行。

MSName/IPaddressStratumPollReachLastRxLastsample

===============================================================================

大多数应用场景中,使用ntpd的-g参数令其在启动时允许大步长同步就足够了(除此之外还可以在配置中使用iburst来让加速同步)。使用ntpd唯一需要注意的是在配置时应配置ACL,以免成为攻击跳板。

有些人会争辩,在启动ntpd之前运行一次ntpdate的好处是ntpdate退出时,系统的时间已经调到了比较接近正确的时间。不过,ntp作者已经在文档中明确表示未来ntpdate会变成一个shell脚本(通过ntpd-g-q来实现),事实上,现在也可以在启动时用ntpq-crv来检查ntpd的状态了,对于精度要求比较高的应用,系统时间和时钟快慢同等重要,如果不高,也没有太大必要去另外运行ntpdate了。

定时运行ntpdate的系统很容易受到这样的攻击:如果有人故意调整了某个ntp服务器的时间,所有使用ntpdate的系统都将跟随其设置。举例来说,假如已知某家公司的系统每天凌晨3点会执行某项非常耗时的任务,同时每4个小时会做一次ntpdate,那么攻陷这台服务器并令其一直返回凌晨2:59,就可以很容易地实现四两拨千斤的杠杆式攻击了,而且,由于系统时间也会影响日志,因此观察日志的人员也比较容易受其误导。

与此相反,ntpd通常会配置为使用多个参考服务器,在运行时会参考多个服务器的时间,并排除明显异常的服务器。而监控多个ntp服务器相对来说要容易得多。

用cron或类似的任务计划去做ntpdate还有个问题是如果系统时间比较准的话,每到某个整点(或者特定的时间)的同步操作就变成了一次对NTP服务器的DDoS。机器多的话,这种放大效应对于集群本身和提供NTP服务的机器都是不利的。

Ubuntu系统默认的时钟同步服务器是,Debian则是等,各Linux发行版都有自己的NTP官方服务器。身在中国,使用这些都会有高延迟,但对时钟同步这件事来说影响不大。

在某些环境下,比如公司内网、云上子网等,是与互联网隔绝的。这时要想做时钟同步,就只能自己配置了。

修改/etc/systemd/timesyncd.conf,把NTP设为华为内绿区可达的NTP服务器。

如果以上systemd-timesyncd.service因为什么原因而不存在,则可通过以下命令修复:

一般查看日期与时间是使用date。使用timedatectl可以查看到更多时钟同步相关信息。