我在网络中有一台服务器从DHCP. 问题是ntp-server正在发送的未设置为 UTC。我想使用ntpfound in的配置,/etc/ntp.conf但DHCP信息优先。如何强制ntpd使用配置/etc/ntp.conf而不是发送的配置DHCP?有什么Debian方法可以做到这一点?
use*_*461 16
不直接回答问题,但这可能会派上用场。
在 Debian(至少)上,DHCP 客户端会覆盖现有的 ntp 服务配置。
它由脚本控制/etc/dhcp/dhclient-exit-hooks.d/ntp:
[contents from: /etc/dhcp/dhclient-exit-hooks.d/ntp]
NTP_CONF=/etc/ntp.conf
NTP_DHCP_CONF=/var/lib/ntp/ntp.conf.dhcp
...
[hundreds of lines of scripts]
Run Code Online (Sandbox Code Playgroud)
DHCP 客户端从 DHCP 服务器接收 ntp 服务器,它从 NTP_CONF 路径中获取当前的 ntp 服务配置并将其更改为包括通过 dhcp 接收的 ntp 服务器,它在 NTP_DHCP_CONF 路径中生成一个新的 ntp 配置文件,最后它强制 ntp 服务使用这个新的配置文件。
这导致始终使用通过 dhcp 通告的 ntp 服务器。绕过系统配置。
如果不知道,这将很难调试,因为“/etc/ntp.conf”中的服务配置保持不变并且在目视检查中是正确的。然而,它实际上被忽略并被隐蔽地覆盖。
您可以使用“ntpq -pn”来调试守护进程实际使用的 ntp 服务器。
如果您的网络中有一个 ntp 服务器被 DHCP 通告并且您想忽略它:
您将需要重新配置 dhcp 客户端/etc/dhclient.conf以跳过ntp-serversdhcp 选项。请参阅@Oliver 的回答。
然后你可以自定义系统配置 /etc/ntp.conf
如果 DHCP 在某个时间点通告了 ntp 服务器,但不再通告:
系统 ntp 配置可能仍会被 dhcp 客户端覆盖,从而迫使很久以前公布的过时 ntp 服务器。此 dhcp 覆盖可以持续数天,跨越ntp service restart和reboot.
要结束它,您需要删除/var/lib/ntp/ntp.conf.dhcp并重新启动所有服务器上的 ntp 服务。
这是所有未记录的、意外的和难以调试的行为。这让我今天很头疼,这就是我在这里记录的原因。
我建议您编辑/创建 /etc/dhclient.conf 并使用以下内容取消注释“请求”行:
request subnet-mask, broadcast-address, routers, domain-name, domain-name-servers, host-name;
Run Code Online (Sandbox Code Playgroud)
特别是,如果存在“ntp-servers”,请将其删除。在某些发行版(又名 Fedora)下,它是默认发送的,因此您必须明确地放置此行,以便覆盖默认值。
检查man dhclient.conf扩展信息。
您也可以只删除此文件:/etc/dhcp/dhclient-exit-hooks.d/ntp,而不是编辑您的 DHCP 请求。该文件创建ntp.conf.dhcp.
如果ntp.conf.dhcp是在上次启动时创建的,请确保也将其删除。
| 归档时间: |
|
| 查看次数: |
22902 次 |
| 最近记录: |