起因是這樣的,在項目中有一個機器人是使用的ARM版本的Ubuntu操作系統,但是它上面沒有紐扣電池用于保存時間,因此每次重啟后時間錯誤,需要手動校正,非常麻煩。所以使用NTP來同步服務器時間,但并沒有公網環境,且局域網中只有一臺Windows 10電腦(可同時連接內外網),因此使用Windows 10作為NTP server為ubuntu提供校時服務。
Windows 10本身是可以作NTP時間同步服務器的,無需安裝其它軟件,只需要修改一些配置。
使用win + R 組合鍵在運行窗口中輸入regedit,打開注冊表編輯器。
image
依次展開數據項目,計算機\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer,把Enabled設置為1,為打開NTP服務,操作如下圖所示。
image
依次打開,計算機\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config,并把AnnounceFlags的值設置為5(系統默認為a)。
使用win + R 組合鍵在運行窗口中輸入services.msc,打開服務。
在服務項中找到Windows Time
設置為自動后確定,點擊右鍵重新啟動此服務,至此服務啟動成功。
注:啟動和關閉windows NTP的方式,還可以使用命令行來管理
啟動:net start w32time
停止:net stop w32time
在cmd窗口中輸入w32tm /stripchart /computer:127.0.0.1 ,如果有回顯則服務正常。
服務端部署成功后,如果要為客戶端提供服務的話需要開放udp協議中的123端口,或者根據自身安全情況關閉防火墻。客戶端下可以使用ntpdate命令來同步服務器時間,也可以使用chrony服務。
由于我這里使用的是ARM版本的ubuntu操作系統,下面演示將適用于此系統,其它操作系統或架構平臺操作類似。
# 安裝ntpdate服務
sudo apt-get install ntpdate
# 安裝完成后, 同步時間。xxx.xxx.xxx.xxx為你服務器的IP地址,clock -w把時間寫入硬件。
sudo ntpdate xxx.xxx.xxx.xxx && clock -w
chrony是一個時間同步服務,通過配置可以把一臺服務器變為NTP服務端或客戶端,這里只用到客戶端的功能。
sudo apt-get install chrony
安裝完成后打開配置文件
vim /etc/chrony.conf
如果做客戶端的話,只需要修改其中的一行文件,最后保存退出。
# xxx為你的IP地址
server xxx.xxx.xxx.xxx
重啟chrony服務,使用時間同步服務生效。
systemctl restart chronyd
往期推薦:
6款瀏覽器大對比,這就是你不再使用國產瀏覽器的原因?
玩容器必會,Harbor的配置與簡單使用
圣誕節來了,教你用各種編程語言手寫一棵圣誕樹
時間同步在內網環境中一直是個問題,服務器、終端、網絡設備都需要一個準確的時間,特別是排查故障時一個準確的時間非常關鍵。
NTP(Network Time Protocol)是用來使計算機時間同步化的一種協議,它可以使計算機通過IP網絡來實現時間做同步化,它可以提供高精準度的時間校正(LAN上與標準間差小于1毫秒,WAN上幾十毫秒)。NTP 運行于 UDP 端口 123 上,防火墻上需要開放此端口。
NTP服務器的基本原理如下:
1、NTP服務器從外部時間服務獲取準確的時間,并將其存儲在本地時間庫中;
2、NTP服務器通過網絡廣播同步信息,告訴客戶機當前時間和時間誤差;
3、客戶機通過分析同步信息來計算出時間誤差,然后根據誤差來調整本地系統時間。
Windows從win2000開始默認帶有NTP服務器——Windows時間服務(W32Time),只是默認沒有開啟,我們可以通過修改注冊表的方式打開Windows默認的NTP服務器。
當然,我們建議作為NTP時間服務器最好能跟上游時間服務器同步以保證時間準確性(這internet時間設置外部的時間服務器)。
適用于:Windows Server 2012,其他版本類似配置。
2.將 AnnounceFlags 設置為 5。 為此,請按照下列步驟操作:
3.啟用 NTPServer。 為此,請按照下列步驟操作:
4.配置時間校準設置。 為此,請按照下列步驟操作:
5.啟動NTP服務
1、在命令提示符處以管理員身份運行,鍵入以下命令以重啟 Windows 時間服務,然后按 Enter:
net stop w32time && net start w32time
2、在服務中設置為自動啟動服務。
6、客戶端設置:
這里的服務器設置為NTP服務器IP,然后選擇立即更新。
#妙筆生花創作挑戰#