NTP 是通过网络来同步时间的一种 TCP/IP 协议。通常客户端向服务器请求当前的时间,并根据结果来设置其时钟。
这个描述是挺简单的,实现这一功能却是极为复杂的 - 首先要有多层 NTP 服务器,第一层 NTP 服务器连接原子时钟,第二层、第三层服务器则担起负载均衡的责任,以处理因特网传来的所有请求。另外,客户端可能也超乎你想象的复杂 - 它必须排除通讯延迟,调整时间的同时不干扰其它在服务器中运行的进程。幸运的是,所有的这些复杂性都进行了封装,你是不可见也不需要见到的。
在 Ubuntu 中,是使用 ntpdate
和 ntpd
来同步时间的。
timedatectl
在最新的 Ubuntu 版本中,timedatectl
替代了老旧的 ntpdate
。默认情况下,timedatectl
在系统启动的时候会立刻同步时间,并在稍后网络连接激活后通过 socket 再次检查一次。
如果已安装了 ntpdate
/ ntp
,timedatectl
会退而让你使用之前的设置。这样确保了两个时间同步服务不会相互冲突,同时在你升级的时候还保留原本的行为和配置。但这也意味着从旧版本的发行版升级时 ntp
/ntpdate
仍会安装,因此会导致新的基于 systemd 的时间服务被禁用。
timesyncd
在最新的 Ubuntu 版本中,timesyncd
替代了 ntpd
的客户端的部分。默认情况下 timesyncd
会定期检测并同步时间。它还会在本地存储更新的时间,以便在系统重启时做时间单步调整。
通过 timedatectl
和 timesyncd
设置的当前时间状态和时间配置,可以使用 timedatectl status
命令来进行确认。
timedatectl status Local time: Fri 2016-04-29 06:32:57 UTC Universal time: Fri 2016-04-29 06:32:57 UTC RTC time: Fri 2016-04-29 07:44:02 Time zone: Etc/UTC (UTC, +0000) Network time on: yesNTP synchronized: no RTC in local TZ: no
评论列表()