防止 DHCP 覆盖 NTP 配置

防止 DHCP 覆盖 NTP 配置

/etc/ntp.conf即使 DHCP 尝试提供不同的NTP 服务器列表,如何强制 Ubuntu 16.04 LTS 使用手动配置的 NTP 服务器列表?

在 Ubuntu 16.04 LTS(以及可能所有更高版本)上,当通过 DHCP 配置接口且 DHCP 服务器响应包含 NTP 服务器信息时,dhclient会创建一个配置文件/var/lib/ntp/ntp.conf.dhcp,该文件将覆盖配置,/etc/ntp.conf并且仅包含通过 DHCP 收到的 NTP 服务器,而不包含明确配置的 NTP 服务器。

即使(按照建议)也会发生这种情况关于服务器故障request中的指令/etc/dhcp/dhclient.conf明确设置为列表不是包含ntp-servers关键字。

就我而言,一组分布在全球的服务器通过 DHCP 从每个站点的 ISP 接入路由器获取其 IP 地址,但需要将其时钟同步到一组通用的 NTP 服务器。

答案1

这是https://bugs.launchpad.net/ubuntu/+source/ntp/+bug/1823098

我不记得具体哪个版本对此进行了更改,但直到他们修复了 DHCP 提供的服务器并不总是被选中的错误(我目前找不到错误参考),一种解决方法是在 中的 、 或 指令前面放置一个制表符peerpoolserver/etc/ntp.conf不能完全解决问题,因为 DHCP 提供的 NTP 服务器仍包含在配置中,但至少它不会删除您明确配置的服务器。根据您的补丁级别,这可能不起作用。

要完全修复此问题,您需要修补或删除/etc/dhcp/dhclient-exit-hooks.d/ntp。我不确定哪种更改更适合升级。如果删除文件有效,这可能是最干净的解决方案。否则,像这样的补丁可能会奏效:

--- ntp.orig    2020-05-19 07:46:05.205292208 +0000
+++ ntp 2020-05-19 07:46:15.513301281 +0000
@@ -61,4 +61,4 @@
 }


-ntp_servers_setup
+#ntp_servers_setup

相关内容