Khi tôi truy vấn trạng thái của trình nền NTP với ntpdc -c sysinfo
tôi nhận được đầu ra sau:
system peer: 0.0.0.0
system peer mode: unspec
leap indicator: 11
stratum: 16
precision: -20
root distance: 0.00000 s
root dispersion: 12.77106 s
reference ID: [73.78.73.84]
reference time: 00000000.00000000 Thu, Feb 7 2036 7:28:16.000
system flags: auth monitor ntp kernel stats
jitter: 0.000000 s
stability: 0.000 ppm
broadcastdelay: 0.000000 s
authdelay: 0.000000 s
Điều này chỉ ra rằng đồng bộ hóa NTP không thành công. Tuy nhiên thời gian hệ thống chính xác trong vòng 1 giây. Khi tôi chạy hệ thống của mình mà không có kết nối mạng trong cùng khoảng thời gian như bây giờ, thời gian hệ thống sẽ lệch ~ 10 giây.
Hành vi này cho thấy hệ thống có một cách khác để đồng bộ hóa thời gian. Tôi nhận ra rằng cũng có systemd-timesyncd.service
(với tệp cấu hình tại /etc/systemd/timesyncd.conf
) và timedatectl status
cho tôi thời gian chính xác:
Local time: Thu 2016-08-25 10:55:23 CEST
Universal time: Thu 2016-08-25 08:55:23 UTC
RTC time: Thu 2016-08-25 08:55:22
Time zone: Europe/Berlin (CEST, +0200)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2016-03-27 01:59:59 CET
Sun 2016-03-27 03:00:00 CEST
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2016-10-30 02:59:59 CEST
Sun 2016-10-30 02:00:00 CET
Vì vậy, câu hỏi của tôi là sự khác biệt giữa hai cơ chế là gì? Là một trong số họ không được chấp nhận? Chúng có thể được sử dụng song song? Tôi nên tin tưởng vào cái nào khi tôi muốn truy vấn trạng thái đồng bộ hóa NTP?
(Lưu ý rằng tôi có một hệ thống khác (trong một mạng khác) mà cả hai phương pháp đều biểu thị thành công và mang lại thời gian chính xác.)