Ubuntu如何在没有ntp的情况下同步时间?


39

通过单击“系统设置->时间和日期->从Internet自动”,我可以从Internet同步时间。

但是,我发现我没有ntpd守护程序(甚至没有安装)。那么同步如何工作?


6
请注意,恕我直言,该接口具有误导性。它应该是按钮,而不是开关,因为它会使用触发一次操作ntpdate,--您必须手动安装ntp才能使持续时间与Internet同步。我在bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/…中
Rmano 2015年

我不确定这是否会引起误解。我的印象是,除非禁用此选项,否则每次引导它都会运行一次ntpdate。谁能确认?
thomasrutter

在Kubuntu 16.04上,时钟小部件甚至不显示该Automatically from the Internet选项或任何相关内容。
kmonsoor

Answers:


38

这是通过与ntpdate工具同步来完成的 。

man ntpdate

NAME
       ntpdate - set the date and time via NTP

ntpdate sets the local date and time by polling the Network Time Proto‐
       col (NTP) server(s) given as the server arguments to determine the cor‐
       rect time. It must be run as root on the local host (unless the  option
       -q  is used). A number of samples are obtained from each of the servers
       specified and a subset of the NTP clock filter and selection algorithms
       are  applied  to  select  the best of these. Note that the accuracy and
       reliability of ntpdate depends on the number of servers, the number  of
       polls each time it is run and the interval between runs.

       ntpdate  can  be run manually as necessary to set the host clock, or it
       can be run from the host startup script to set the clock at boot  time.
       This is useful in some cases to set the clock initially before starting
       the NTP daemon ntpd. It is also possible to run  ntpdate  from  a  cron
       script.  However,  it  is important to note that ntpdate with contrived
       cron scripts is no substitute for the NTP daemon, which uses  sophisti‐
       cated  algorithms to maximize accuracy and reliability while minimizing
       resource use. Finally, since ntpdate does not discipline the host clock
       frequency as does ntpd, the accuracy using ntpdate is limited.

您可以使用

sudo ntpdate TIME-SERVER

可以在这里建立时间服务器列表


6
但问题是,用ntpdate在Ubuntu上没有安装在默认情况下,它是如何与Ubuntu的不断同步的时间?
约翰·阿拉德

2
注意:这个已接受的答案非常过时。在最新版本的Ubuntu(16.04+)中,使用timedatectl代替ntpdate。timedatectl控制systemd的时间同步服务。
科里·戈德堡

是的,这个答案是题外话。这不是“如何在没有ntpd + ntpq的情况下同步时间”,而是“在没有上述任何一项(ntpdate / ntpq)的情况下UBUNTU如何做到的。我注意到时钟已同步后才发现此问题,并且我希望时钟会关闭通过至少几十秒钟(Ubuntu的18.04)我还记得地狱完全成熟NTPD,当它拒绝同步时间“太遥远”等而现在-时钟同步的魔术!
托马斯Gandor

21

ntpdate每次网络连接建立时,Ubuntu都会与该实用程序同步一次(通常在启动时发生)。

该实用程序默认情况下已安装,但仅在Ubuntu调用时运行,并且不会作为后台驻留程序在后台运行。

安装ntp软件包将安装NTP守护程序。ntp守护程序允许在系统运行时持续同步时间。


更新:在最新版本的Ubuntu(例如16.04)ntpdate中,替换为timedatectl,它在启动时以及网络启动时会同步同步一次,但在其他时间不会继续运行。有关更多信息,请参见https://help.ubuntu.com/lts/serverguide/NTP.html


4
就其本身而言,它不是每次启动时都启动的。跟着dpkg-query --listfiles ntpdate/etc/network/if-up.d/ntpdate
ændrük

1
啊,谢谢,所以我想是每当网络接口启动时,不一定就每个人都启动了。
thomasrutter

嗯,您确定这是默认安装的吗?我坐在一个全新的Ubuntu 16.04服务器实例上,没有安装ntpdate util。
约翰·阿拉德

ntpdate默认在14.04中安装,但不再在16.04中安装,现在认为它已被弃用,timedatectl其工作原理类似- 默认情况下已安装ntpdate,并在启动时和网络启动时进行一次同步。
thomasrutter

12

对于拥有16.04 LTS的用户,时间同步似乎由sytemd专门处理,例如“ timedatectl”

timedatectl status
Local time: Wed 2016-11-30 17:45:18 CST
Universal time: Wed 2016-11-30 23:45:18 UTC
RTC time: Sun 2016-12-04 06:50:39
Time zone: America/Chicago (CST, -0600)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

配置为

/etc/systemd/timesyncd.conf

此处更多信息:使用NTPtimedatectl进行时间同步


1
到目前为止,这是最好的答案。其余的几乎没有主题(已编辑的除外,其中提到了systemd-timedatectl)。
Tomasz Gandor

2

还请注意,完全有可能为未安装的服务提供一个前端接口。

您可以随意更改该前端(GUI)界面中的设置,但是如果未安装实际执行任务的服务,则不会发生任何事情。

但是请注意,我认为“开关”有效,因为它告诉它在每次启动时进行一次更新。(或不这样做)。

除非这不是一个非网络连接的系统,或者有其他一些压倒性的原因,即不将其时间设置为与“标准”时间匹配,否则我强烈建议您安装ntpd,并正确配置和运行它。


1

请参阅:https : //help.ubuntu.com/community/UbuntuTime

Ubuntu随附ntpdate作为标准配置,并将在启动时运行一次,以根据Ubuntu的NTP服务器设置您的时间。但是,如果两次重新启动之间的时间较长,则两次重新启动之间的系统时钟可能会出现相当大的偏移。在这种情况下,偶尔校正时间是有意义的。最简单的方法是让cron每天运行它。

ntpdate ntp.ubuntu.com

或者,您可以使用ntpdhelp.ubuntu.com/lts/serverguide/NTP.html#ntpd)保持同步。
Gaurav

仅供参考,您所引用的页面目前尚未更新为16.04,因此不是很有帮助。
kmonsoor

1

由于某种原因,在16.04上,Maythux的答案无法立即生效

但是从那里带头,这对我有用。

$ sudo ntpdate-debian

请注意,它sudo显然需要特权。

在后台,它使用ntpdate工具,仅配置文件有所不同。

ntpdate-debian 与默认情况下ntpdate(8) 使用配置相同 /etc/default/ntpdate。ntpdate通过轮询网络时间协议(NTP)服务器来设置本地日期和时间。


16.04使用systemd,因此我希望它具有等效的新命令来使用。
Rinzwind '16

当然,@ Rinzwind太棒了。不幸的是,Ubuntu Wiki上的所谓主页并未针对16.04进行更新。它显示一条消息,说“本文需要更新以包括最新版本的Ubuntu”。
kmonsoor

至少在14.04 sudo ntpdate-debian中与相同sudo ntpdate ntp.ubuntu.com。奇怪的是,为什么当我们阅读它is identical to ntpdate(8) except that it uses the configuration in /etc/default/ntpdate by default并为我们阅读的文件添加内容时,他们从debian中选择并调整了该软件包NTPDATE_USE_NTP_CONF=yes # List of NTP servers to use (Separate multiple servers with spaces.) # Not used if NTPDATE_USE_NTP_CONF is yes. NTPSERVERS="ntp.ubuntu.com"
有用的时间

1

好吧,后来的Ubuntu版本经常使用chrony来实现,它是ntp的替代实现,但有一些区别:

  1. 一些较罕见的ntp功能未实现
  2. 它试图很好地应对您的网络访问间歇性的情况-连接后,它会同步本地时钟并跟踪其漂移速度。断开连接时,它使用本地时钟,但会调整时间以允许其通常如何漂移。

有关更多信息,请参见https://chrony.tuxfamily.org/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.