開啓NTP時鐘服務器,讓電腦變成網絡時間服務器

開啓NTP時鐘服務器,讓電腦變成網絡時間服務器

對Windows熟悉的人都知道,在計算機系統時間設置裏,可以設置本地計算機時間與Internet時間服務器時間同步,這樣計算機就會定期與網絡時間進行同步,不用就擔心自己的計算機在經歷較長時間後發生時間偏差。

我們都知道,計算機的時間來源於主板上的晶振,別管你的電腦有多貴,幾百塊的N手貨,或者是幾萬塊的喫雞神裝,這玩意兒的時間精度和你買給孩子的電子手錶精度不會有太大差異。非互聯網環境下的計算機,難道就沒有辦法自動更新時間了嗎?當然不是的!計算機通過網絡授時,是利用了一個叫NTP的網絡授時協議,NTP的服務器通過高精度的原子鐘來維持時間(新聞裏常說的叫,叫什麼一萬年誤差不超過一秒,具體誤差有多大,還得看原子鐘的具體類型),客戶端計算機通過和NTP服務器通信,接收高精度且可信的時間來源,計算自己的時間誤差,從而進行修正。
有人就說了,我的網絡速度特別卡,打開個網頁就要幾分鐘,量你服務器時間再準確,傳輸到我這裏,就已經慢了十幾秒了,這怎麼辦?放心,計算機的工程師們早就考慮到這個問題,NTP的協議,肯定不會那麼簡單。爲了讓更多人能理解這個NTP的協議,我說一下其中的原理算法:假設客戶端C和服務器S在當前時刻下,各自的時鐘時間分別爲C1和S1,此時刻下客戶端與服務器進行時間同步,他們之間應該會有這樣的對話交流:客戶端對服務器說:“我的時間是C1。”這句話經過網絡延遲t1後被服務器聽到,服務器說:“我在S2時刻聽到你說時刻是C1,並在S3時刻告訴你。”
這句話又經過網絡延遲t2後,在C4時刻被客戶端聽到。t1+t2=(C4-C1)-(S3-S2)
這就是兩次網絡傳輸的總共延遲時間,假定發送和接收延遲相等,那麼單次網絡傳輸延遲就是t3=(t1+t2)/2。這樣,客戶端最後一次收到服務器發來的時刻是S3,S3-t3就是客戶端要修正的正確時間。
當然,真實的NTP協議比這個要複雜,經過多次計算後,廣域網的NTP授時精度通常能達到50ms,也就是1/20秒,對一般人的授時需求,可以說是完全能夠滿足了。如果數據局域網、城域網,經過的路由交換少,多次傳輸間的網絡延遲比較穩定,沒有大的偏差,授時精度甚至能達到10ms。
所以,言歸正傳,在非互聯網環境下,要實現整個內部網絡的時間同步,把NTP服務器搬到局域網下,爲其他主機授時,是一個非常不錯的辦法,這樣只需要花精力讓一臺或幾臺時間服務器的時間保持精準就行了。
假設你找了一臺電腦來做NTP的服務器,打算買一臺原子鐘來給服務器授時(銣鍾6萬、銫鐘50萬、氫鍾130萬),授時精度0.1ns至5ns,老闆看了你的預算認爲太高,不同意你買原子鐘,但是要求你必須在三天之內搞定公司內部授時的問題,防止員工以時間不準爲由藉機提前下班,否則就要開除你。於是你花100塊錢從淘寶上買了一個GPS模塊連接到電腦上,通過GPS信號實現了衛星授時,授時精度50ns。接下來,就要想辦法實現公司內部局域網的時間同步了。雖然很多人都知道Windows可以設置與服務器同步時間,但是很少有人知道他也可以反過來被設置爲時間服務器,正如同剛纔我們模擬的客戶端與服務器的對話,只需要讓客戶端偵聽別人的詢問,並充當服務器的角色進行回答就可以了。

前面的關子賣得太長,下面直接說乾貨。進入Windows後,按Windows+R,調出運行對話框,輸入regedit,確定後打開“註冊表編輯器”,在註冊表左側樹列表依次選擇:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer,右側找到Enabled,雙擊,把數值改爲1,表示將NTP服務器設置爲可用。然後,依次展開HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config,右側找到AnnounceFlags,雙擊修改數值爲5,表示指示自身爲可靠時間源。

開啓NTP時間服務器,讓自己的電腦變成網絡時間源

最後,要確保計算機的Windows Time服務保持運行,正常情況下,Windows的計算機這個服務都是開啓的,右鍵“我的電腦”(Win10叫此電腦,改得真蛋疼),選擇“管理”,打開“計算機管理”,左側選擇“服務和應用程序”->“服務”,右邊找到Windows Time,就能看到此服務是否在運行,這個界面下,用戶也可以設置服務是否啓動、是否禁用等等。局域網的時間服務器,你就已經配置完成,現在讓大家都把Internet時間服務器的地址改爲你的服務器的IP地址吧。
文章來源:安徽京準電子科技公司

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章