加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • ntp是什么
    • 客戶端啟ntp服務(wù)器
    • openwrt服務(wù)端開啟ntp服務(wù)器下發(fā)功能
    • 簡單示例
    • 結(jié)語
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

openwrt中時間同步ntp使用

03/15 11:20
4989
閱讀需 11 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

作者:羽林君,轉(zhuǎn)載授權(quán)以及圍觀:歡迎關(guān)注微信公眾號:羽林君,或者添加作者個人微信:become_me

openwrt開發(fā)中,我們可能遇到這樣需求,使用路由器支持局域網(wǎng)內(nèi)設(shè)備ntp授時功能。

ntp是什么

NTP(Network Time Protocol,網(wǎng)絡(luò)時間協(xié)議)是由RFC 1305定義的時間同步協(xié)議,用來在分布式時間服務(wù)器和客戶端之間進行時間同步。NTP基于UDP報文進行傳輸,使用的UDP端口號為123。

使用NTP的目的是對網(wǎng)絡(luò)內(nèi)所有具有時鐘的設(shè)備進行時鐘同步,使網(wǎng)絡(luò)內(nèi)所有設(shè)備的時鐘保持一致,從而使設(shè)備能夠提供基于統(tǒng)一時間的多種應(yīng)用。

對于運行NTP的本地系統(tǒng),既可以接收來自其他時鐘源的同步,又可以作為時鐘源同步其他的時鐘,并且可以和其他設(shè)備互相同步。

關(guān)于NTP原理分析,有人寫的很詳細(xì),這里貼一個連接:https://www.cnblogs.com/lsgxeva/p/16587984.html

客戶端啟ntp服務(wù)器

我們可以在界面直接選中Enable NTP client,在下方填寫自己需要的ntp同步的網(wǎng)站(具體網(wǎng)址可以自行搜索),然后openwrt就會幫你啟動配置好網(wǎng)站的命令。

上面默認(rèn)123端口,當(dāng)然我們也可以在配置文件中指定NTP服務(wù)器的端口,在OpenWRT中,常見的NTP客戶端是"ntpd",其配置文件通常位于"/etc/ntp.conf"或"/etc/config/system"等位置:

server?1.openwrt.pool.ntp.org?iburst?port?123

在這個示例中,"port 123" 指定了NTP服務(wù)器的端口為123。請注意,大多數(shù)情況下,無需手動指定端口,因為NTP客戶端會默認(rèn)使用標(biāo)準(zhǔn)的UDP端口123與NTP服務(wù)器通信。一般情況下,默認(rèn)的UDP端口123對于NTP時間同步已經(jīng)足夠了。

下面是寫好了同步網(wǎng)站后openwrt啟動的命令,填寫NTP網(wǎng)站,大家把網(wǎng)站前面序號去掉。

r/sbin/ntpd?-n?-N?-S?/usr/sbin/ntpd-hotplug?-p?openwrt.pool.ntp.org?-p?openwrt.pool.ntp.org?-p?openwrt.pool.ntp.org?-p?tp1.aliyun.com?

這個命令是在OpenWRT系統(tǒng)中用于啟動ntpd(NTP守護進程)的命令,具體解釋如下:

/usr/sbin/ntpd

    :這是要執(zhí)行的程序,即NTP守護進程。
ntpd就是ntp daemon。是一個系統(tǒng)的后臺進程(system daemon),用來同步本地系統(tǒng)時鐘和遠(yuǎn)程NTP時間服務(wù)器的時間,或者其他參考時間源。
該程序?qū)崿F(xiàn)了全部的NTP4協(xié)議,并對版本3,2,1,進行了兼容。
的定義該程序可以工作在client/server模式,symmetric模式,broadcast模式。
ntpd通常需要一個配置文件/etc/ntp.conf,ntpd后面的選項和命令可以寫在該配置文件中。通常,ntpd啟動后會讀取ntp.conf文件。也可以在ntpd后面接相應(yīng)指令,讓ntpd不考慮該配置文件。
ntpd可以自動發(fā)現(xiàn)遠(yuǎn)程服務(wù)器并自動配置。
nptd通常連續(xù)工作,隔一段時間調(diào)整一次系統(tǒng)時間。也可以在調(diào)整完系統(tǒng)時間后自動退出,如果沒有收到NTP服務(wù)器的回復(fù),將會超時退出。

-n:表示以前臺方式運行,通常用于調(diào)試目的。

-N:表示不進行守護進程化,通常也是為了調(diào)試目的。

-S /usr/sbin/ntpd-hotplug:指定了一個腳本或程序,可能是在NTP時間同步發(fā)生變化時觸發(fā)的熱插拔腳本。

-p openwrt.pool.ntp.org -p openwrt.pool.ntp.org -p ntp1.aliyun.com:這些是指定的NTP服務(wù)器地址。"-p"參數(shù)后面跟著的是NTP服務(wù)器的地址,這里包括了openwrt官方的NTP服務(wù)器和阿里云的NTP服務(wù)器。

綜合來看,這個命令的作用是以前臺方式運行ntpd(NTP守護進程),不進行守護進程化,同時指定了一組NTP服務(wù)器地址用于時間同步,并且可能在時間同步發(fā)生變化時會觸發(fā)"/usr/sbin/ntpd-hotplug"腳本。

openwrt服務(wù)端開啟ntp服務(wù)器下發(fā)功能

選中provide NTP server即可開啟路由器ntp服務(wù)器同步功能。

啟動openwrt的ntp服務(wù)器后,原生的openwrt會幫你啟動這樣命令:

{ntpd}?/sbin/ujail?-t?5?-n?ntpd?-U?ntp?-G?ntp?-C?/etc/capabilities/ntpd.json?-c?-u?-r?/bin/ubus?-r?/usr/bin/env?-r?/usr/bin/jshn?-r?/usr/sbin/ntpd-hotplug?-r?/usr/share/libubox/jshn.sh?--?/usr/sbin/ntpd?-n?-N?

這個命令是在OpenWRT系統(tǒng)中用于啟動ntpd(NTP守護進程)的命令,具體解釋如下:

**{ntpd}**:一個占位符,用于指代命令名稱,實際上應(yīng)該替換為"ntpd"。

/sbin/ujail:這是一個命令,通常用于在OpenWRT系統(tǒng)中以受限制的環(huán)境中執(zhí)行其他程序。它提供了對OpenWRT的沙盒(sandboxing)支持,以增加系統(tǒng)安全性。

-t 5:這是ujail命令的選項之一,表示設(shè)置超時時間為5秒。

-n ntpd:指定要運行的程序名稱為"ntpd"。

-U ntp -G ntp:分別指定了新的進程用戶和組,這里將ntpd進程的用戶設(shè)置為"ntp",組也設(shè)置為"ntp"。

-C /etc/capabilities/ntpd.json:指定了一個JSON格式的文件,其中包含了ntpd進程的能力(capabilities)配置。

-c:表示創(chuàng)建一個新的控制終端。

-u:在后臺運行進程。

-r /bin/ubus -r /usr/bin/env -r /usr/bin/jshn -r /usr/sbin/ntpd-hotplug -r /usr/share/libubox/jshn.sh:這些都是指定了要在沙盒環(huán)境中可用的程序或腳本。

-- /usr/sbin/ntpd -n -N:最后部分是實際要執(zhí)行的命令,包括路徑和參數(shù)。這里運行了"/usr/sbin/ntpd"命令,帶有"-n"和"-N"參數(shù)。

這個命令的作用是以沙盒環(huán)境中以"ntp"用戶和組的身份運行ntpd(NTP守護進程),并且使用指定的能力配置文件以及相關(guān)的必要程序和腳本。

簡單示例

上面稍微詳細(xì)介紹了使用,這里我們直接命令簡單執(zhí)行一下,進行NTP同步。服務(wù)端:

/usr/sbin/ntpd?-n?-N?-l?-S?/usr/sbin/ntpd-hotplug?-p?ntp1.aliyun.com?-p?ntp2.aliyun.com?-p?ntp.tencent.com?-p?ntp1.tencent.com?-p?time.windows.com

客戶端:

ntpd?-n?-N??-p?192.168.1.1

我的openwrt路由器ip為192.168.1.1協(xié)議抓?。?/strong>使用wireshark 抓取,用ntp關(guān)鍵詞篩選

client請求:

server回應(yīng):

wireshark抓包分析可以參考這篇:https://blog.csdn.net/chen1415886044/article/details/112549133

實際執(zhí)行:大家可以下面看到設(shè)備的date查詢中時間更新了:

結(jié)語

這就是我自己在openwrt使用ntp的記錄。如果大家有更好的想法,也歡迎大家加我好友交流分享哈。

作者:良知猶存,白天努力工作,晚上原創(chuàng)公號號主。公眾號內(nèi)容除了技術(shù)還有些人生感悟,一個認(rèn)真輸出內(nèi)容的職場老司機,也是一個技術(shù)之外豐富生活的人,攝影、音樂 and 籃球。關(guān)注我,與我一起同行。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
H11L1SR2M 1 Fairchild Semiconductor Corporation Logic IC Output Optocoupler, 1-Element, 7500V Isolation, 1MBps, SURFACE MOUNT, DIP-6
$1.01 查看
MOC3043M 1 Fairchild Semiconductor Corporation Triac Output Optocoupler With Zero CRSVR, 1-Element, 7500V Isolation, DIP-6
$1.02 查看
LCC110STR 1 IXYS Corporation Transistor Output SSR, 1-Channel, 3750V Isolation, ROHS COMPLIANT, SURFACE MOUNT PACKAGE-8
$4.44 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

一個程序員,喜歡寫文章,還喜歡打籃球,也喜歡吉他鋼琴的駁雜之人。日常更新自己,分享包括但不限于C/C++、嵌入式、物聯(lián)網(wǎng)、Linux等編程學(xué)習(xí)筆記,同時,公眾號內(nèi)包含大量的學(xué)習(xí)資源。歡迎關(guān)注,一同交流學(xué)習(xí),共同進步!