第 19 章 使用 ntpd 配置 NTP
19.1. NTP 简介
网络时间协议 (NTP)可以准确显示时间和日期信息,以便让联网计算机系统上的时间时钟与网络或互联网上的常见引用保持同步。世界各地的许多标准正文都有原子时钟,这些时钟可以作为参考提供。组成全球定位系统的卫星包含多个原子时钟,使其时间信号可能非常准确。出于军事原因,这些信号可以有意降级。理想的情况是,每个站点都有一个服务器(附加有自己的参考时钟)作为站点范围内的时间服务器。许多通过低频率放射或全局定位系统(GPS)获取时间和日期的设备都存在。然而,在大多数情况下,可以使用在地理分散位置连接到互联网的一系列公开访问时间服务器。这些 NTP
服务器提供"统一通用时间"(UTC)。有关这些时间服务器的信息,请访问
因为许多原因,保持准确的时间非常重要。例如在网络中,需要准确的数据包和日志的时间戳。日志用于调查服务和安全问题,因此不同系统上的时间戳必须由同步时钟变为实际值。随着系统和网络变得越来越快,对时钟的相应需求会更加准确和解决。在某些国家,有保持准确同步时钟的法律责任。如需更多信息,请参阅 www.ntp.org。在 Linux 系统中,NTP
由在用户空间运行的守护进程实施。Red Hat Enterprise Linux 7 中的默认 NTP
用户空间守护进程是 chronyd
。如果要使用 ntpd
守护进程,则必须禁用它。有关 chrony 的详情请查看 第 18 章 使用 chrony 套件配置 NTP。
用户空间守护进程更新系统时钟,这是在内核中运行的软件时钟。Linux使用软件时钟作为系统时钟更好地解析,优于称为"实时时钟" (RTC) 的典型嵌入式硬件时钟。有关硬件时钟的详情,请查看 rtc(4)
和 hwclock(8)
man page。系统时钟可以通过使用不同的时钟源来维护系统的时间。通常, 使用 时间戳计数器(TSC)。TSC 是一个 CPU 寄存器,它计算从上次重置的循环数。它非常快速,分辨率很高,而且没有任何中断。在系统启动时,系统时钟会读取 RTC 的时间和日期。由于温度变化,RTC 保持的时间将从实际时间下降至每月 5 分钟。因此,系统时钟需要与外部时间引用持续同步。当系统时钟由 ntpd 同步
时,内核将自动每 11 分钟更新一次 RTC。