我有一个隔离的、隔离的 LAN,我想同步它。我有一台主机,它将是 LAN 上所有客户端的权威时间服务器。LAN 时间是否反映实时时间并不重要,但所有客户端是否同意时间很重要。所有主机都运行 Linux。
我曾希望配置chronyd
为使用指定主机上的 RTC 作为权威时间源,并向客户端提供 NTP 服务,以便它们可以与其同步。因此,如果管理员需要更改 LAN 上的时间,他们可以更新时间服务器上的 RTC,只要有足够的时间,一切都应该同步。
不幸的是,我没能用chronyd
这种方式进行配置。如果我不指定任何时间服务器(server ...
在 中为“ ” /etc/chrony/chrony.conf
),那么chronyd
似乎会运行不源,而不是使用本地 RTC 作为源。
配置refclock
参数可用于选择外部时间源,例如 GPS 或 PPS,但似乎没有一个驱动程序适合读取 RTC。
我的一个想法是编写一个小应用程序来读取 RTC 并通过驱动程序将其作为 PPS 数据提供SOCK
,但进一步阅读表明这也需要 NTP 源,因为它是亚秒级测量而不是绝对时间。
可以chronyd
这样使用吗?
答案1
local
chrony.conf 中的本身就足以启用本地系统作为参考。
RTC 并不完美,它们会漂移很多。如果你只需要精度而不是准确度,这可能是可以接受的。
其他指令也很有用。
# Local self reference
local
# Allow chronyc settime where a person can type the time
# Drift is estimated from these inputs
# Useful in environments without other reference clocks
manual
# Recording drift is especially important
# when timestamps are few and far between
driftfile /var/lib/chrony/drift
# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC
答案2
为了回答我自己的问题,我发现隔离网络文件部分相关,特别是设置chrony.conf
包括:
local stratum 8
manual
这似乎最初是从 RTC 获取时间的,所以也许不需要使用settime
?我不确定是否manual
有必要。