我有一个networking中的服务器从DHCP接收所有的networking信息。 问题是发送的ntp-server没有设置为UTC。 我想使用在/etc/ntp.conffind的ntpconfiguration,但是DHCP信息优先。 如何强制ntpd使用/etc/ntp.conf的configuration而不是DHCP发送的DHCP ? 什么是Debian方式来做到这一点?
我build议你编辑/创build/etc/dhclient.conf并取消注释行“请求”像这样的东西:
request subnet-mask, broadcast-address, routers, domain-name, domain-name-servers, host-name;
尤其是,如果“ntp-servers”存在,请将其删除。 在一些发行版(又名Fedora)下,它是默认发送的,所以你必须把这一行直接放在默认值上。
检查man dhclient.conf以获取扩展信息。
不直接回答这个问题,但可能会派上用场。
在Debian上(至less)DHCP客户端正在覆盖现有的ntp服务configuration。
它由脚本/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]
DHCP客户端从DHCP服务器接收ntp服务器,从NTP_CONFpath获取当前的ntp服务configuration,并将其更改为包含通过dhcp接收的ntp服务器,然后生成一个新的ntpconfiguration文件到NTP_DHCP_CONFpath,最后强制ntp服务使用这个新的configuration文件。
这导致始终使用通过dhcp公布的ntp服务器。 绕过系统configuration。
这是很难debugging,如果不知道,因为/etc/ntp.conf中的服务configuration保持不变,并在视觉检查是正确的。 然而它实际上被忽略和被隐瞒。
您可以使用'ntpq -pn'来debuggingdeamon实际使用的ntp服务器。
如果您的networking中有一个ntp服务器正在通过DHCP发布,并且您想忽略它 :
您需要重新configuration/etc/dhclient.conf的dhcp客户端以跳过ntp-servers dhcp选项。 请参阅@Oliver的回答。
然后你可以在/etc/ntp.conf定制系统configuration
如果有一个ntp服务器通过DHCP在某一时刻,但不再是 :
系统的ntpconfiguration可能仍然被dhcp客户端覆盖,迫使很久以前公布过时的ntp服务器。 这个DHCP覆盖可以存活几天,跨ntp service restart和reboot 。
要结束它,您将需要删除/var/lib/ntp/ntp.conf.dhcp并重新启动所有服务器上的ntp服务。
这是所有没有logging,意外和难以debugging的行为。 这使我今天非常头疼,这就是为什么我要在这里logging下来。
你也可以直接删除这个文件: /etc/dhcp/dhclient-exit-hooks.d/ntp ,而不是编辑你的DHCP请求。 这个文件创buildntp.conf.dhcp 。
如果在上次启动时创build了ntp.conf.dhcp ,请确保将其删除。