如何将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上执行以下任何步骤。时间同步应该已经为您配置。但是这些步骤至少可以帮助您有时调试问题。许多桌面环境控制面板使您可以启用和禁用时间同步。他们在后台使用类似的命令为您配置此命令,因此,当图形用户界面工具出现故障时,您可以自己执行此操作。
还没有评论,来说两句吧...