如何将Linux时间与NTP服务器同步

电脑时钟并不完美。给定几天,几周或几个月的时间,它们就会漂移并停止显示实时时间。简而言之,当他们漂移之后,他们可能会显示为“ 10:30”,而实际上却是“ 10:33”。在较旧的计算机上,通常的做法是定期手动重新调整计算机时钟。但是,在无处不在的Internet连接之后,现代操作系统开始借助NTP服务器自动调整时钟。

什么是NTP?

NTP是网络时间协议的缩写。它是一种算法,旨在通过网络连接同步计算机时钟并使它们保持准确。

如何在Linux上启用时间同步

幸运的是,大多数发行版都是开箱即用地实现一种或多种时间同步形式。如果您从未发现计算机时钟偏离电话时钟,则几乎可以肯定已经有一个NTP客户端/守护程序正在运行。

在具有systemd的Linux OS上

大多数Linux发行版都采用systemd,并附带了“ systemd-timesyncd”守护程序。这意味着您已经在Ubuntu,Debian,Fedora,Arch Linux,openSUSE,Manjaro等上预安装了NTP客户端。在这些发行版以及其他基于它们的发行版上(例如,基本操作系统,Zorin操作系统),运行以下命令以检查是否启用了NTP同步:

timedatectl

如果Network time on: yes在输出中看到,则计算机时钟会通过NTP自动定期进行调整。有时您可能还会注意到NTP synchronized: no,这可能意味着时钟已通过“ systemd-timesyncd”之外的其他工具进行了同步。这也可能意味着systemd-timesyncd尚未同步,但稍后会同步。

如果看到Network time on: no,请运行以下命令以启用NTP时间同步。

timedatectl set-ntp true

这些就是您要做的所有工作。

在没有systemd的Linux OS上

随着MX Linux最近变得如此流行,有关此OS的示例似乎很适合作为开始。这也是一个特例。它“种”有systemd,但“种”不。timedatectl报告网络时间“打开”,但未使用systemd-timesyncd。

那么如何同步呢?您可以使用下一个命令进行检查,该命令可以在任何其他Linux操作系统上使用。

cat  / var / log / syslog |  grep ntp

在MX Linux上,您将获得与下图类似的结果。

从此过滤的日志消息中,您可以看到“ ntpdate”客户端运行了一次。这是一个受欢迎的客户端,默认情况下已在许多Linux发行版中安装。它轻巧,仅偶尔查询NTP服务器。它不会在后台运行,而是由脚本触发,同步然后退出。

这意味着时间不会以极高的精度(想想毫秒或微秒)同步,但对于大多数用途而言,它足够准确。通常它是准确的,至少精确到秒。

在其他操作系统上,您可能会看到“ ntpd”,它是一个守护程序,一直在后台运行并且非常准确。它运行的次数越多,它变得越精确。

如果出于某种原因要安装systemd ntp或ntpdate在其上使用systemd,请首先禁用systemd的ntp客户端。

timedatectl set-ntp false

当然,在非系统发行版上,上述命令不是必需的。

安装ntpdate客户端

这适用于不经常连接到Internet的家用计算机,笔记本电脑和其他设备。

在Debian,Ubuntu,Linux Mint,Zorin和其他基于这些的发行版上,运行:

apt  install ntpdate

在上述所有基于Debian的发行版中,将其配置为在看到新的网络连接后即可运行。如果您断开网络连接并重新连接,则可以立即强制进行时间同步。

在Fedora上,将不建议使用ntpdate,因此建议您改用ntpd守护程序(请参阅下一节)。建议对所有其他发行版使用相同的功能,这有两个原因:

他们有时不将ntpdate包含在单独的程序包中,而是将其与下一部分中的ntpd捆绑在一起。

他们不会自动使ntpdate在每个网络连接上自动运行。您必须自己在网络连接后自动运行的脚本中插入ntpdate。

在这种情况下,按照下一节的说明安装ntpd更有意义。

安装ntpd守护程序

在Debian,Ubuntu,Zorin,Mint和其他基于Debian或Ubuntu的发行版上,运行:

apt  install ntp

这些发行版将立即启动ntpd,然后在每次启动时自动启动。您无需采取进一步的措施。

在Fedora上,安装:

dnf install ntp

在CentOS上,运行:

yum install ntp

对于Arch Linux,请使用:

pacman -S ntp

然后在openSUSE上输入:

zypper install ntp

之后,启用服务以在启动时启动,然后启动它:

systemctl enable ntpd

systemctl startntpd

在没有systemd的其他发行版上,您可能必须运行以下命令:

update-rc.d ntpd enable

sevice ntpd start

或等同于您的操作系统的任何东西。

如果收到错误消息说ntpd不存在,请在上述命令中将“ ntpd”替换为“ ntp”。某些发行版对ntpd守护程序服务文件的命名不同。

结论

很少需要至少在具有图形用户界面的Linux OS上执行以下任何步骤。时间同步应该已经为您配置。但是这些步骤至少可以帮助您有时调试问题。许多桌面环境控制面板使您可以启用和禁用时间同步。他们在后台使用类似的命令为您配置此命令,因此,当图形用户界面工具出现故障时,您可以自己执行此操作。

 

猜你喜欢

转载自blog.csdn.net/allway2/article/details/108545869