BMC SNMP配置与监控集成实战:从协议安全到Zabbix/Prometheus对接
1. 项目概述为什么BMC的SNMP功能值得深挖在数据中心和服务器运维的日常里我们打交道最多的往往是操作系统和应用层。但真正决定一台服务器“健康”与“可控”状态的其实是水面之下的基板管理控制器也就是BMC。最近在梳理一批老旧服务器的监控方案时我再次被BMC的SNMP功能给“上了一课”。表面上看这只是一个标准的网络管理协议接口但当你真正想把它用起来特别是想用得稳定、安全、高效时会发现里面门道不少。从简单的风扇转速、温度读取到复杂的电源状态、日志告警事件上报BMC的SNMP功能是连接物理硬件状态与上层监控系统如Zabbix, Prometheus的关键桥梁。这次的小结源于我在为一批混合了不同厂商如华为、浪潮、联想和不同代际的服务器搭建统一硬件监控平台时的实践。我发现很多关于BMC SNMP的文档要么过于简略要么就是厂商特有的私有MIB库解析起来让人头疼。所以我想把这些踩过的坑、验证过的配置以及如何绕过一些常见陷阱的经验系统地梳理出来。无论你是在规划全新的监控体系还是在整合遗留设备希望这份从实战中来的小结能帮你省下不少折腾的时间。2. BMC SNMP功能的核心价值与设计思路2.1 超越操作系统BMC监控的不可替代性首先必须明确一点为什么有了操作系统的监控如CPU使用率、内存占用我们还需要BMC的SNMP答案在于监控的层次和可靠性。操作系统是运行在服务器主处理器上的软件一旦系统内核崩溃、硬件严重故障或电源出现问题操作系统层面的监控代理会首先失联。此时BMC作为一个独立运行的、低功耗的协处理器依然存活。它能提供最底层的硬件遥测数据例如非CPU依赖的传感器数据系统电源的输入电压/电流、各个主板区域的温度如PCH、VRM、风扇的实时转速和PWM控制信号。这些数据不依赖于主CPU是否正常工作。硬件日志与告警BMC会记录硬件的关键事件如内存ECC错误、PCIe链路训练失败、电源模块预故障告警等。这些信息对于预测性维护至关重要且往往早于操作系统蓝屏或应用崩溃。电源与开关机控制远程查询电源状态、执行开机、关机、硬重启操作。这在自动化运维和无人值守机房场景下是核心能力。因此BMC SNMP的核心设计思路就是为上层网络管理系统NMS提供一个标准化、带外的Out-of-Band硬件管理通道。它的价值在于可靠性和深度。通过SNMP协议我们可以用一种相对通用尽管仍有厂商差异的方式将所有这些底层硬件信息纳入统一的监控视图。2.2 协议版本与安全模型的抉择SNMP v1/v2c vs v3在配置BMC的SNMP时第一个关键决策就是选择协议版本。这直接关系到安全性和易用性。SNMP v1/v2c简单但风险明确这是最常见、默认支持的版本。它使用“共同体名”Community String作为简单的密码认证。配置简单几乎所有设备和监控系统都支持。但它的通信是明文的且只有读public和写private这种粗粒度的权限控制。在不可信的网络环境中这相当于把硬件管理的钥匙放在了门口。注意绝对不要在公网或未隔离的生产网络中使用默认的public和private共同体名。这是自动化攻击脚本最先尝试的目标之一。SNMP v3复杂但安全必选SNMP v3引入了用户安全模型USM支持认证和加密。这是当前生产环境尤其是跨网络段或云环境管理的强制推荐选项。它主要包含两个安全级别authNoPriv认证但不加密。使用用户名和密码认证密钥进行身份验证保证数据来源可信但数据本身仍是明文传输。authPriv认证且加密。在认证基础上使用独立的加密密钥对数据包进行加密确保传输内容的机密性。对于BMC而言启用SNMP v3通常需要在Web界面或IPMI命令行中创建专门的SNMPv3用户并指定认证协议MD5或SHA和加密协议DES或AES。虽然配置步骤比v2c多但对于暴露了IP地址的BMC管理口来说这是必须付出的安全成本。2.3 MIB库通用与私有的信息迷宫SNMP本身只定义了一种获取数据的机制具体能获取什么数据则由管理信息库MIB来描述。MIB是一种树状结构的文本文件用对象标识符OID来唯一标识每个可管理的对象。通用MIB最常用的是SNMPv2-MIB(系统描述、运行时间等) 和HOST-RESOURCES-MIB(部分硬件资源信息)。但对于BMC的专有传感器这些远远不够。厂商私有MIB这是发挥BMC SNMP功能威力的关键也是主要的复杂度来源。例如戴尔Dell有PowerEdge.mib惠普HPE有CPQPOWER.mib华为有HUAWEI-SERVER-MIB。你需要从厂商官网下载对应的MIB文件并将其加载到你的SNMP管理工具或监控服务器上才能正确解析那些代表“CPU1温度”、“PSU1输入功率”的OID。在实际操作中我习惯先通过snmpwalk命令扫描BMC的整个OID树找到包含大量数据的分支通常是厂商私有企业分支.1.3.6.1.4.1下的某个节点然后根据扫描出的数字OID去MIB文件中反查其人类可读的名称和含义。这个过程有点像解谜但一旦完成映射后续的监控项配置就会一劳永逸。3. 核心配置解析与实操要点3.1 BMC端SNMP服务启用与配置不同厂商的BMC Web界面布局不同但SNMP配置通常位于“配置”、“网络服务”或“远程管理”标签页下。以下是一个通用的配置清单和要点启用SNMP服务找到SNMP设置确保服务状态为“启用”。配置共同体名v1/v2c读权限共同体设置一个强密码用于监控系统拉取数据。例如monitorBMC_Read_2024。写权限共同体非必要不启用。如果确需启用如远程开关机务必使用极其复杂的密码并严格限制访问源IP。配置SNMPv3用户推荐用户名如snmp_monitor。认证协议优先选择SHA-256其次SHA避免使用已不安全的MD5。认证密码设置强密码。加密协议优先选择AES-256或AES-128。加密密码设置另一个强密码可与认证密码不同。配置陷阱Trap接收目标这是BMC主动上报告警的关键。需要填写你的SNMP Trap接收服务器如Netcool, Zabbix trap item的IP地址、端口默认162和对应的共同体名或v3用户信息。配置访问控制列表ACL这是最重要的安全措施之一。务必限制只有指定的监控服务器IP地址可以访问BMC的SNMP端口UDP 161。很多BMC支持基于IP或网段的访问控制。实操心得在配置ACL时我遇到过一种情况BMC的ACL规则可能同时管理Web、SSH和SNMP访问。务必确认你添加的IP规则是针对SNMP服务的。有时需要为SNMP单独创建一个ACL策略。3.2 监控服务器端工具链准备在监控服务器上我们需要一套工具来测试、发现和最终采集数据。安装Net-SNMP工具包在Linux上通常是net-snmp和net-snmp-utils软件包。它提供了snmpget,snmpwalk,snmpbulkwalk等命令行工具是测试和探索的瑞士军刀。下载并编译厂商MIB库# 将下载的MIB文件.mib, .my放入MIB目录如 /usr/share/snmp/mibs/ sudo cp Dell-PowerEdge-MIB.mib /usr/share/snmp/mibs/ # 设置MIBS环境变量让工具能找到它们 export MIBSALL # 或者将MIB文件复制到用户目录下的 .snmp/mibs/使用snmpwalk进行发现这是最关键的一步。使用snmpwalk命令可以“走遍”BMC的OID树列出所有可读数据。# SNMPv2c 方式探索 snmpwalk -v 2c -c your_read_community_string 192.168.1.100 .1.3.6.1.4.1 # SNMPv3 方式探索 (authPriv) snmpwalk -v 3 -l authPriv -u snmp_monitor -a SHA -A your_auth_pass -x AES -X your_priv_pass 192.168.1.100 .1.3.6.1.4.1输出会是大量的OID和值。你需要从中筛选出有用的传感器OID。一个技巧是寻找数据类型为INTEGER或Gauge32且值在不断变化如温度、转速的项。3.3 关键OID的识别与映射面对snmpwalk产生的海量输出如何快速找到需要的指标根据经验可以关注以下几类OID传感器表Sensor Table许多厂商的MIB中会有一个传感器表通常包含索引、描述、值、单位、阈值下限、上限等列。这是监控温度、电压、风扇、功耗的核心。例如你可能会看到 OID 如.1.3.6.1.4.1.xxxx.1.2.3.1.1(描述) 和.1.3.6.1.4.1.xxxx.1.2.3.1.2(当前值)。电源供应器PSU状态查找包含psu、powerSupply关键词的OID其值可能用整数表示状态1正常2故障3不存在。系统事件日志SELBMC的系统事件日志可以通过SNMP读取最后几条记录用于捕获硬件错误。整机功耗对于机架服务器整机输入功率是一个非常重要的指标通常有独立的OID。操作技巧将snmpwalk的输出重定向到文件然后用文本编辑器的搜索功能查找temperature、fan、volt、power、watts等关键词。找到疑似OID后再用snmpget命令单独获取观察其值是否随服务器负载变化以确认其有效性。4. 与主流监控系统的集成实践4.1 集成至Zabbix使用SNMP模板与主动发现Zabbix对SNMP的支持非常成熟。对于通用服务器硬件可以使用自带的Template Module Generic SNMPv2或SNMPv3模板。但对于BMC的专有传感器最佳实践是创建主机在Zabbix中创建主机IP地址填写BMC的管理IP。配置SNMP接口为主机添加SNMP接口正确选择v2c或v3填入共同体名或v3用户认证信息。使用SNMP自动发现规则这是高效监控的关键。你可以创建一个“SNMP OID发现”规则。OID指向你之前发现的传感器表索引OID例如传感器表的索引列.1.3.6.1.4.1.xxxx.1.2.3.1.1。设备唯一性选择索引OID本身。监控项原型为发现到的每个传感器索引创建监控项原型。这里需要一点技巧假设传感器当前值的OID是索引OID加一个固定的偏移如索引是.1.3.6.1.4.1.xxxx.1.2.3.1.1.{#SNMPINDEX}那么当前值可能是.1.3.6.1.4.1.xxxx.1.2.3.1.2.{#SNMPINDEX}。在监控项原型的OID中使用{#SNMPINDEX}这个宏来动态替换索引号。触发器原型同样可以创建触发器原型当传感器值超过阈值如果MIB中有阈值OID时告警。关联模板将创建好的发现规则和监控项/触发器原型打包成一个自定义的BMC监控模板方便批量应用到同型号服务器。4.2 集成至Prometheus使用SNMP ExporterPrometheus生态通过snmp_exporter这个官方组件来采集SNMP数据。它的优势是配置一次即可服务多个Prometheus实例且性能较好。部署snmp_exporter从Prometheus官网下载并运行snmp_exporter。它自带一个generator工具可以根据你提供的MIB文件和配置文件 (snmp.yml) 自动生成采集配置。编写snmp.yml配置文件这是核心。你需要为你的BMC设备定义一个模块。示例如下modules: huawei_bmc: walk: - 1.3.6.1.4.1.2011.2.235.1.1.6 # 假设这是华为服务器传感器表的OID version: 3 auth: username: snmp_monitor security_level: authPriv auth_protocol: SHA auth_password: your_auth_pass priv_protocol: AES priv_password: your_priv_pass max_repetitions: 25 retries: 3 timeout: 10s你需要将walk下的OID替换为你通过snmpwalk发现的核心传感器表OID。generator会根据这个OID向下遍历并尝试使用你加载的MIB文件将其转换为可读的指标名称。生成并应用配置运行generator生成最终的snmp.yml。然后配置Prometheus的scrape_configs来抓取snmp_exporter并通过target参数指定BMC的IP。scrape_configs: - job_name: snmp_bmc static_configs: - targets: - 192.168.1.100 # BMC IP metrics_path: /snmp params: module: [huawei_bmc] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: your_snmp_exporter_ip:9116 # snmp_exporter地址在Grafana中可视化采集到的数据会带有丰富的标签如sensor_nameCPU1 Temp可以轻松地在Grafana中创建仪表盘展示所有服务器的硬件健康状态。4.3 处理SNMP Trap告警BMC可以将硬件事件如温度超阈、风扇故障、电源掉电以SNMP Trap的形式主动推送给监控中心。在监控服务器上配置Trap接收器Zabbix启用Zabbix Server的SNMP trap功能配置snmptrapd将接收到的Trap转发给Zabbix的snmptrap进程并编写对应的Trap映射规则snmptrapd.conf和snmptrap正则表达式匹配将Trap内容转换为Zabbix事件。专用Trap接收器如Netcool OMNIbus或简单的snmptrapd日志记录。可以将snmptrapd的输出记录到文件或管道再由Logstash等工具解析入库。在BMC端配置Trap目标如3.1节所述在BMC的SNMP设置中填入监控服务器的IP和端口以及对应的共同体名或v3用户信息。通常还可以选择需要发送Trap的事件严重级别如Critical, Warning。解析厂商特定的Trap OID不同厂商的故障Trap OID不同。你需要从厂商的MIB文件中找到对应的Trap定义了解其携带的变量绑定varbinds含义才能正确解析告警内容。例如一个风扇故障Trap可能会携带风扇编号、当前转速、阈值等信息。5. 常见问题排查与性能优化实录5.1 连接与超时问题排查当snmpget或监控系统无法采集数据时按以下顺序排查网络连通性pingBMC的IP地址。确保监控服务器与BMC管理口之间路由可达防火墙放行了UDP 161端口SNMP和162端口Trap。SNMP服务状态登录BMC Web界面确认SNMP服务已启用。共同体名/用户认证这是最常见的问题。仔细检查大小写、特殊字符。对于SNMPv3确认认证和加密协议、密码完全匹配。一个快速测试方法是使用snmpwalk命令的-d参数dump数据包来查看交互过程或尝试更简单的authNoPriv级别排除加密问题。访问控制列表ACL确认监控服务器的IP地址已添加到BMC的SNMP访问白名单中。我曾多次遇到因为BMC有多处ACL设置全局、服务级而导致规则未生效的情况。OID权限尝试一个公认的公开OID如.1.3.6.1.2.1.1.1.0(系统描述)看能否获取。如果能说明基础通信正常问题出在你查询的特定OID可能不存在或需要更高权限。5.2 数据采集性能与优化当监控大量服务器数十上百台时SNMP采集可能成为性能瓶颈。使用SNMP Bulk RequestSNMPv2c和v3支持GETBULK操作可以一次请求获取一个表格的多个行极大减少请求往返次数。确保你的监控代理或采集器如Zabbix agent, snmp_exporter启用了Bulk请求。在snmpwalk中-Cn和-Cr参数可以控制Bulk操作的列数和行数。优化采集频率硬件传感器数据如温度、电压变化相对较慢。将采集间隔从默认的60秒调整为300秒5分钟可以显著减轻BMC和网络的压力同时不影响监控有效性。对于风扇转速、功耗等可以根据需要调整。避免全表遍历不要频繁使用snmpwalk .遍历整个MIB树进行发现。应在初次配置时完成发现并固化需要监控的特定OID列表。后续采集只针对这些固定的OID。snmp_exporter的缓存snmp_exporter支持对walk结果进行缓存。对于变化不频繁的OID如传感器描述可以设置较长的缓存时间避免每次采集都重新walk。BMC自身性能老旧或低端服务器的BMC处理器性能有限过高的SNMP查询频率可能导致BMC响应变慢甚至影响其核心管理功能。如果观察到SNMP超时增多应首先考虑降低采集频率。5.3 厂商兼容性与私有MIB的坑这是最耗费时间的部分。不同厂商、甚至同厂商不同代际的BMC其SNMP实现和MIB结构可能有较大差异。OID漂移同一个硬件指标如“CPU温度”在不同型号的服务器上其OID可能完全不同。这意味着你很难做一个通用的模板。解决方案是为每个主要的服务器型号或平台维护一个独立的监控模板或snmp.yml模块。MIB文件错误有时从官网下载的MIB文件可能存在语法错误导致smi或generator无法解析。可能需要手动编辑MIB文件修正明显的拼写或格式错误。数据格式不标准有些BMC返回的温度值是整数代表摄氏度有些可能是带小数点的字符串。有些风扇转速的单位是RPM有些可能是百分比。在配置监控项时需要仔细检查数据的单位和格式并在监控系统中做好数据转换如Zabbix的预处理功能。功能阉割一些入门级服务器或某些云服务商的定制化服务器其BMC的SNMP功能可能被精简只提供最基础的只读信息不支持Trap或写入操作。在选型时需要将此作为考量因素。经过这一轮深入的梳理和实战BMC的SNMP功能从一个模糊的概念变成了手中清晰可控的工具。它确实不是最简单的协议但一旦打通带来的价值是巨大的——它让硬件层的“黑盒”变得透明让预测性维护和精细化能效管理成为可能。最后分享一个习惯每次上线一批新型号的服务器我都会花半天时间用snmpwalk把它“扫”一遍把关键的传感器OID、状态OID记录下来更新到我的“OID速查表”里。这个习惯积累下来的知识库是应对未来运维挑战时最宝贵的财富。

相关新闻

Vibe-Trading深度体验:AI如何用自然语言一键生成量化交易策略

Vibe-Trading深度体验:AI如何用自然语言一键生成量化交易策略

1. 项目概述:当AI遇见量化,一场投资策略的“平民化”革命 最近在GitHub上冲浪,发现一个项目热度飙升得有点离谱,叫Vibe-Trading。点进去一看,好家伙,3.8K的Star数,而且还在持续增长。这个由港大…

2026/8/7 5:42:19 阅读更多 →
4.1 联网搜索

4.1 联网搜索

千问的联网搜索功能是其作为智能助手的核心能力之一,旨在突破大模型训练数据的“知识截止日”限制,实时获取互联网上的最新信息,从而提供准确、权威、有时效性的回答。大语言模型(如Qwen系列)的知识来源于训练时的数据…

2026/8/7 5:41:19 阅读更多 →
2.6 提示词的优化与迭代策略

2.6 提示词的优化与迭代策略

在掌握结构化提示词框架后,我们需明确一个核心认知:高质量提示词并非“一次成型”,而是通过“针对性优化循环迭代”逐步完善的。即使是基于标准框架撰写的提示词,也可能因场景细节遗漏、需求理解偏差等问题,导致模型输…

2026/8/7 5:41:19 阅读更多 →

最新新闻

领域专用小型语言模型量化部署实战:从GPTQ到生产环境避坑指南

领域专用小型语言模型量化部署实战:从GPTQ到生产环境避坑指南

1. 项目概述:为什么生产环境需要“小而精”的模型?最近和几个做企业级AI应用落地的朋友聊天,大家不约而同地都在吐槽同一个问题:大模型虽好,但真到了生产环境,成本、延迟和稳定性这三座大山压得人喘不过气。…

2026/8/7 6:35:51 阅读更多 →
AI内容生成项目部署实践:从本地部署到批量集成的全流程指南

AI内容生成项目部署实践:从本地部署到批量集成的全流程指南

这次我们来看一个名为“大同生日快乐”的项目。这个名字听起来像是一个特定场景的祝福生成或内容创作工具。从技术角度看,这类项目通常聚焦于利用AI模型,根据特定主题(如“大同”、“生日”)自动生成图文、视频或语音祝福内容&…

2026/8/7 6:35:51 阅读更多 →
AI模型API调用实战:从错误处理到性能优化的全链路指南

AI模型API调用实战:从错误处理到性能优化的全链路指南

1. 从“调不通”到“调得稳”:一个API老兵的实战心法最近在社区里看到不少朋友在讨论各种模型API的调用,从DeepSeek到Claude,从智谱到开源模型,问题五花八门。最常见的就是那个经典的“400 Bad Request”,要么是参数不…

2026/8/7 6:35:51 阅读更多 →
Onkyo NR474固件更新失败自救指南:强制恢复模式与救砖全流程

Onkyo NR474固件更新失败自救指南:强制恢复模式与救砖全流程

1. 从一次失败的固件更新说起:Onkyo NR474的“变砖”惊魂那天晚上,我正准备给家里的老伙计——一台服役多年的Onkyo NR474 AV功放——升级一下固件。官网上挂着新版本,描述里写着“提升系统稳定性”和“修复已知问题”,这对于一台…

2026/8/7 6:35:51 阅读更多 →
大模型应用降本增效实战:基于语义缓存的Prompt Caching架构与工程实践

大模型应用降本增效实战:基于语义缓存的Prompt Caching架构与工程实践

1. 项目概述:当大模型调用成为成本中心最近和几个做AI应用的朋友聊天,发现大家不约而同地都在为一个问题头疼:大模型的API调用成本。一个看似简单的对话应用,随着用户量起来,每个月的账单数字涨得比用户数还快。尤其是…

2026/8/7 6:35:51 阅读更多 →
智融SW3566H PD3.1认证芯片解析:高功率快充方案设计与开发实战

智融SW3566H PD3.1认证芯片解析:高功率快充方案设计与开发实战

1. 项目概述:一颗“认证”芯片背后的行业信号 最近在捣鼓一个高功率快充项目,选型时发现了一个挺有意思的芯片——智融科技的SW3566H。这枚芯片最近在圈子里讨论度不低,核心原因就藏在标题里:它通过了USB-IF协会的PD3.1官方认证。…

2026/8/7 6:34:51 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →