在朋友圈求助的NTP問(wèn)題~
之前朋友圈求助的問(wèn)題

最后是我一個(gè)朋友嘗試了一天的配置「這個(gè)配置嘗試的過(guò)程需要技術(shù)基礎(chǔ),但是不管如何的技術(shù)基礎(chǔ)都是需要去不斷的嘗試的」,終于找到了方法,所以~
我給他們送了秋天的第一杯奶茶~「是他們是因?yàn)樗麄兌际且蝗何液芟矚g的同事」

具體配置如下:
不夸張的說(shuō),你要是能從網(wǎng)上找到和這個(gè)一樣的配置,算我輸,這個(gè)配置實(shí)現(xiàn)的功能如我上面所說(shuō),可以在host不連接網(wǎng)絡(luò)的情況下,也不必等待5~10分鐘。
所以我才說(shuō)了,這個(gè)配置值錢(qián)。
server 127.127.1.0 prefer minpoll 0
fudge 127.127.1.0 stratum 2
driftfile /tmp/ntp.drift
#restrict default nomodify notrust
restrict default nomodify nopeer noquery limited kod
restrict 127.0.0.0/8
disable auth
logfile /tmp/ntp.log
先說(shuō)下我的項(xiàng)目需求,我的項(xiàng)目不是一個(gè)連接互聯(lián)網(wǎng)的項(xiàng)目,我們有兩個(gè)設(shè)備,一個(gè)設(shè)備做主,另一個(gè)設(shè)備做從,兩個(gè)設(shè)備的開(kāi)機(jī)時(shí)間會(huì)存在偏差,但是他們開(kāi)機(jī)之后,就需要互相同步數(shù)據(jù),而且在同步數(shù)據(jù)的時(shí)候,需要用時(shí)間來(lái)矯正他們兩個(gè)的數(shù)據(jù)。
所以,我需要NTP來(lái)保證,兩個(gè)設(shè)備同一時(shí)刻的時(shí)間是完全相同的。
host 端的ntp配置,正常情況下,如果我們開(kāi)啟了ntpd這個(gè)功能,默認(rèn)會(huì)有一個(gè)ntp.conf的配置文件,如果什么都不修改,應(yīng)該就可以實(shí)現(xiàn)時(shí)間同步的功能。
slave 端使用ntpdate
配置文件的目錄
/etc/ntp.conf
如果我們修改配置文件后,想使用自己的配置文件來(lái)讓自己的配置生效,可以使用 -c 這個(gè)選項(xiàng)
如:
ntpd -c /userdata/ntp.conf
還有,我們有時(shí)候需要調(diào)試查看 ntpd 的輸出,可以使用下面的命令,這個(gè)命令在ntpdate 獲取一次時(shí)間后,就會(huì)退出,但是可以清晰的看到ntpd啟動(dòng)的日志
ntpd -gq -c /etc/ntp.conf
13 Aug 03:37:54 ntpd[16816]: ntpd 4.2.8p10@1.3728-o Mon Aug 9 11:07:38
UTC 2021 (1): Starting
13 Aug 03:37:54 ntpd[16816]: Command line: ntpd -gq -c /etc/ntp.conf
13 Aug 03:37:54 ntpd[16816]: proto: precision = 0.583 usec (-21)
13 Aug 03:37:54 ntpd[16816]: minpoll: provided value (0) is out of range
[3-255])
13 Aug 03:37:54 ntpd[16816]: restrict: ignoring line 7, address/host '12
7.0.0.0/8' unusable.
13 Aug 03:37:54 ntpd[16816]: switching logging to file /tmp/ntp.log
13 Aug 03:37:54 ntpd[16816]: Listen and drop on 0 v6wildcard [::]:123
13 Aug 03:37:54 ntpd[16816]: Listen and drop on 1 v4wildcard 0.0.0.0:123
13 Aug 03:37:54 ntpd[16816]: Listen normally on 2 lo 127.0.0.1:123
13 Aug 03:37:54 ntpd[16816]: Listen normally on 3 eth0 192.168.9.100:123
13 Aug 03:37:54 ntpd[16816]: Listen normally on 4 lo [::1]:123
13 Aug 03:37:54 ntpd[16816]: Listen normally on 5 eth0 [fe80::7c06:50ff:
feb5:8c07%2]:123
13 Aug 03:37:54 ntpd[16816]: Listening on routing socket on fd #22 for i
nterface updates
13 Aug 03:37:55 ntpd[16816]: ntpd: time slew +0.000000 s
ntpd: time slew +0.000000s
如果配置有問(wèn)題,可以在日志里面可以看到
一個(gè)比較簡(jiǎn)單的配置文件說(shuō)明,對(duì)新手來(lái)說(shuō)還是比較友好的
driftfile /var/lib/ntp/drift
##下面兩行默認(rèn)是拒絕所有來(lái)源的任何訪問(wèn)
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#開(kāi)放本機(jī)的任何訪問(wèn)
restrict 127.0.0.1
restrict -6 ::1
# 允許內(nèi)網(wǎng)其他機(jī)器同步時(shí)間(允許192.168.1.0/24 網(wǎng)段主機(jī)進(jìn)行時(shí)間同步)
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#指定ntp服務(wù)器地址
server 192.168.33.44
#允許上層時(shí)間服務(wù)器主動(dòng)修改本機(jī)時(shí)間
restrict 192.168.33.44 nomodify notrap noquery
#外部時(shí)間服務(wù)器不可用時(shí),以本地時(shí)間作為時(shí)間服務(wù)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
##下面兩行為配置文件默認(rèn)開(kāi)啟
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
再說(shuō)個(gè)事情,如果使用NTP的話,可以自己實(shí)現(xiàn)一個(gè)小程序?qū)崿F(xiàn)這個(gè)功能,因?yàn)槲乙詾檫@個(gè)功能實(shí)現(xiàn)不了,我確實(shí)自己寫(xiě)了程序?qū)崿F(xiàn)。測(cè)試了下還挺穩(wěn)定的,后面發(fā)現(xiàn)我朋友調(diào)試出來(lái)后還是棄用了。
參考博客:
https://www.cnblogs.com/shanhua-fu/p/9281040.html
國(guó)內(nèi)的博客還是遜色一些,看看老外的技術(shù)文檔
https://serverfault.com/questions/904150/how-to-force-locally-isolated-ntpd-update-time
https://docs.ntpsec.org/latest/ntp_conf.html
https://blog.csdn.net/cx55887/article/details/83868660
推薦閱讀:
