NTP 授时(Network Time Protocol)核心解读,工控机electron程序自动联网授时案例

最近公司的工控机产品遇到一个问题,工控机是离线使用的,但是客户对于时间要求又比较高,要精确到秒,不能有太大误差。所以怎么能快速授时这个问题一直萦绕在我脑海里...

一、前提描述

公司的应用程序是一个electron开发的桌面端应用程序,安装在windows10系统中,内网使用,不联网,并且没有wifi功能。

二、灵感来源

周末逛商场,看到一个卖家居的大卖场,路过一排时钟的货架,超级多好看的时钟,正在我惊叹于好久没看到这么多精美的时钟的时候,一个二维码赫然出现在我眼前,链接wifi后自动校时的wifi挂钟,手机共享热点也可以完成wifi链接

时钟联网调整时间

我心想,"我靠,我怎么没想到还能有这种操作?"

好吧,其实我之前想到了我们产品能怎么联网调整一下时间,但是思路受限就没有继续往下思考。

视频中是通过wifi进入一个设置网页,实现定时设置时间的。

三、解决思路

我想的是人为定期点击一个按钮,实现一键校准时间的功能:

  • 1、手机通过usb数据线连接工控机usb接口,开启手机USB网络共享功能,让工控机联网
  • 2、在设置界面添加"在线授时"按钮,弹窗提示实现授时流程
  • 3、用户选择NTP服务器点击完成授时

关键点 就是ntp-client与sudo-prompt两个库的使用,ntp-client实现从NTP 服务器获取时间,sudo-prompt实现让Node.js/Electron 程序以「管理员 / 超级用户权限」执行系统命令,解决普通权限下无法操作系统级功能的问题。

遇到的小问题 ,测试过程中发现,命令行手动更新时间失败,原因是错误核心原因:Windows 系统区域 / 语言设置为中文(简体)时,date命令不识别MM-dd-yyyy(月 - 日 - 年)格式(如03-16-2026),中文环境下date命令默认要求「年月日」格式(如2026-03-16),导致执行date 03-16-2026提示 "系统无法接受输入的日期"。

此处关键 :美式区域用MM-dd-yyyy,中文区域用yyyy-MM-dd,月份与日需要前面补0

四、拓展学习NTP 授时(Network Time Protocol)

NTP(网络时间协议)是专门用于在计算机网络中同步所有设备系统时间的标准化网络协议,你可以把它理解成「网络世界的统一时间校准员」------ 解决不同设备(比如你的工控机、手机、服务器)因本地时钟漂移导致的时间不一致问题,是目前互联网最主流、精度最高的时间同步协议。

底层传输:基于 UDP 协议 (无连接、低延迟),固定使用123 端口,这是 IANA 为 NTP 专属分配的端口,所有合规 NTP 服务器都监听这个端口。

我是用的几个ntp服务器地址:

JavaScript 复制代码
//  国内NTP服务器列表(按优先级排序)
const NTP_SERVERS = ['cn.pool.ntp.org', 'ntp1.aliyun.com', 'ntp.ntsc.ac.cn', 'time1.cloud.tencent.com', 'cn.ntp.org.cn'];

总结

随心记录,哈哈

相关推荐
鬼手点金7 小时前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
软件技术NINI7 小时前
美妆商城html+Css+js 4页
javascript·css·html
蛋蛋的就会顺顺的7 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
程序员Sunday7 小时前
TypeScript 的 any、unknown、never 有什么区别?
前端·面试·typescript
朱涛的自习室8 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
码艺-Alimjan8 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
小马不起床8 小时前
零基础玩转 FastAPI_11:前端后台管理页面
前端·状态模式·fastapi
子非鱼a10 小时前
【文件上传】一个普普通通的edu16
前端
美狐美颜SDK开放平台10 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解
前端·数据库·人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk
pride.li11 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉