
我需要創建設備(目前基於 Raspberry Pi 3),該設備聲明為 NTP 伺服器,它沒有連接到互聯網,並且 NTP 應該從本地系統時鐘讀取實際時間(該時鐘是從應用程式設定的)。我的/etc/ntp.conf是:
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
restrict ::1
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 1
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log
當使用命令測試連接(之後service ntp restart
)時,ntpdate -du localhost
我得到以下輸出:
transmit(::1)
receive(::1)
transmit(127.0.0.1)
receive(127.0.0.1)
transmit(::1)
receive(::1)
transmit(127.0.0.1)
receive(127.0.0.1)
transmit(::1)
receive(::1)
transmit(127.0.0.1)
receive(127.0.0.1)
transmit(::1)
receive(::1)
transmit(127.0.0.1)
receive(127.0.0.1)
::1: Server dropped: strata too high
127.0.0.1: Server dropped: strata too high
server ::1, port 123
stratum 16, precision -20, leap 11, trust 000
refid [::1], delay 0.02573, dispersion 0.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Thu, Feb 7 2036 6:28:16.000
originate timestamp: ddbf0da9.473a860b Tue, Nov 21 2017 20:40:09.278
transmit timestamp: ddbf0da9.47320583 Tue, Nov 21 2017 20:40:09.278
filter delay: 0.02579 0.02573 0.02574 0.02573
0.00000 0.00000 0.00000 0.00000
filter offset: 0.000018 -0.00001 -0.00000 -0.00001
0.000000 0.000000 0.000000 0.000000
delay 0.02573, dispersion 0.00000
offset -0.000011
server 127.0.0.1, port 123
stratum 16, precision -20, leap 11, trust 000
refid [127.0.0.1], delay 0.02570, dispersion 0.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Thu, Feb 7 2036 6:28:16.000
originate timestamp: ddbf0da9.7a812105 Tue, Nov 21 2017 20:40:09.478
transmit timestamp: ddbf0da9.7a7990a1 Tue, Nov 21 2017 20:40:09.478
filter delay: 0.02571 0.02570 0.02570 0.02570
0.00000 0.00000 0.00000 0.00000
filter offset: -0.00000 -0.00001 -0.00001 -0.00001
0.000000 0.000000 0.000000 0.000000
delay 0.02570, dispersion 0.00000
offset -0.000013
21 Nov 20:40:09 ntpdate[1181]: no server suitable for synchronization found
我究竟做錯了什麼?為什麼ntp
無法從系統時鐘取得時間?
答案1
由於該server
語句不包含iburst
關鍵字,因此 ntpd 重新啟動後可能需要幾分鐘才能與時間來源同步。在此期間,它向其他伺服器提供的答案被認為是不可靠的。
是的,即使它有效地與自身同步。
在ntpdate -d
輸出中,這stratum 16, precision -20, leap 11
意味著 ntpd 認為“我現在還沒有準備好向任何其他人提供時間服務。”