尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Linux PTP硬件时间戳配置与同步实战指南
简介本资源是一份面向嵌入式系统工程师、Linux网络开发人员及时间同步技术学习者的PTPPrecision Time Protocol原理与实操指南聚焦高精度时间同步场景下的协议理解与Linux平台验证。文档系统讲解PTPv2核心机制包括主从时钟模型、硬件时间戳优势、E2E/P2P透明时钟分类、OC/BC/TC节点角色以及基于t1–t4四次时间戳的offset与delay计算公式同时详述ptp4l与ptpdV2两种主流工具在Ubuntu环境下的主从配置命令与典型组网限制。资源为单文件Word文档.docx全文约2.36MB内容结构清晰含原理图解、报文类型对照表Sync/Follow_Up/Delay_Req/Delay_Resp等、端口说明及实测命令示例。目前已有4533人学习下载适合需快速掌握PTP部署前提、协议细节与基础测试方法的中高级开发者。1. PTP 不是“装上就能用”的时间同步协议Linux 上踩过坑才敢说的实话你是不是也试过在 Ubuntu 上sudo apt install ptpd跑起-M -i eth0就以为 PTP 跑通了结果date看着时间在动ptp4l -s日志里却卡在UNCALIBRATED半小时不动Wireshark 抓包只看到224.0.1.129:319的 Sync 包发出去Delay_Req 却石沉大海——最后发现网卡压根不支持硬件时间戳ethtool -T eth0输出里连hardware-transmit四个字都没有。这不是玄学是 PTP 在 Linux 上落地最真实的起点它不像 NTP 那样“软硬通吃”PTP 的亚微秒级精度不是靠算法堆出来的而是靠网卡、驱动、内核、用户态工具四层严丝合缝咬合才能兑现的承诺。一旦其中一环掉链子——比如你用虚拟机测试、用老款 Realtek 网卡、或忘了关 NetworkManager 对时钟的干扰——整套同步就退化成“比 NTP 略准一点的 UDP 广播”甚至根本起不来。这篇笔记不讲 PTP 协议 RFC 文档里的漂亮公式只记录我在三台物理服务器、两代 Intel I210 网卡、Ubuntu 20.04/22.04 和 CentOS 8 环境下从ptpd切到linuxptp、从软件时间戳调到硬件时间戳、从抓包看丢包到phc2sys锁定系统时钟的完整血泪路径。适合正在为工业控制、音视频同步、金融高频交易或 FPGA 时间戳对齐而搭建确定性时间底座的工程师——别再让“PTP 测试”变成一句空话。2. 环境筑基先验清硬件与内核能力再谈安装PTP 不是“下载即用”的应用软件它是嵌入在 Linux 时间子系统深处的精密仪器。跳过硬件验证直接装工具90% 的失败都源于此。这一章不贴安装命令先带你亲手摸清你的机器到底“配不配”。2.1 网卡硬件时间戳能力ethtool -T是唯一真相PTP 的纳秒级精度根基在于网卡能否在数据帧离开 MAC 层的瞬间打上硬件时间戳TX和进入 MAC 层的瞬间打上接收时间戳RX。这完全依赖网卡芯片固件和 Linux 内核驱动的支持。ethtool -T是唯一权威检测手段# 替换 eno1 为你实际的网卡名用 ip link show 查 sudo ethtool -T eno1提示若提示ethtool: command not found先执行sudo apt install ethtoolDebian/Ubuntu或sudo yum install ethtoolCentOS/RHEL。关键看输出中是否包含以下字段以 Intel I210 为例Time stamping parameters for eno1: Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) hardware-raw-clock # 这个最重要表示网卡有独立高精度时钟源PHC✅合格标志同时存在hardware-transmit、hardware-receive和hardware-raw-clock。❌不合格标志只有software-*条目或缺失hardware-raw-clock。此时 PTP 只能走软件时间戳路径精度上限在毫秒级且易受系统负载抖动影响。常见“伪支持”陷阱VMware/VirtualBox 虚拟网卡ethtool -T可能显示hardware-*但实际是模拟的无法获得真实硬件时间戳。必须在物理机上测试。某些 Realtek/RTL8168 网卡驱动r8169默认不启用硬件时间戳需加载参数options r8169 use_dac1并重载模块但稳定性差不推荐用于生产 PTP。USB 网卡/PCIe 转接卡即使芯片支持PCIe 链路延迟和驱动适配问题常导致时间戳不可靠。2.2 内核配置确认CONFIG_PTP_1588_CLOCK已启用硬件时间戳需要内核提供 PTP 时钟设备接口/dev/ptp*。检查当前内核是否编译了该模块# 检查内核配置适用于已安装 config 文件的发行版 zcat /proc/config.gz | grep CONFIG_PTP_1588_CLOCK # 或检查运行中的模块 lsmod | grep ptp预期输出应为CONFIG_PTP_1588_CLOCKy # 或已加载模块 ptp 20480 1 igb若无输出说明内核未启用 PTP 支持。Ubuntu/Debian/CentOS 主流发行版内核默认已启用但自定义内核或极简版如某些容器宿主机可能关闭。解决方法Ubuntu/Debian安装linux-image-extra-virtual包针对 virtual 内核或linux-modules-extra-$(uname -r)。CentOS/RHEL安装kernel-modules-extra包。手动编译内核确保Device Drivers - PPS support - PTP clock support选项设为y或m。验证 PHC 设备是否存在# 应看到类似 /dev/ptp0 的设备 ls /dev/ptp* # 查看其关联的网卡 cat /sys/class/ptp/ptp0/clock_name # 输出应为网卡驱动名如 igb2.3 安装linuxptp为什么放弃ptpd选择官方维护的ptp4l项目正文提到ptpd和ptp4l两种工具。ptpdv2是一个较老的实现社区活跃度低对硬件时间戳支持不完善且其-H硬件时间戳模式在新版内核上常报错。而linuxptpptp4l是其核心守护进程是 Linux 基金会官方维护的 PTP 实现深度集成内核 PHC 接口支持 PTPv2 全特性包括 E2E/P2P 延迟测量、TC 模式且持续更新适配新网卡如 Intel E810, X710。这是目前 Linux 上 PTP 生产环境的事实标准。安装方式以 Ubuntu 22.04 为例# 方法1使用包管理器版本较旧但稳定 sudo apt update sudo apt install linuxptp # 方法2从源码编译推荐获取最新特性与修复 sudo apt install build-essential libudev-dev libcap-dev libnl-3-dev libnl-genl-3-dev git clone https://github.com/richardcochran/linuxptp.git cd linuxptp make sudo make install # 默认安装到 /usr/local/bin/添加到 PATH echo export PATH/usr/local/bin:$PATH ~/.bashrc source ~/.bashrc验证安装ptp4l --version # 应输出类似 ptp4l version 3.2023注意linuxptp包含多个工具ptp4l主时钟/从时钟、phc2sys将 PHC 时钟同步到系统时钟、pmcPTP 管理通信、clockstats性能统计。本篇聚焦ptp4l和phc2sys。3. 主从部署从单机环回测试到跨网段实战环境验证通过后进入真正的部署阶段。切忌一上来就拉两台机器跑主从——先用单机环回loopback确认工具链和网卡基础功能再扩展到双机最后处理跨网段等复杂场景。3.1 单机环回测试用lo接口快速验证ptp4l基础功能这是最容易被忽略却最关键的一步。它能排除网络物理层、交换机、防火墙等外部因素纯粹验证ptp4l是否能与你的网卡和内核正确交互。# 启动一个主时钟Master绑定到回环接口 lo sudo ptp4l -i lo -m -f /etc/linuxptp/ptp4l.conf/etc/linuxptp/ptp4l.conf内容最小化配置[global] # 强制使用硬件时间戳即使 lo 不支持也会降级为软件但保证流程跑通 hw_ts_enable 1 # 关闭不必要的日志 log_level 6 # 使用 UTC 时间避免时区干扰 utc_offset 0观察输出应看到类似ptp4l[12345].lo config: selected /dev/ptp0 as PTP clock ptp4l[12345].lo port 1: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[12345].lo port 1: new foreign master 0000.0000.0000.0000-00 (unknown)/0 ptp4l[12345].lo port 1: LISTENING to UNCALIBRATED on RS_SLAVE此时ptp4l已启动并尝试成为主时钟但由于lo接口无硬件时间戳它会降级为软件时间戳模式并停留在UNCALIBRATED。这不是错误而是预期行为——它证明ptp4l进程能正常加载、识别时钟设备、并进入 PTP 状态机。按CtrlC停止。逻辑说明-i lo指定接口-m表示 Master-only 模式不参与 Best Master Clock Algorithm-f指定配置文件-m参数在此处确保它不会因找不到其他时钟而退出。3.2 双机主从部署物理网卡上的首次真实同步假设两台物理机MasterIP192.168.1.10网卡enp0s31f6Intel I210已确认支持硬件时间戳SlaveIP192.168.1.11网卡eno1同型号步骤1Master 端启动硬件时间戳# -H 表示启用硬件时间戳-m 表示强制为主时钟-i 指定网卡 sudo ptp4l -i enp0s31f6 -m -H -f /etc/linuxptp/ptp4l_master.conf/etc/linuxptp/ptp4l_master.conf[global] # 必须启用硬件时间戳 hw_ts_enable 1 # 主时钟优先级数值越小优先级越高 priority1 128 # 主时钟精度nsI210 典型值 clock_class 6 clock_accuracy 24 # 日志级别6 为 info便于观察状态变化 log_level 6 # 使用 UTC utc_offset 0 # 禁用管理端口简化测试 management_enabled 0步骤2Slave 端启动硬件时间戳 从模式# -s 表示 Slave-only 模式-H 启用硬件时间戳-i 指定网卡 sudo ptp4l -i eno1 -s -H -f /etc/linuxptp/ptp4l_slave.conf/etc/linuxptp/ptp4l_slave.conf[global] hw_ts_enable 1 # 从时钟优先级低于主时钟 priority1 248 log_level 6 utc_offset 0 management_enabled 0关键观察点Slave 端日志port 1: UNCALIBRATED to SLAVE on MASTER_IS_UNCERTAIN初始状态正在等待主时钟。master offset: -123456出现master offset字样单位是纳秒ns表示从钟与主钟的时间偏差。负数表示从钟比主钟快。s0,s1,s2s2表示锁定Locked意味着伺服器已稳定不再进行阶跃调整step只做微调slew。port 1: SLAVE to FAULTY如果出现此行说明同步失败需立即排查。参数说明-H是启用硬件时间戳的核心开关-s强制从模式避免 BMC 算法选错主priority1数值差异确保 Master 优先级绝对高于 Slave防止角色震荡。3.3 跨网段与单播模式当组播不可用时的替代方案默认 PTP 使用组播地址224.0.1.129IPv4发送 Sync/Follow_Up 等报文。但在某些网络环境中如云服务器、严格 ACL 的企业网组播可能被禁用。此时需切换到单播Unicast模式。Master 端配置ptp4l_master_unicast.conf[global] hw_ts_enable 1 priority1 128 log_level 6 # 启用单播模式 unicast_master 1 # 指定允许连接的从钟 IP可多行 unicast_req_addr 192.168.1.11 # 单播通信端口默认 319/320可自定义 udp_ttl 1Slave 端启动命令无需额外 conf# -u 指定主钟 IP-H 仍需启用硬件时间戳 sudo ptp4l -i eno1 -s -H -u 192.168.1.10 -f /etc/linuxptp/ptp4l_slave.conf注意单播模式下Slave 会主动向 Master 发起连接请求UDP因此 Master 的防火墙需放行 UDP 端口319事件消息和320通用消息。Slave 端无需额外开放端口。4. 精度调优与常见问题排查那些让你怀疑人生的 5 分钟PTP 同步成功只是第一步。master offset显示几百纳秒不代表你的应用能稳定读取这个精度。这一章直面真实世界中的抖动、漂移和玄学失效列出我踩过的 5 个典型坑每个都附带可复现的现象、根因分析和一招见效的解法。4.1 现象ptp4l日志中master offset波动剧烈±5000ns 以上s2状态频繁丢失原因系统时钟源/dev/rtc或systemd-timesyncd与 PTP 争夺对系统时钟的控制权。ptp4l只校准其内部 PHC 时钟但应用读取的是系统时钟CLOCK_REALTIME。若systemd-timesyncd或ntpd正在后台运行它们会不断把系统时钟拉回 NTP 时间导致phc2sys同步后的系统时钟又被覆盖形成“拉锯战”。解决# 彻底禁用所有 NTP 服务 sudo systemctl stop systemd-timesyncd ntp chrony sudo systemctl disable systemd-timesyncd ntp chrony # 确保 no NTP service is running sudo timedatectl set-ntp false # 验证 timedatectl status | grep NTP service血泪经验这是新手最常见的翻车点。ptp4l日志看着一切正常但date命令输出的时间却在跳变根源就在这里。4.2 现象ethtool -T eno1显示hardware-transmit但ptp4l -H启动时报错ioctl SIOCSHWTSTAMP failed: Operation not supported原因网卡驱动未正确加载硬件时间戳支持。常见于 Intel I210 网卡其驱动igb需要显式启用hwtstamp功能。解决# 查看当前驱动参数 sudo modinfo igb | grep hwtstamp # 临时启用重启失效 sudo ethtool -T eno1 | grep hardware-transmit # 确认存在 sudo ethtool -K eno1 tx off rx off # 先关闭所有卸载 sudo ethtool -K eno1 tx on rx on # 再开启触发驱动重置时间戳 # 永久生效创建 /etc/modprobe.d/igb.conf echo options igb enable_hwtstamp1 | sudo tee /etc/modprobe.d/igb.conf sudo update-initramfs -u # Ubuntu sudo dracut -f # CentOS/RHEL sudo reboot4.3 现象Slave 端ptp4l日志卡在UNCALIBRATEDWireshark 抓包看到 Master 发出 Sync但 Slave 收不到 Delay_Req/Delay_Resp原因防火墙ufw/iptables/firewalld拦截了 UDP 端口319和320。PTP 的 Delay_Req 是由 Slave 主动发给 Master 的若 Slave 的出站或 Master 的入站被拦同步链路就断了。解决# Ubuntu ufw sudo ufw allow from 192.168.1.10 to any port 319 proto udp sudo ufw allow from 192.168.1.10 to any port 320 proto udp # CentOS firewalld sudo firewall-cmd --permanent --add-port319/udp sudo firewall-cmd --permanent --add-port320/udp sudo firewall-cmd --reload # 验证 sudo iptables -L INPUT -n | grep :3194.4 现象ptp4l同步后date命令时间不变clock_gettime(CLOCK_REALTIME, ts)返回的仍是旧时间原因ptp4l只同步 PHC/dev/ptp0时钟它与系统时钟CLOCK_REALTIME是两个独立实体。必须用phc2sys将 PHC 的时间“嫁接”到系统时钟上。解决# 在 Slave 端与 ptp4l 同时运行 phc2sys sudo phc2sys -s /dev/ptp0 -c CLOCK_REALTIME -w -m -S 1-s /dev/ptp0指定源 PHC 设备ptp4l创建的-c CLOCK_REALTIME目标为系统时钟-w等待ptp4l进入SLAVE状态后再开始同步-m以 master-slave 模式运行更稳定-S 1同步步长秒1 表示每秒同步一次逻辑说明phc2sys不是简单地“设置一次时间”而是持续监控 PHC 与系统时钟的偏移并通过adjtimex()系统调用进行平滑的 slewing微调避免时间跳变step影响应用。4.5 现象phc2sys启动后master offset从 ±100ns 恶化到 ±5000nss2状态消失原因phc2sys与ptp4l对同一 PHC 设备的竞争。ptp4l在硬件时间戳模式下会独占 PHC 设备进行时间戳读取若phc2sys同时打开/dev/ptp0会导致ptp4l读取失败进而影响其计算精度。解决# 确保 phc2sys 使用正确的 PHC 设备通常是 ptp4l 创建的那个 # 查看 ptp4l 创建的 PHC 设备名 sudo ptp4l -i eno1 -s -H -f /etc/linuxptp/ptp4l_slave.conf -D # -D 开启 debug看日志中 selected /dev/ptpX # 通常为 /dev/ptp0但需确认 # 启动 phc2sys 时明确指定 sudo phc2sys -s /dev/ptp0 -c CLOCK_REALTIME -w -m -S 1 # 若仍有冲突可尝试降低 phc2sys 同步频率 sudo phc2sys -s /dev/ptp0 -c CLOCK_REALTIME -w -m -S 5 # 每5秒同步一次5. 验证与监控用数据说话而不是看日志猜状态装完、配好、跑通最终要落到“我的应用真的获得了亚微秒级时间精度吗”这一终极问题。不能只依赖ptp4l日志里的master offset那只是 PHC 之间的偏差。你需要一套组合拳从底层硬件到上层应用逐层验证。5.1 基础验证pmc工具读取 PTP 域实时状态pmcPTP Management Client是linuxptp自带的管理工具可通过 PTP 管理报文直接查询网络中任意节点的状态比看日志更客观。在 Slave 端执行查询自身状态# 查询本地时钟属性 sudo pmc -u -b 0 GET PORT_DATA_SET # 查询当前主时钟信息 sudo pmc -u -b 0 GET MASTER_CLOCK_IDENTITY # 查询所有外来的主时钟Foreign Masters sudo pmc -u -b 0 GET FOREIGN_MASTER_DS关键字段解读portState:SLAVE表示已锁定主钟。offsetFromMaster: 当前偏移量ns应稳定在 ±100ns 内I210 硬件时间戳典型值。meanPathDelay: 链路平均延时ns反映网络质量应稳定且波动小 100ns。stepsRemoved: 主从之间跳数0表示直连。技巧将pmc命令写入脚本配合watch实时刷新watch -n 1 sudo pmc -u -b 0 GET PORT_DATA_SET | grep -E (portState|offsetFromMaster|meanPathDelay)。5.2 精度验证clockstats生成长期漂移报告clockstats是linuxptp提供的统计工具它会持续采样ptp4l的master offset生成 CSV 格式的数据文件可用于绘制精度曲线和计算长期稳定性Allan 方差。启动clockstats在 Slave 端与ptp4l同时运行# -f 指定输出文件-i 指定采样间隔秒 sudo clockstats -f /var/log/ptp/clockstats.log -i 1 分析clockstats.log示例前几行# seconds offset(ns) delay(ns) state 1712345678.000000 -123.456 234.567 2 1712345679.000000 -124.789 235.123 2 1712345680.000000 -125.234 234.890 2offset(ns)ptp4l计算出的从钟与主钟偏差纳秒。state2表示SLAVE锁定状态。用 Python 快速计算精度需安装 pandas/matplotlibimport pandas as pd import matplotlib.pyplot as plt # 读取数据 df pd.read_csv(/var/log/ptp/clockstats.log, skiprows1, sepr\s, names[time, offset, delay, state]) # 过滤锁定状态 df df[df[state] 2] # 绘制 offset 曲线 plt.figure(figsize(12, 4)) plt.plot(df[time], df[offset], b-, linewidth0.8) plt.title(PTP Offset over Time (ns)) plt.xlabel(Timestamp (s)) plt.ylabel(Offset (ns)) plt.grid(True) plt.show() # 计算统计值 print(fOffset Mean: {df[offset].mean():.3f} ns) print(fOffset Std Dev: {df[offset].std():.3f} ns) print(fOffset Min/Max: {df[offset].min():.3f} / {df[offset].max():.3f} ns)✅合格标准在稳定运行 1 小时后offset标准差 50ns最大波动 200nsI210 网卡典型值。若标准差 100ns需检查网络抖动或系统负载。5.3 应用层验证用clock_gettime()直接读取系统时钟精度最终目标是让应用能读取高精度时间。clock_gettime(CLOCK_REALTIME, ts)是 POSIX 标准接口其精度取决于phc2sys的同步质量。编写一个简单的 C 程序test_clock.c#include stdio.h #include time.h #include stdint.h int main() { struct timespec ts; uint64_t ns_prev 0; int count 0; printf(Measuring CLOCK_REALTIME resolution...\n); while (count 1000000) { clock_gettime(CLOCK_REALTIME, ts); uint64_t ns_now ts.tv_sec * 1000000000ULL ts.tv_nsec; if (ns_prev ! 0) { uint64_t diff ns_now - ns_prev; if (diff 0 diff 1000000) { // 过滤异常大值 printf(%lu\n, diff); } } ns_prev ns_now; count; } return 0; }编译并运行gcc -o test_clock test_clock.c sudo ./test_clock | sort -n | uniq -c | sort -nr | head -20✅合格标准输出中应大量出现10000001ms、5000000.5ms等值表明系统时钟已通过phc2sys被平滑校准。若仍大量出现1562515.625usx86 TSC 默认分辨率或10001us说明phc2sys未生效或同步频率太低。5.4 长期稳定性监控phc_ctl与chrony的协同对于需要 7x24 小时稳定运行的系统仅靠ptp4lphc2sys可能不够。phc_ctl是一个轻量级守护进程可监控 PHC 设备健康状态并在ptp4l崩溃时自动重启。而chrony可作为 PTP 的“兜底”时钟源在 PTP 临时失效时无缝接管避免时间跳变。安装phc_ctl需从源码编译git clone https://github.com/richardcochran/phc_ctl.git cd phc_ctl make sudo make install # 启动服务 sudo systemctl enable phc_ctlptp0.service # ptp0 表示监控 /dev/ptp0 sudo systemctl start phc_ctlptp0.service配置chrony作为 PTP 备份/etc/chrony/chrony.conf# 禁用所有 NTP 源 pool 0.pool.ntp.org iburst offline pool 1.pool.ntp.org iburst offline # 启用 SHMShared Memory源指向 phc2sys 创建的共享内存段 refclock SHM 0 refid PTP precision 1e-3 offset 0.1 delay 0.2 # 允许 chrony 在 PTP 失效时接管 makestep 1 -1**从那以后我每次部署 PTP 环境都强制走一遍ethtool -Tpmcclockstats三连验证再让test_clock跑满 10 分钟。宁可多花半小时确认也不愿在凌晨三点被告警电话叫醒排查“时间跳变”。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

MATLAB车牌识别入门与实践:从图像预处理到模板匹配

MATLAB车牌识别入门与实践:从图像预处理到模板匹配

简介:一份基于MATLAB的车牌识别课程论文与配套源码资料,面向数字图像处理、智能交通相关课程设计与毕业设计人群,覆盖车牌定位、字符切割、字符识别等核心环节。文档系统阐述车牌区域提取的灰度化、Roberts边缘检测、腐蚀平滑与边界值计算&am…

📅 2026/10/24 16:13:08
低代码平台四层模块与五类菜单落地实战:流程引擎、表单引擎配置与避坑指南

低代码平台四层模块与五类菜单落地实战:流程引擎、表单引擎配置与避坑指南

简介:这份文档面向低代码平台开发者、架构设计人员及技术选型决策者,系统梳理低代码开发平台的模块组成与功能实现方式,帮助读者建立从整体架构到细节模块的完整认知。资源为1个docx文档,压缩包约447KB,内容围绕平台核…

📅 2026/10/24 16:08:08
八股文本质是技术面试的最小认知单元与因果链表达

八股文本质是技术面试的最小认知单元与因果链表达

简介:这是一份专为Java后端及全栈开发者面试冲刺打造的「八股文」高频题库,覆盖Redis、MySQL、算法、多线程、数据结构及Java核心基础等关键模块,直击互联网大厂技术面核心考点。资源以1个25.8MB的PDF文件形式呈现,内容结构清晰、…

📅 2026/10/24 16:08:08
MORE NEWS

更多资讯

📰

Python爬虫实战:requests+parsel抓取招聘数据并写入CSV

简介:这份资源面向具备Python基础、希望入门网络爬虫的开发者与数据分析初学者,以猎聘网为例,完整演示如何抓取招聘岗位信息并落地为CSV文件。内容围绕Requests发送GET请求、Parsel结合CSS选择器解析页面、请求头伪装、字典组织字段、csv模块…

📰

为什么你需要Jac:从12种记号到1种语言,告别胶水代码的完整对比

【免费下载链接】jac The Jac Programming Language -- The language for any human or AI looking to use one language for everything 项目地址: https://gitcode.com/gh_mirrors/ja/jac 点击查看 免费下载 Jac(Jac Programming Language&#xff09…

📰

为什么选择OpenClaw-Admin?双网关AI智能体管理控制台的6大核心亮点详解

前端后端人工智能AI Agent 【免费下载链接】OpenClaw-Admin Claw-Admin 是一个基于 Vue 3 构建的现代化 AI 智能体管理平台,同时支持 OpenClaw Gateway 和 Hermes Agent 两大 AI 智能体网关提供完整的 Web 管理界面。通过直观的可视化操作,用户可以轻松管…

📰

开源动画模型要起风了:万通 Animate 上榜背后,国产 2D 动画生成生态观察

开源动画模型要起风了:万通 Animate 上榜背后,国产 2D 动画生成生态观察 【免费下载链接】Wan2.2-Animate-2-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-Animate-2-14B 最近做动画的朋友圈有点热闹。 以前提起“让一张照片…

📰

如何在iOS上实现应用封锁器?Foqos基于FamilyControls与ManagedSettings的完整技术解析

【免费下载链接】foqos Foqos allows you to lock apps behind the tap of a NFC tag or scan of a QR code. Free and open source alternative to Brick, Opal, ScreenZen, Unpluq, Scrolly, Blok and more! 项目地址: https://gitcode.com/gh_mirrors/fo/foqos 点…

📰

农村集体三资管理系统实操:IE兼容、账套与报表勾稽

简介:《农村集体三资信息管理系统操作手册》是一份面向农村集体经济组织财务与资产管理人员的系统使用说明文档,用于支撑资金、资产、资源的规范化登记、核算与监督,适合基层三资管理人员、乡镇经管干部及系统实施人员上手查阅。压缩包内共1个…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬