如何設置 linux 客戶端以使用通過 dhcp 提供的 ntp 資訊?
那裡有很多教程解釋如何設置
dhcpd
伺服器,與向 dhcp 客戶端提供 ntp 建議有關,我一直認為ntp
配置是自動執行的。最近我開始在本地網路中看到時鐘漂移,所以我認為這是一個錯誤的假設。因此,我著手研究如何最大限度地減少 ntp 客戶端配置,前提是已經努力ntp-server
通過dhcpd
.除了這個 Ubuntu 特定幫助教程https://help.ubuntu.com/community/UbuntuTime之外,我找不到太多東西。即使在這裡(參見“故障排除 -> 它正在使用哪個配置文件?”下的段落)資訊也很少,但它說如果
/etc/ntp.conf.dhcp
找到一個文件,它將被使用。首先,作者在此處所指的實際位置與在/var/lib/ntp/ntp.conf.dhcp
中觀察到的一樣/etc/init.d/ntp
,但無論如何,此文件的存在並不能保證 ntp 將從dhclient
. 因此,我必須為我的本地 ntp 伺服器顯式添加該server
子句。ntp.conf.dhcp
但在那種情況下,我為什麼還要在dhcpd
伺服器上設置 ntp 設置呢?這似乎違背直覺,即設置一次 ntp 設置(即在伺服器上)並讓
dhcpd
伺服器將資訊委託給客戶端。我怎樣才能最小化(如果不能完全避免)ntp.client 的配置。或者,我怎樣才能ntp
通過dhclient
.是否有適合所有 linux 發行版的 cli 解決方案?
我假設每個客戶端都應該有 的執行檔
ntpd
,但我不知道如何從那裡著手。謝謝
編輯:手動執行時 ubuntu 客戶端詳細輸出
dhclient
:sudo dhclient -1 -d -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 Internet Systems Consortium DHCP Client 4.2.4 Copyright 2004-2012 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on LPF/eth0/20:cf:30:0e:6c:12 Sending on LPF/eth0/20:cf:30:0e:6c:12 Sending on Socket/fallback DHCPREQUEST of 192.168.112.150 on eth0 to 255.255.255.255 port 67 (xid=0x2e844b8f) DHCPACK of 192.168.112.150 from 192.168.112.112 reload: Unknown instance: invoke-rc.d: initscript smbd, action "reload" failed. RTNETLINK answers: File exists * Stopping NTP server ntpd ...done. * Starting NTP server ntpd ...done. bound to 192.168.112.150 -- renewal in 41963 seconds.
ntpd 服務重新啟動,但
ntpq -cpe -cas
之後執行我仍然沒有在 ntp 伺服器列表中看到我的本地 ntp 伺服器。當然我的
dhcpd
伺服器確實有option ntp-servers
subnet 192.168.112.0 netmask 255.255.255.0 { max-lease-time 604800; default-lease-time 86400; authoritative; ignore client-updates; option ntp-servers 192.168.112.112; #self ... (many other options) }
如果您正在使用的 dhcp 伺服器配置為提供該選項,您可以通過添加到預設請求行中
ntp-servers
來配置您的 dhclient 以請求 ntp-servers ,如 Ubuntu Linux(截至 19.04,但至少從 12.04 開始存在):ntp-servers``dhclient.conf
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers;
/etc/ntp.conf
來自 DHCP 的資訊將用於創建/etc/ntp.conf.dhcp
.必須告訴您的 ntpd 使用 /etc/ntp.conf.dhcp(如果存在)。在我使用的 Ubuntu 版本上,這是通過
/etc/dhcp/dhclient-exit-hooks.d/ntp
. <– 這是告訴 NTPd/etc/ntp.conf.dhcp
如果存在就使用,/etc/ntp.conf
如果不存在就使用的文件。