因为我的多台 Debian/KDE 机器的时钟无缘无故地慢了很多分钟而且常见的主板(或者至少是我拥有的主板)没有准确、可靠的硬件时钟,我必须设置openntp
.
与openntp
ntp 服务器的持续连接(使用sudo lsof -i
)对设备的攻击面和隐私等产生各种影响。我希望将互联网连接保持在最低限度,并希望阻止所有我不需要/没有任何用处的网络活动。我只是想有一个日常使用的工作时钟,所以我认为这一切并不是真正需要的:
必须有一种更好、更简单的方法来在 GNU/Linux/Debian 上获得工作时钟。
我能想到的两种方法是:
- 让 openntpd 每 z 分钟(x 和 y 之间的随机数)连接到 ntp 服务器,同步时钟,然后再次关闭。
- 以类似的方式从一些经过身份验证的 Web 服务器获取时间信息,并且仅当时钟漂移似乎太大时,让 openntpd 连接到 ntp 服务器并同步时钟。
也许有更好的方法,比如新的可靠的硬件时钟。我认为这两种方式之一可以很容易配置。这样的事情可能吗/这样的事情怎样才能做到?
答案1
您可以尝试调整 poll 值ntp.conf
minpoll minpoll, maxpoll maxpoll
These options specify the minimum and maximum poll intervals
for NTP messages, in seconds as a power of two. The maximum
poll interval defaults to 10 (1,024 s), but can be increased
by the maxpoll option to an upper limit of 17 (36.4 h).
The minimum poll interval defaults to 6 (64 s), but can be
decreased by the minpoll option to a lower limit of 4 (16 s).
These option are valid only with the server and peer commands.
systemd 等替代方案timesyncd
也有轮询间隔选项timesyncd.conf
:
PollIntervalMinSec=, PollIntervalMaxSec=
The minimum and maximum poll intervals for NTP messages. Each
setting takes a time value (in seconds). PollIntervalMinSec= must
not be smaller than 16 seconds. PollIntervalMaxSec= must be larger
than PollIntervalMinSec=. PollIntervalMinSec= defaults to 32
seconds, and PollIntervalMaxSec= defaults to 2048 seconds.
您可以检查它当前正在使用什么:
$ timedatectl show-timesync --all
[...]
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=34min 8s
除非您的时钟行为异常,否则它应该自行达到最大轮询间隔。
还可以选择ntpdate
在 cron 作业或类似作业中使用 NTP 客户端(如 )。这样,它只会按照您指定的时间间隔更新时钟,无论它有多不同步。
如果此设备上的时钟行为异常,但本地网络中的另一台设备能够更好地保持其时钟,则可以将其用作本地时间服务器。这将为您提供一台很少轮询互联网服务器而经常在本地轮询的设备。这样的本地时间服务器可以让您最大限度地减少与外界的接触。
无论您选择哪个选项,请确保系统时钟始终正确。