systemd-timesyncd Linux 时间同步服务介绍

发布时间: 更新时间: 总字数:1419 阅读时间:3m 作者: IP上海 分享 网址

systemd-timesyncd 通过网络提供系统时钟同步的服务,通过实现 SNTP client 功能实现时钟同步。

介绍

  • systemd-timesyncd 与 ntp / Chrony 区别
    • systemd-timesyncd 只实现 SNTP client 功能实现时钟同步,不能作为 NTP 服务器
    • systemd-timesyncd 更精简和轻量级

使用

安装

  • ubuntu
sudo apt install systemd-timesyncd

配置文件

  • /etc/systemd/timesyncd.conf
[Time]
#NTP=
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
  • 示例
[Time]
NTP=ntp.aliyun.com ntp.ntsc.ac.cn cn.ntp.org.cn
FallbackNTP=ntp.ubuntu.com 0.pool.ntp.org 1.pool.ntp.org

启动服务

systemctl enable systemd-timesyncd.service
systemctl start systemd-timesyncd.service
systemctl status systemd-timesyncd.service

timedatectl 工具

help

timedatectl --help ...
$ timedatectl --help
timedatectl [OPTIONS...] COMMAND ...

Query or change system time and date settings.

Commands:
  status                   Show current time settings
  show                     Show properties of systemd-timedated
  set-time TIME            Set system time
  set-timezone ZONE        Set system time zone
  list-timezones           Show known time zones
  set-local-rtc BOOL       Control whether RTC is in local time
  set-ntp BOOL             Enable or disable network time synchronization

systemd-timesyncd Commands:
  timesync-status          Show status of systemd-timesyncd
  show-timesync            Show properties of systemd-timesyncd

Options:
  -h --help                Show this help message
     --version             Show package version
     --no-pager            Do not pipe output into a pager
     --no-ask-password     Do not prompt for password
  -H --host=[USER@]HOST    Operate on remote host
  -M --machine=CONTAINER   Operate on local container
     --adjust-system-clock Adjust system clock when changing local RTC mode
     --monitor             Monitor status of systemd-timesyncd
  -p --property=NAME       Show only properties by this name
  -a --all                 Show all properties, including empty ones
     --value               When showing properties, only print the value

See the timedatectl(1) man page for details.

示例

# 查看状态
$ timedatectl status
               Local time: xxx
           Universal time: xxx UTC
                 RTC time: xxx
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active  # NTP 已启动

# 查看 systemd-timedated 属性
timedatectl show

# 激活 NTP
timedatectl set-ntp true

# 查看同步状态
timedatectl timesync-status

timedatectl show-timesync --all

timesync-status 输出介绍

       Server: 192.168.1.1 (ntp.example.com)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 2
    Reference: 81070142
    Precision: 1us (-23)
Root distance: 36.795ms (max: 5s)
       Offset: -380us
        Delay: 64.246ms
       Jitter: 1.477ms
 Packet count: 421
    Frequency: -20.946ppm
  1. 核心连接信息
  • Server:
    • 含义: 当前正在使用的 NTP 服务器的 IP 地址及主机名。
    • 解释: 这是你的机器正在向谁时间。
  • Poll interval (轮询间隔):
    • 含义: 系统多久向服务器请求一次时间。
    • 解释: 34min 8s 表示当前每 34 分 8 秒同步一次。括号内的 (min: ...; max: ...) 显示了允许的最小和最大间隔。系统会根据网络稳定性和时间准确度自动调整这个频率(通常刚启动时频繁,稳定后变慢)。
  • Packet count (数据包计数):
    • 含义: 自服务启动或上次重置以来,成功与服务器交换的数据包数量。
    • 解释: 如果这个数字一直在增加,说明同步服务在正常工作。
  1. 时间偏差与质量 (最关键的指标)
  • Offset (时间偏移量):
    • 含义: 本地时间与服务器时间的差值。
    • 解释: 这是最重要的指标
      • + 表示本地时间比服务器快。
      • - 表示本地时间比服务器慢。
      • 数值越接近 0 越好(例如 us 微秒级通常优于 ms 毫秒级)。
  • Delay (延迟):
    • 含义: 数据包往返服务器所需的总时间(Round-trip time)。
    • 解释: 网络延迟。数值越小,代表网络连接越快,同步计算通常越准确。
  • Jitter (抖动):
    • 含义: 网络延迟的波动程度。
    • 解释: 如果 Delay 一会儿 10ms,一会儿 100ms,Jitter 就会很大。Jitter 越小,说明网络越稳定,时间同步也就越平滑。
  1. 服务器层级与状态
  • Stratum (层级):
    • 含义: 服务器距离原子钟(Stratum 0)的层级数。
    • 解释:
      • Stratum 1: 直接连接原子钟的服务器(最准)。
      • Stratum 2: 从 Stratum 1 同步时间的服务器。
      • 通常 Stratum 2 或 3 对普通用户来说已经非常足够。
  • Leap (闰秒状态):
    • 含义: 指示即将到来的闰秒调整。
    • 解释: 通常显示为 normal(无闰秒)。如果显示 insertdelete,表示即将增加或减少一秒。
  • Reference:
    • 含义: 当前 NTP 服务器的上级参考源标识(通常是上级服务器的 ID 或类型)。
  1. 内部时钟调整参数
  • Frequency (频率漂移):
    • 含义: 系统内核为了保持时间准确,对本地时钟频率进行的微调值(单位 ppm)。
    • 解释: 硬件时钟(晶振)总是不准的,系统通过这个值来拉快拖慢时钟走字的速度,以保持长期准确。
  • Root distance (根距离):
    • 含义: 到基准时间源(Stratum 0)的总最大误差估算。
    • 解释: 用于判断时间源是否过远或不可信。如果这个值超过 max(默认 5 秒),系统可能会拒绝同步。
  • Precision (精度):
    • 含义: 本地时钟读取时间的精确度。

扩展

Linux 系统中存在两个时钟:

  • RTC(Real Time Clock, 硬件时钟) 指主板上的时钟,BIOS 中可设置,独立电源,关机正常计算时间
  • SC(System Clock, 系统时钟) 指 OS Kernel 的时钟,值是 1970-01-01 00:00:00+000 UTC 时间到当前时间的秒数总和
    • 系统启动时,从硬件获取时间,然后独立计时;系统时钟和硬件时钟会存在差异

F&Q

Unit file /etc/systemd/system/systemd-timesyncd.service is masked

$ systemctl enable systemd-timesyncd.service
Failed to enable unit: Unit file /etc/systemd/system/systemd-timesyncd.service is masked.
  • 执行
sudo apt install systemd-timesyncd

Failed to query server: Failed to activate service ‘org.freedesktop.timedate1’: timed out (service_start_timeout=25000ms)

systemctl restart systemd-timedated
本文总阅读量 次 本站总访问量 次 本站总访客数
Home Archives Categories Tags Statistics