Linux 如何使用NTP同步时间

Linux 如何使用NTP同步时间

同步时间是计算机系统的关键方面,它确保时钟准确并与网络上的其他系统兼容。错误的时间可能会导致多种问题,如数据不一致,文件上的时间戳不正确以及不值得冒的安全风险。幸运的是,Linux提供了多种方法来与网络时间服务器同步时间,其中一种方法是通过网络时间协议(NTP)进行同步。NTP是一种开源协议,可在计算机系统之间提供精确的时间同步。

本文将向您介绍在Linux系统上使用NTP同步时间的过程。本文将涵盖从安装NTP软件包到配置时间源和检查同步状态的所有内容。无论您是Linux专家还是系统管理员,本文都将为您提供在Linux系统上使用NTP同步时间的简明指南。

步骤1:安装NTP

要在Linux上使用网络时间协议(NTP)同步时间,首要步骤是在您的Linux系统中安装NTP软件包。NTP是一种在网络中的计算机系统之间提供时间同步的免费开源协议。NTP的功能基于服务器和客户端之间的时间戳数据包的交换。

您可以使用系统的软件包管理器来安装NTP。例如,在Ubuntu和Debian系统上广泛使用的apt-get软件包管理器。在本示例中我们将使用它。

第一条命令,

sudo apt-get update

这个命令将更新您系统上的软件包列表,以确保您拥有最新版本的NTP软件包。第二个命令:

sudo apt-get install ntp

该命令将在您的系统上安装NTP软件包。

安装NTP后,它将与/etc/ntp.conf文件中提到的主NTP服务器自动同步时间。该文件保存了NTP的关键设置,如用于时间同步的NTP服务器。大多数Linux系统将pool.ntp.org设置为默认的NTP服务器,该服务器是业界广泛使用的可信服务器。

要安装chrony作为NTP的替代方案,可以运行以下命令−

sudo apt-get install chrony

安装过程完成后,Chrony将自动与在/etc/chrony/chrony.conf文件中配置的默认时间服务器进行时间同步。

Chrony与NTP相比具有显著优势之一是它能更高效地处理网络抖动和延迟。Chrony维护了一个高分辨率时间戳的本地时钟,并使用它来估计本地时钟与时间源之间的偏移量。然后调整本地时钟以最小化偏移量。

要检查Chrony的同步状态,我们可以使用带有跟踪选项的chronyc命令。

sudo chronyc tracking

执行此命令的输出将显示您的系统时钟与/etc/chrony/chrony.conf文件中配置的时间源之间的当前时间差。如果时间差很大,Chrony将逐渐调整系统时钟以与时间源同步。

步骤2:配置NTP

安装NTP后,您需要配置它使用正确的时间服务器。默认情况下,NTP使用/etc/ntp.conf配置文件中指定的时间服务器。

要配置NTP使用特定的时间服务器,您需要使用您选择的文本编辑器编辑/etc/ntp.conf文件。例如,您可以使用nano或vim-

sudo nano /etc/ntp.conf

在配置文件中,您将看到一个服务器列表及其关联的设置。您可以添加或删除服务器以满足您的需求。

要使用NTP Pool Project的时间服务器,您可以将以下行添加到/etc/ntp.conf文件中。 −

server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server 3.pool.ntp.org

这些是主要的NTP Pool项目服务器,它们非常可靠,并且可以从全球任何地方访问。

一旦您添加了要用于NTP时间同步的服务器,保存更改到/etc/ntp.conf文件并退出文本编辑器。

值得注意的是,NTP使用分层方法进行时间同步,其中在层次结构中较高的时间服务器被认为比较低的服务器更可靠。层次结构通常被组织为四个层次,层1服务器是最可靠和具有权威性的,而层4服务器是最不可靠的。

在编辑了配置文件后,您需要重新启动NTP服务以应用更改 –

sudo service ntp restart

这将使用新的配置重启NTP服务,并与新的时间服务器同步您的系统时间。

步骤3:启动NTP

当我们启动NTP服务时,它将自动连接到配置文件中指定的时间服务器,并开始同步系统时间。NTP服务将定期查询时间服务器,并调整系统时间以保持与时间服务器的同步。

要启动NTP服务,我们可以使用以下命令−

sudo service ntp start

这个命令将会在我们的Linux机器上启动NTP服务。如果服务已经在运行,这个命令将会简单地输出一条消息,说明服务已经在运行了。

步骤4:检查NTP状态

我们可以使用ntpq命令加上-p选项来完成这个任务。ntpq命令被用来查询NTP服务器,-p选项代表”peer status”。这个选项会显示一张包含了相关统计数据和可达性信息的对等方表。

下面是命令:

ntpq -p

该命令的输出将如下所示:

remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+0.pool.ntp.org  .POOL.          16 p    -   64    0    0.000   -0.020   0.015
*1.pool.ntp.org  .POOL.          16 p    -   64    0    0.000   -0.021   0.015
+2.pool.ntp.org  .POOL.          16 p    -   64    0    0.000   -0.020   0.015
+3.pool.ntp.org  .POOL.          16 p    -   64    0    0.000   -0.022   0.015

输出示例显示了NTP服务与在/etc/ntp.conf配置文件中指定的NTP Pool项目的四个时间服务器成功同步。服务器名称旁边的加号(+)表示它们当前用于时间同步。

每个时间服务器在“refid”列中用一个唯一的四字符参考ID表示,该ID标识时间源。”st”列显示了每个服务器的层级,表示与值为16的本地机器直接连接。

此外,”delay”、”offset”和”jitter”这几列提供了有关各种时间同步统计数据的信息。”delay”列显示了每个服务器的往返延迟时间,而”offset”列显示了本地系统时钟与每个时间服务器之间的时间差。最后,”jitter”列显示了时间偏移的变化。

结论

总之,NTP是在Linux机器上维护准确时间的重要服务。通过与外部时间服务器同步,NTP确保系统时钟保持准确,这对于各种应用程序,从网络通信到系统安全,都至关重要。

在上述文章中,我们讨论了在Linux机器上使用NTP同步时间的步骤。我们安装了NTP服务,更新了配置文件,并使用ntpq -p命令检查了同步状态。通过遵循这些步骤并定期监视同步状态,我们可以确保系统时钟始终准确可靠。

准确的时间记录对于现代计算是必需的,而NTP在实现Linux机器上的这种准确性方面发挥着重要作用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程