環境:Win10_lstc_2019_x64
歸類:software/ntp
簡介:整理記錄ntp軟件安裝使用的一些知識點,包括ntp服務端、ntp客戶端、ntp監控。
重點:ntp服務端做權限控制的時候,發現鳥哥linux私房菜服務器架設篇中關于ntp配置描述是錯誤的。
1.NTP服務端
1.1.簡介
在CentOS7,通過yum install ntp,即可(CentOS8移除了ntp,使用chrony)。
注意:ntp與ntpdate的區別,兩者不能共存。ntp既可以配置成服務端又可以配置為客戶端。ntpdate僅僅作為客戶端對時指令,通過設置定時任務進行對時。ntp對時是平緩、圓滑的,逐步過渡的對時,不會像ntpdate一樣突然變動,這樣突變的時間可能會對某些服務造成損壞。
1.2.Windows
Windows上的專業ntp服務端軟件并不多,雖然通過配置Windows的注冊表和服務能夠開啟授時,但是并不建議這樣做。下面將通過軟件進行設置:ntp-4.2.8p15-v2,軟件僅有win32版本,但是可以用在64位系統上。還有Windows對應的監控ntp-time-server-monitor-1.04
1.2.1.安裝步驟
官網已經提供了具體的安裝指導,下面僅僅是簡單的翻譯了一下(安裝的操作系統:Win10_lstc_2019_x64):
-
協議說明
20210823&001
- 版權,主要是對軟件包含的NTP、OpenSSL、Nullsoft等軟件的協議進行了復述,最后表示本軟件可以免費獲取,免費使用,但是沒有書面許可不允許打廣告或者對軟件進行分發,提醒用戶由于免費,軟件開發者不對軟件的使用后果做任何擔保。
選擇 I Agree
- 安裝路徑
-
安裝路徑可以自由選擇,路徑盡量不帶中文
20210823&003選擇合適的路徑后,點擊Next
-
選擇安裝組件
20210823&004
- NTP Daemon 必選,NTP的(守護)進程
- NTP Tools:NTP的一些工具,比如對NTP啟動,停止,查詢狀態等可視化頁面或指令
- NTP documentation:NTP幫助文檔
- Create StartMenu:創建【開始菜單】
全部選擇,點擊Next
-
配置
20210823&005
①配置文件放置位置,盡量放在軟件安裝包下,不要修改
②創建一個初始化配置文件,可以根據地區自動選擇公共的上層 NTP Servers,這里選擇None
③可以手動輸入9個NTP Servers,這里空著,后期再手動調整配置文件
④是否使用快速初始同步模式(iburst模式),當初始與上層NTP Servers同步請求時,采用突發方式接連發送8個報文,時間間隔為2秒。
-
⑤是否將本地時鐘(127.127.1.0)作為最后一個關聯的引用,設置權重12(默認值最大值15,權重最低)
可以默認不動,直接Next,也可以勾選⑤
-
提示
20210823&007
- 提醒沒有設置有效的NTP Server,NTP將依賴本地時鐘
選擇是
-
提示
20210823&008
- 是否預覽基礎配置文件
選擇是
預覽文件如下:
# NTP Network Time Protocol
# **** ATTENTION ****: *You have to restart the NTP service when you change this file to activate the changes*
# PLEASE CHECK THIS FILE CAREFULLY AND MODIFY IT IF REQUIRED
# Configuration File created by Windows Binary Distribution Installer Rev.: 1.27 mbg
# please check http://www.ntp.org for additional documentation and background information
# restrict access to avoid abuse of NTP for traffic amplification attacks
# see http://news.meinberg.de/244 for details
restrict default noquery nopeer nomodify notrap
restrict -6 default noquery nopeer nomodify notrap
# allow status queries and everything else from localhost
restrict 127.0.0.1
restrict -6 ::1
# if you need to allow access from a remote host, you can add lines like this:
# restrict <IP OF REMOTE HOST>
# Use drift file
driftfile "C:\NTP\etc\ntp.drift"
# your local system clock, should be used as a backup
# (this is only useful if you need to distribute time no matter how good or bad it is)
server 127.127.1.0
# but it operates at a high stratum level to let the clients know and force them to
# use any other timesource they may have.
fudge 127.127.1.0 stratum 12
# End of generated ntp.conf --- Please edit this to suite your needs
不用修改,關閉txt即可
-
設置NTP服務
20210823&009
- 使用擁有系統管理權限的用戶
- 設置開機自動啟動NTP服務
- 關閉其他的時間服務
- 安裝完畢后立即啟動NTP服務
- 允許大的初始時間戳(翻譯不準)
- 允許開始時啟動多媒體定時器,可以提供毫秒級精度
選擇Next,最后Finished
1.2.2.ntp.conf配置
注意:修改了ntp.conf文件以后需要重啟ntp服務,才能生效。
NTP服務啟動后需要幾分鐘左右的時間才會對外提供服務。
1.默認權限設定
restrict default noquery nopeer nomodify notrap
- 默認權限設置,關閉所有的NTP要求封包
restrict -6 default noquery nopeer nomodify notrap
- 忽略ipv6的所有請求
restrict參數主要用來設定權限的,語法:
restrict IP mask network_ip parameter
其中IP可以普通IP也可以是default,指所有地址,如果是網關IP,則對整個網關下的IP全部生效,network_ip是子網掩碼parameter參數如下
ignore :關閉所有的 NTP 聯機服務
nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網絡校時。
notrust :客戶端除非通過認證,否則該客戶端來源將被視為不信任子網。配置keys認證關鍵在于notrust參數,該參數的意思是只有trust的才可以訪問該ntp服務。如果不加該參數就是表示既允許keys認證的訪問,也允許不加keys的訪問。
noquery :不提供客戶端的時間查詢:用戶端不能使用ntpq,ntpc等命令來查詢ntp服務器
notrap :不提供trap遠端登陸:拒絕為匹配的主機提供模式 6 控制消息陷阱服務。陷阱服務是 ntpdq 控制消息協議的子系統,用于遠程事件日志記錄程序。
nopeer :用于阻止主機嘗試與服務器對等,并允許欺詐性服務器控制時鐘。不與其他同一層的ntp服務器進行時間同步
kod : 訪問違規時發送 KoD 包。
2.本地信任
restrict 127.0.0.1
restrict -6 ::1
3.授權遠程服務權限
restrict [ 客戶端IP ] mask [ IP掩碼 ] [參數]
restrict 192.168.0.1 mask 255.255.255.0 noquery nomodify
192.168.0.1-192.168.0.255 這個網段的IP,都可以對時。單個IP只需要mask 255.255.255.255即可,192.168.0.1是網關地址。255.255.255.0是子網掩碼。
經過實驗發現:
restrict default noquery nopeer nomodify notrap
restrict -6 default noquery nopeer nomodify notrap
如果default設置成上面,是默認所有的IP都可以對時,也允許上層授時服務器的時間傳遞,下面再加入的restrict限制只允許某些IP與該服務器進行對時,是沒有意義的,權限不再生效(注意:此處經過實踐證明,鳥哥linux私房菜服務器架設篇中關于ntp配置描述是錯誤的)。下面再加入的放松后的restrict是有效果的,如restrict 127.0.0.1,等于將上面的noquery nopeer nomodify notrap 對本機取消了。
如果需要對特定的IP或者IP段進行授時,需要以下配置:
restrict default ignore
restrict -6 default ignore
restrict 120.25.115.20
restrict 192.168.0.1 mask 255.255.255.0 nomodify notrap
server 120.25.115.20
首先限制所有的IP不能連接,然后再放開上層授時服務器的IP,最后放開需要對外提供授時的服務器IP段。120.25.115.20=s1b.time.edu.cn
4.上層授時服務器
server host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]
server IP1/Domain Name1 iburst minpoll 4 maxpoll 6 prefer
server IP2/Domain Name2
key: 表示所有發往服務器的報文包含有秘鑰加密的認證信息,n是32位的整數,表示秘鑰號。
version: 表示發往上層服務器的報文使用的版本號,n默認是3,可以是1或者2。
prefer: 如果有多個server選項,具有該參數的服務器優先使用。
mode: 指定數據報文mode字段的值。
minpoll: 指定與查詢該服務器的最小時間間隔為2的n次方秒,n默認為6,范圍為4-17。
maxpoll: 指定與查詢該服務器的最大時間間隔為2的n次方秒,n默認為10,范圍為4-17。
iburst: 當初始同步請求時,采用突發方式接連發送8個報文,時間間隔為2秒。
NTP消息的最大輪詢間隔默認為10(1024秒=17分鐘),可以通過maxpoll增加到17(36.4小時)的上限。最小輪詢間隔默認為6(64秒),但可以通過minpoll降低到4(16秒的)下限。
server 120.25.115.20 prefer minpoll 4 maxpoll 6 iburst
5.本地時鐘源
server 127.127.1.0
fudge 127.127.1.0 stratum 12
當沒有時間同步來源的時候以自身的硬件時鐘為準,這里的stratum是代表層級,創建時默認是12,0-15層。
ntpd 對下層 client 來說是 service server,對于上層 server 來說它是 client,也就是說新版的 NTP 服務程序已經不對服務端和客戶端進行區分了,統一叫做 ntpd。ntpd 根據配置文件的參數決定是要為其他服務器提供時鐘服務或者是從其他服務器同步時鐘。
所以只需要將本機的stratum設置成server數+1即可。
6.其他
driftfile "C:\NTP\etc\ntp.drift"
用于記錄主機在與上層授時服務器之間溝通時所花費的時間
ntpd 服務并不是在任何情況下都會進行同步的。當時鐘服務器時間和本地時間相差大于1024s 時,ntp 服務就會認為是人為調整了時鐘或出現了硬件故障,例如 CMOS 電池損壞等。此時,NTP服務就會退出,需要人工使用 ntpdate進行時鐘同步。
采用 -g 選項可以讓 ntpd 忽略 1000s 或更大誤差
7.本地防護墻
ntp服務器默認UDP協議,123端口,需要在入站防火墻上進行端口UDP協議123的允許訪問即可。
1.2.3.ntp狀態監控
ntpq -p
列出本機與所有的server的狀態
remote:遠程時間服務器的 IP 地址或主機名,LOCAL本機
左邊符號表示:
? [ ] 無狀態
? [ x ] 已不再使用,代表遠程服務器不可用
? [ - ] 已不再使用,代表遠程服務器被認為是不合格的 NTP Server
? [ # ] 良好的遠程節點或服務器但是未被使用 (不在按同步距離排序的前六個節點中,作為備用節點使用)
? [ + ] 良好的且優先使用的遠程節點或服務器(包含在組合算法中)
? [ * ] 當前作為優先主同步對象的遠程節點或服務器
? [ o ] PPS 節點 (當優先節點是有效時)。實際的系統同步是源于秒脈沖信號(pulse-per-second,PPS),可能通過PPS 時鐘驅動或者通過內核接口。refid:遠程時間服務器的上一層服務器IP地址
? 一個IP地址 – remote的上層時間來源 IP 地址
? .LOCL. – 本機 (當沒有遠程節點或服務器可用時)
? .PPS. – 時間標準中的“Pulse Per Second”(秒脈沖)
? .IRIG. – Inter-Range Instrumentation Group 時間碼
? .ACTS. – 美國 NIST 標準時間 電話調制器
? .NIST. –美國 NIST 標準時間電話調制器
? .PTB. – 德國 PTB 時間標準電話調制器
? .USNO. – 美國 USNO 標準時間 電話調制器
? .CHU. – CHU (HF, Ottawa, ON, Canada) 標準時間無線電接收器
? .DCFa. – DCF77 (LF, Mainflingen, Germany) 標準時間無線電接收器
? .HBG. – HBG (LF Prangins, Switzerland) 標準時間無線電接收器
? .JJY. – JJY (LF Fukushima, Japan) 標準時間無線電接收器
? .LORC. – LORAN-C station (MF) 標準時間無線電接收器,注: 不再可用 (被 eLORAN 廢棄)
? .MSF. – MSF (LF, Anthorn, Great Britain) 標準時間無線電接收器
? .TDF. – TDF (MF, Allouis, France)標準時間無線電接收器
? .WWV. – WWV (HF, Ft. Collins, CO, America) 標準時間無線電接收器
? .WWVB. – WWVB (LF, Ft. Collins, CO, America) 標準時間無線電接收器
? .WWVH. – WWVH (HF, Kauai, HI, America) 標準時間無線電接收器
? .GOES. – 美國靜止環境觀測衛星;
? .GPS. – 美國 GPS;
? .GAL. – 伽利略定位系統歐洲 GNSS;
? .ACST. – 選播服務器
? .AUTH. – 認證錯誤
? .AUTO. – Autokey (NTP 的一種認證機制)順序錯誤
? .BCST. – 廣播服務器
? .CRYPT. – Autokey 協議錯誤
? .DENY. – 服務器拒絕訪問;
? .INIT. – 關聯初始化,還沒有開始同步,處于初始狀態還沒建立同步
? .MCST. – 多播服務器
? .RATE. – (輪詢) 速率超出限定
? .TIME. – 關聯超時
? .STEP. – 間隔時長改變,偏移量比危險閾值小(1000ms) 比間隔時間 (125ms)大st:stratum 階層,表示與頂層參考時鐘(原子時鐘、GPS 或者其他無線電時鐘)的距離,頂層為第 0 層。距離頂層越近,時間越準確。
t:類型,本地 ntp 服務與遠程時間服務的通信方式
? u:單播或者多播
? b:廣播
? l:本地when:最后一次時間同步到現在的時間,沒有單位表示秒
poll:同步的頻率,下次更新在多少秒后
reach:和遠程時間服務的連接成功次數,每成功一次就增加,以8進制顯示
delay:從本地到遠程時間服務器通信往返時間,單位毫秒
offset:本機與遠程時間服務器的時間偏移量,該值越接近0越好,單位毫秒
jitter:本機與遠程時間服務器的時間平均偏差,該值越小越好,單位毫秒
2.monitor用法
- NTP Service
需要以管理員啟動才能執行 start,restart,stop操作。
- Settings操作
Allow initial big time step:大于1024秒,作為客戶端是否還同步NTP的時間。不建議勾上,作為對外授時的服務器,使用來自上層授時服務器的時間,如果時間與上層時間超過了1024秒,還是需要人員手動檢查。
Set multimedia timer to highest resolution:多媒體定時器優化,使其最優能提供1ms延遲
Restart NTP service if stopped:如果NTP服務掛了是否自動重啟。守護進程
- NTP Status
`ntpq -p`執行的效果可視化
NTP Configuration File
配置文件,修改后提示是否重啟NTP服務-
Statistic
統計頁面,會自動在ntp.conf中添加配置,這是靜態的歷史的統計########################################################### #Section insert by NTP Time Server Monitor 2021/6/12 enable stats statsdir "C:\NTP\etc\" statistics loopstats ###########################################################
20210823&015 -
Advanced Statistic
動態統計
20210823&016 -
Configuration
20210823&017
勾選上,Run at System Start:開機自啟
Service changes remain consistent after reboot:重新啟動后服務更改保持一致
Statistic,靜態統計文件配置
Advanced Statistic:動態統計,調試的時候可以打開,調試完建議關閉。 -
NTP Event Log
20210823&018
建議管理員重點關注,Filter中 Only Errors 的條目。
Notification
發郵件提醒,定制提醒信息
3.NTP客戶端軟件安裝
計算機本地帶的“調整日期/時間”,其頻率是一周。如果需要更改,需要改注冊表,不建議這樣操作。
推薦使用NTP客戶端軟件NetTime - Network Time Synchronization Tool (timesynctool.com)
本次安裝的版本是“NetTimeSetup-320a3_NTP客戶端”,安裝步驟較簡單,省略。
3.1.點擊Settings進入設置
- Time Servers:時間服務器,從上到下優先級越來越低
- Update Interval:多久更新一次時間
- Retry Interval:失敗后多久再次嘗試向時間服務器獲取時間
- Demote Servers after 4 failure:連接失敗4次后將對應時間服務器降權,優先級下降
- 【重要】Allow other computers to sync to this computer:是否允許時間服務器修改本計算機時間,務必勾選上,否則本地計算機無法完成對時。
- Always provide time(NOT recommended):是否對外提供授時服務,即將本計算機設置為時間服務器
- Show NetTime icon in the system tray at login:是否在計算機右下角托盤中顯示客戶端圖標
- Run NetTime as a system services:是否將客戶端作為一個系統服務存在,建議勾選上,在計算機服務中設置為開機自動啟動
- Max Free Run:指示在認為本地時間不再準確之前,程序在沒有獲得有效同步的情況下將運行多長時間。一旦這段時間到期,托盤圖標將變成一個十字,如果它被配置為時間服務器,它將停止響應請求的時間。
- if Time adjustment greater than 2 minus Adjust System Time:如果與時間服務器差值超過2分鐘,怎么辦,是自動調整本計算機時間?不更新本計算機時間?詢問用戶?
- Use adaptative clock speed to smoothly adjust system time
Max offset to drift 5 minutes:是否在5分鐘內,將時間平滑的過渡到與時間服務器時間保持一致,不跳躍的變動時間。(比如本計算機時間慢了時間服務器2分鐘,則在未來5分鐘內,本計算機時間將逐漸將差值2分鐘追平時間服務器),建議勾選上 - Automatically Check For Updates every 7 days:每隔7天自動檢測一次更新,生產環境不建議勾選
- Logging Level:Normal 日志等級,View查看日志
3.2.運行
- Time:計算機日期時間
- Last Attempt:最后一次嘗試同步日期
- Last Sync:最后一次同步日期時間
- Next Attempt:下一次同步時間
- Time is being corrected:顯示時間同步狀態的區域,這里表示同步正常
- Mode:是否作為一個服務啟動,Error acting as time server!注意win10需要以管理員運行,再設置勾選上面的run as a system server。
每次設置完,點擊一次Update Now.確認運行狀態