有没有办法确保 ntp 同步时钟永远不会倒退?

Is there a way to ensure ntp synced clock never moves backwards?

假设我有使用时钟生成 ID 的代码。或者我有计算事件发生后经过的时间的代码。或者任何其他期望系统时间只向前移动,从不向后移动的逻辑。如果时间确实倒退,并且程序注意到它,则可以说它崩溃或挂起。

我想在此类程序中使用 NTP 服务。有没有一种方法可以配置 NTP 以保证永远不会向后调整时间?减慢系统时钟就可以了。

所以一秒可以更长也可以更短,但是系统时间绝对不能倒退。

使用标准的 ntpd 你可以看看 修补程序配置命令。 它允许通过设置 "stepback 0" 和(如果您也不希望时钟向前推进)"stepfwd 0"(或者甚至是普通 "step 0")来指定 "never step the clock"。

否则如果本地时钟落后> = 128ms,它将步进(后退) 如果本地时钟关闭则终止 >= 1000s