我在 Debian 上获得工作时钟的唯一方法是使用 NTP 来同步时钟,如下所述这里。
有没有一种方法可以在没有 NTP 且没有任何互联网连接的情况下获得可靠准确的时钟?
在阻止各种自动启动软件、阻止 kdeconnectd 启动(在 KDE 中)以及在 nftables 防火墙中只允许所需的互联网连接之后,sudo lsof -i
我发现ntpd
这几乎是除了 Firefox 之外唯一剩下的互联网连接。
我对比一般使用 NTP 更好的方法感兴趣,但我也想最大限度地减少攻击面,即使没有任何潜在的漏洞并且 NTP 服务器没有日志保存,使用计算机时有十多个并发互联网连接在线存在匿名和隐私风险(关联在线时间数据)。
此外,需要使用 NTP 来使时钟工作意味着您依赖于互联网连接来工作时钟,这是我对此感到好奇的另一个原因。
如果这对于计算机来说是不可能的,那就奇怪了,因为这已经工作了几十年,而手表等的偏移量通常很小。
也许使用一些便宜的东西是可能的硬件您可以插入主板或各种特定主板。我最感兴趣的是一种拥有本地时间源而不需要任何低成本无线电信号的方法(你不能插入深空原子钟到主板上,也不是机械时钟(有时十年内的偏移量可能小于 5 秒)。
答案1
具有准确的实时硬件时钟的电脑可以准确地计时。不幸的是,许多主板的硬件时钟似乎不准确。
ntpd 没有需要互联网。您还可以获得外部硬件时钟,它会与其同步。例如,GPS 出于此目的很受欢迎,并且是许多第 1 层 ntp 服务器所使用的。
如果您的电脑有一个稳定但未校准的时钟,您可以使用 adjtimex 命令行工具来校准它。 (查看手册页以了解该过程。)您可能需要在一天或一周内运行几次,以降低所需的漂移率。 (同样,您需要一个外部时间源,例如带有秒针的时钟。)请注意,如果您的时钟不稳定(例如,它以随温度变化的速率漂移),则此方法将不起作用。
虽然我认为认为 ntp 存在任何类型的隐私风险是非常偏执的,但还有其他原因需要这样做。例如,如果网络中断时时钟漂移过多,不稳定的网络连接可能会导致 ntp 崩溃。我曾经遇到过这样的情况:我需要将计算机带到没有互联网连接的现场,但我需要非常精确的时间。 (在这种情况下,GPS 是最好的选择。)
网上有很多关于如何使用 GPS 设置 ntp 的指南。 NTP 文档有受支持的 GPS 的列表。基本上,您需要一个带有串行端口来输出时间的 GPS、一个 1.0000000PPS 逻辑输出引脚以及一种准确读取该引脚的方法。我使用带有 GPS 帽子的树莓派来执行此操作,然后通过本地网络与 pi 通信,但我过去直接在电脑上完成此操作。