华为防火墙SNMP v2c配置与Zabbix丢包监控实战指南

最近帮一个客户排查了几天Zabbix里华为防火墙丢包监控无数据的问题,来来回回折腾了三个晚上,最后发现症结不在Zabbix,也不在Python脚本,而是华为防火墙侧SNMP v2c的配置没做对。事情本身不大,但能绕晕不少人。这篇把整个链路捋一遍:为什么丢包监控这么容易翻车、华为防火墙SNMP v2c到底该怎么配、Zabbix监控项怎么填才不出幺蛾子,最后附上一个我自己在用的Python巡检脚本,一条命令就能把全接口丢包和错误情况拉出来。

这篇内容适合正在用Zabbix监控网络设备的运维工程师,尤其是被“SNMP不通”“丢包永远是0”“数值突然暴涨”折磨过的人。看完你至少能少踩一半的坑。

1. 为什么丢包监控总翻车:从华为防火墙的计数机制说起

1.1 丢包不是一个OID能说清的

很多同行第一次做防火墙丢包监控的时候,习惯性去网上搜一个所谓“丢包OID”,填进Zabbix就完事。结果要么取回来的是接口错误计数,要么干脆就是华为私有MIB里的某个表项,跟你想监控的“丢包”根本不是一回事。

先说清楚概念。防火墙的丢包大体分三类:

  • 物理层/链路层错误:比如CRC错误、碰撞,反映线路质量,对应标准MIB里的ifInErrors、ifOutErrors。
  • 接口队列/缓存丢弃:比如接口缓存满、环形缓冲溢出,说明流量突发超过接口能力,对应标准MIB里的ifInDiscards、ifOutDiscards。
  • 业务策略丢弃:这是防火墙特有的,比如安全策略被拒绝、会话表满、攻击防范丢包。这些要读华为的私有MIB,标准MIB II完全覆盖不到。

问题就在这。Zabbix默认自带的网络设备模板,基本只覆盖了ifInErrors、ifOutErrors这类标准项,而华为防火墙真正核心的“策略丢包”“会话丢包”统计,分布在私有MIB里,模板根本不认识。如果你一开始就用默认模板,大概率得到的是一堆“看起来有数但没卵用”的结果。

1.2 SNMP v2c在华为防火墙上的三个隐形坑

第一个坑是华为设备默认不启用SNMP agent。新出厂的防火墙,你拿snmpwalk去扫,直接超时,很多人以为是设备不支持,其实是没开。

第二个坑是v2c的团体名(Community)配置。华为防火墙不像路由器那样默认带一个public,必须手动配置团体名,而且还要把这个团体名绑定到ACL上。ACL不写,或者写的网段不在里面,监控机就会被拒之门外——这里注意,华为的ACL规则即使没执行,也要确认包含源地址管理网段,而且团体名本身的大小写、长度、特殊字符都要和Zabbix里填的完全一致。

第三个坑是接口索引(ifIndex)不一致。你在Web界面上看到的接口名是GigabitEthernet1/0/0,但SNMP里的ifIndex可能是5、是23、是47,完全不是你想当然的1。很多人直接拿接口名的末尾“0/0/0”当索引去填OID,结果那个索引对应的根本不是你想要的接口。这事儿我在多个品牌的设备上都碰到过,华为防火墙尤其典型。

1.3 为什么现场推荐v2c而不是v3

有人问,既然v2c明文传输不安全,为什么不直接上SNMP v3?理论上确实v3更安全,有认证和加密。但现实里,Zabbix对接华为防火墙,我几乎全是推荐v2c,原因很实际:

一是部署成本低,一个团体名加一条ACL,一分钟搞定,v3要搞认证用户、权限组、加密算法,设备侧和Zabbix侧对不上就慢慢排查。

二是兼容性稳。Zabbix的SNMPv3实现虽然能用,但不同版本对HMAC-SHA/HMAC-MD5的支持有差异,华为设备侧的配置语义也对不齐,现场出问题排查链路比v2c长得多。

三是v2c配合ACL源限制,把管理网段限定死,风险完全可控。SNMP监控网段本身就不是互联网可达的,只要不在管理口上放飞所有网段,v2c足够用。

所以我的建议是:管理面走独立VLAN,SNMP只允许监控服务器网段访问,v2c是当前性价比最高的方案。v3留到等哪天有强合规要求了再上。

2. 华为防火墙SNMP v2c配置与自检:命令行实操

2.1 完整配置命令解读

以华为防火墙VRP系统为例(各版本命令差异不大),登录设备后:

system-view # 启动SNMP Agent,不做这一步,后面全白搭 snmp-agent # 声明支持SNMP v2c版本 snmp-agent sys-info version v2c # 配置团体名,cipher表示加密保存,后面跟ACL编号进行源限制 snmp-agent community read cipher YourCommunity@2024 acl 2001 # 可选:加上联系人和位置信息,Zabbix系统名里能看得到,方便多设备区分 snmp-agent sys-info contact ops-notify@example snmp-agent sys-info location IDC-A-03 quit # 保存配置 save

这里重点说三个参数。read表示只读权限,监控场景用read足够,千万别图省事开write,谁也不想监控机误操作改了防火墙配置。团体名里的特殊字符,比如@、#,在部分老版本命令行里可能需要转义,建议统一用字母加数字加下划线的组合,避免给自己找事。acl 2001是基本ACL编号,用来限定哪些源IP能访问SNMP,这个必须配。

2.2 ACL源限制不是可选项

有同行觉得内网环境无所谓,SNMP团体名反正没人知道,就不配ACL。我建议别这么干。SNMP v2c团体名是明文传输的,在内网抓个包就能看到团体名,如果ACL没限制,任何能到达设备管理口的节点都能读走全部接口状态和路由表,信息泄露风险不小。

ACL配置如下:

system-view acl number 2001 rule 5 permit source 10.10.10.0 0.0.0.255 rule 10 deny quit

rule 5放开监控网段,rule 10显式拒绝其他源。ACL匹配顺序是从小到大,所以第一个permit先放行Zabbix服务器和巡检机所在的网段,其余流量一律拒绝。这里注意,如果以后要加新的监控网段,别改老规则,直接插一条新rule编号进去就行,比如rule 6。

2.3 从设备侧和监控机侧验证配置

配置完了先在设备上确认:

display snmp-agent sys-info display snmp-agent community display acl 2001

看到团体名、版本、接口状态都正确后再去监控机验证。在Zabbix服务器上执行:

snmpwalk -v2c -c YourCommunity@2024 192.0.2.1 1.3.6.1.2.1.1.1.0

如果能返回sysDescr,比如设备型号、软件版本信息,说明设备侧配置通了。返回Timeout或No Response就按顺序排查:先ping管理IP,再telnet 161端口(自己用nc或telnet测UDP有些麻烦,实际用snmpwalk更直接),再看ACL和团体名。多数现场问题出在ACL没放行监控源IP,或者团体名大小写不一致。

3. Zabbix监控丢包的OID选择与监控项配置

3.1 标准MIB照抄就能用:接口组OID汇总

先明确一件事,接口级丢包和错误率,标准MIB II接口组就能搞定,不需要从华为私有MIB里翻。以下是IF-MIB中有用的几个OID,都是Counter32类型,拿到值后要用两次轮询的插值除以时间差,才能得到每秒丢包速率。

指标含义OID
接口名 ifName1.3.6.1.2.1.31.1.1.1.1
入方向丢弃包数 ifInDiscards1.3.6.1.2.1.2.2.1.13
入方向错误包数 ifInErrors1.3.6.1.2.1.2.2.1.14
出方向丢弃包数 ifOutDiscards1.3.6.1.2.1.2.2.1.19
出方向错误包数 ifOutErrors1.3.6.1.2.1.2.2.1.20

实际操作中,先用snmpwalk把整个接口表walk一遍,拿到ifName和ifIndex的映射关系,确认每个接口对应的索引值再入库。不要只填一个裸OID,Zabbix需要你在OID后面拼上具体索引,比如1.3.6.1.2.1.2.2.1.13.23表示23号接口的入方向丢弃计数。索引不对,数据就是错的。

3.2 Zabbix监控项、预处理与触发器配置实操

在Zabbix界面里,按以下步骤配置:

  • 主机 → 创建主机,填好名称、群组。
  • 添加SNMP接口:IP填设备管理IP,端口161,版本选SNMPv2,团体名填和华为设备一致的字符串。
  • 创建监控项:类型选SNMP agent,键值建议自己定义,比如ifInDiscards_rate_23,OID填1.3.6.1.2.1.2.2.1.13.23,信息类型选数字(unsigned),单位填pps,存储值选Delta(speed per second)。

关键点来了,Counter32本质上是一个“累加器”,值只会越来越大,直接存原始值没有任何意义。Zabbix里“Delta(speed per second)”会自动计算两次轮询之间该计数器的差值,再除以轮询间隔,得到每秒速率。如果你不想用存储值,也可以在主数据预处理里加一个“Change per second”步骤,效果一样,二选一即可。

触发器建议写成这样:

min(/主机名/ifInDiscards_rate_23,5m)>10

表示23号接口入方向丢弃速率持续5分钟超过10pps就告警。阈值不要拍脑袋,我建议先观察一周正常业务下的基线,再按基线的一倍以上设置告警线,避免晚上流量高峰误报。

3.3 想监控防火墙策略丢包:华为私有MIB的查找思路

如果你确实需要监控“因为安全策略被丢弃”的包数,那就得走华为私有MIB。这里我不直接给具体OID,因为不同版本、不同产品线的MIB文件有差异,直接抄网上的老OID很可能是过时的。

正确做法是:到华为技术支持网站下载对应设备软件版本号的MIB包,解压后用MIB浏览器(比如各种免费SNMP MIB工具)加载HUAWEI开头的MIB文件,搜索“drop”或者“discard”关键字,找到描述里带“firewall”、“policy”的表项,再用MIB浏览器自带的仿真功能或者snmpwalk实地验证OID是否存在、能否读到值。

我自己的习惯是,先用标准MIB把接口级丢包和错误监控跑通,再逐步加上私有MIB里的关键项。标准MIB是放之四海皆准的基线,私有MIB是锦上添花。一上来就追私有MIB,大概率被坑。

4. Python巡检脚本:一条命令批量确认丢包状态

4.1 为什么还要写Python脚本

Zabbix适合长期趋势监控,但故障排查时并不顺手。比如某个客户反馈防火墙丢包,你在Zabbix里一台台对接口、对索引,效率太低。而且Zabbix默认只按你配的监控项展示,没配的接口就完全没有数据。这时候一个随手能跑的Python脚本就很有用,批量snmpwalk所有接口,算完速率直接输出表格,哪个接口丢了包一眼就能看见。

脚本我基于pysnmp,这个库在Python 3环境比较省事,pip装一下就能用。

4.2 脚本设计思路与依赖

整体流程分三步:第一轮采集所有接口的计数器快照,等待几秒,第二轮再采集一次,然后两次差值除以时间差得到每秒速率,最后按照阈值判断状态并输出CSV。计数器注意32位回绕问题,差值为负数时要加上2的32次方修正。

pip install pysnmp

4.3 完整脚本与运行演示

#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 防火墙SNMP v2c丢包/错误巡检脚本 依赖: pip install pysnmp 用法: python firewall_snmp_check.py -H 192.0.2.1 -C YourCommunity@2024 python firewall_snmp_check.py -H 192.0.2.1 -C YourCommunity@2024 -t 5 -w 10 """ import argparse import csv import sys import time from pysnmp.hlapi import ( CommunityData, ContextData, ObjectIdentity, ObjectType, SnmpEngine, UdpTransportTarget, nextCmd, ) OID_IF_NAME = "1.3.6.1.2.1.31.1.1.1.1" OID_IF_IN_DISC = "1.3.6.1.2.1.2.2.1.13" OID_IF_IN_ERR = "1.3.6.1.2.1.2.2.1.14" OID_IF_OUT_DISC = "1.3.6.1.2.1.2.2.1.19" OID_IF_OUT_ERR = "1.3.6.1.2.1.2.2.1.20" def snmp_walk_index_value(host, community, oid): """返回 {ifIndex: 计数值},例如 {23: 1024}""" result = {} for error_indication, error_status, error_index, var_binds in nextCmd( SnmpEngine(), CommunityData(community, mpModel=1), # mpModel=1 表示SNMPv2c UdpTransportTarget((host, 161), timeout=3, retries=2), ContextData(), ObjectType(ObjectIdentity(oid)), lexicographicMode=False, ): if error_indication: print(f"SNMP错误: {error_indication}", file=sys.stderr) return {} if error_status: print(f"SNMP错误: {error_status.prettyPrint()}", file=sys.stderr) return {} for name, value in var_binds: oid_str = name.prettyPrint() index = int(oid_str.rsplit(".", 1)[-1]) result[index] = int(value) return result def collect_snapshot(host, community): """采集全接口计数快照""" ifname = snmp_walk_index_value(host, community, OID_IF_NAME) in_disc = snmp_walk_index_value(host, community, OID_IF_IN_DISC) in_err = snmp_walk_index_value(host, community, OID_IF_IN_ERR) out_disc = snmp_walk_index_value(host, community, OID_IF_OUT_DISC) out_err = snmp_walk_index_value(host, community, OID_IF_OUT_ERR) snapshot = {} for index, name in ifname.items(): snapshot[index] = { "name": name, "in_disc": in_disc.get(index, 0), "in_err": in_err.get(index, 0), "out_disc": out_disc.get(index, 0), "out_err": out_err.get(index, 0), } return snapshot def diff_counter(new_val, old_val): """计算Counter32差值,处理回绕""" diff = new_val - old_val if diff < 0: diff += 2 ** 32 return diff def main(): parser = argparse.ArgumentParser(description="防火墙SNMP丢包巡检") parser.add_argument("-H", "--host", required=True, help="设备管理IP") parser.add_argument("-C", "--community", required=True, help="SNMP v2c团体名") parser.add_argument("-t", "--interval", type=int, default=2, help="两次采样间隔秒数,默认2") parser.add_argument("-w", "--warn", type=int, default=5, help="丢包告警阈值pps,默认5") args = parser.parse_args() print(f"[*] 开始巡检 {args.host},间隔 {args.interval}s,告警阈值 {args.warn}pps") snap1 = collect_snapshot(args.host, args.community) time.sleep(args.interval) snap2 = collect_snapshot(args.host, args.community) if not snap1 or not snap2: print("[-] 未获取到数据,请检查连通性和团体名", file=sys.stderr) sys.exit(1) report = [] for index in sorted(snap2.keys()): s1 = snap1[index] s2 = snap2[index] rate_in_disc = diff_counter(s2["in_disc"], s1["in_disc"]) / args.interval rate_in_err = diff_counter(s2["in_err"], s1["in_err"]) / args.interval rate_out_disc = diff_counter(s2["out_disc"], s1["out_disc"]) / args.interval rate_out_err = diff_counter(s2["out_err"], s1["out_err"]) / args.interval status = "OK" if max(rate_in_disc, rate_out_disc, rate_in_err, rate_out_err) > args.warn: status = "WARN" report.append([ index, s2["name"], f"{rate_in_disc:.2f}", f"{rate_out_disc:.2f}", f"{rate_in_err:.2f}", f"{rate_out_err:.2f}", status ]) # 输出到终端和CSV print(f"{'接口':<25} {'入丢(pps)':<12} {'出丢(pps)':<12} {'入错(pps)':<12} {'出错(pps)':<12} 状态") for row in report: print(f"{row[1]:<25} {row[2]:<12} {row[3]:<12} {row[4]:<12} {row[5]:<12} {row[6]}") csv_path = f"fw_snmp_report_{args.host}.csv" with open(csv_path, "w", newline="") as f: writer = csv.writer(f) writer.writerow(["ifIndex", "接口名", "入丢(pps)", "出丢(pps)", "入错(pps)", "出错(pps)", "状态"]) writer.writerows(report) print(f"[*] 报告已保存: {csv_path}") if __name__ == "__main__": main()

运行方式:

python firewall_snmp_check.py -H 192.0.2.1 -C YourCommunity@2024 -t 5 -w 10

输出效果类似:

[*] 开始巡检 192.0.2.1,间隔 5s,告警阈值 10pps 接口 入丢(pps) 出丢(pps) 入错(pps) 出错(pps) 状态 GigabitEthernet1/0/0 0.00 0.00 0.00 0.00 OK GigabitEthernet1/0/1 0.00 3.20 0.00 0.00 OK 10GE2/0/1 0.00 0.00 0.00 0.00 OK [*] 报告已保存: fw_snmp_report_192.0.2.1.csv

4.4 结果解读与阈值建议

脚本输出的“入丢/出丢/入错/出错”是每秒速率,单位pps。正常运行的接口,丢包和错误速率应该长期都是0。出现非0数值时,先看是某个接口持续出现还是全设备都有,区别很大:

  • 单个接口持续丢包,优先查线缆、光模块、协商模式,这种一般是物理层问题。
  • 多个接口同时丢包,要查是不是有广播风暴、环路,或者是设备CPU过高导致转发暂时性丢弃。
  • 瞬时小抖动不用慌,比如出方向偶发几个pps,可能是TCP全局拥塞控制导致的正常现象。阈值建议日常8-10pps起步,大带宽链路可以放宽到50pps,具体看业务。

5. 常见问题与排查技巧实录

5.1 症状-原因速查表

现场症状可能原因排查方向
Zabbix监控项无数据或“不支持”SNMP不可达、OID不存在、团体名错误Zabbix服务器上snmpwalk验证,设备侧display snmp-agent community
数值永远是0,但设备明明有丢包OID配错、监控的是错误计数不是丢弃计数、索引不对walk接口表,确认ifName和ifIndex映射,把ifInDiscards和ifInErrors都接上
数值突然变大或出现负数Counter32回绕、值类型选错监控项存储值改成Delta(speed per second),预处理加Change per second
部分接口有数据,部分没有手动配置监控项只覆盖了少数接口改用LLD自动发现规则,或按脚本走全接口巡检
设备CPU升高明显Zabbix轮询间隔太短、监控项过多轮询间隔不要小于60秒,减少无效OID请求,启用缓存
SNMPwalk超时ACL没放行、管理口不通、161端口被策略拦截从设备上display acl 2001,确认管理网段,检查入方向安全策略

5.2 排障顺序与现场心得

我强烈建议所有SNMP排障都按这个顺序来,能省一半时间:

  1. 设备侧确认SNMP Agent已启用,团体名和ACL都正确。
  2. 在Zabbix服务器上直接snmpwalk单条OID,绕开Zabbix界面先确认链路通。
  3. 用MIB浏览器或脚本walk整个接口表,确认ifIndex和ifName映射。
  4. 最后才去Zabbix界面看监控项配置和最新数据。

这个顺序的核心理念是:SNMP链路没有打通之前,一切Zabbix配置都是无用功。很多同事一上来就改Zabbix监控项,改来改去还是无数据,最后发现是设备侧团体名少了一个字符。

再分享一个小经验。我在脚本第一步就把所有接口的ifName和ifIndex映射保存到一个文本文件里,后续任何配置和排障都拿这份映射当基线。用熟了你会发现,Snmp接口索引和设备Web界面的接口序号的对应关系几乎没规律,没有基线文件就只能靠猜。

另外,阈值也要按接口性质区分。对接运营商的出口链路和对接内网服务器的接入链路,丢包容忍度完全不一样。出口链路偶发5pps可能没事,接入链路持续1pps就要警惕了。我的做法是给每类接口打上不同的告警模板,出口链路阈值高一点,接入链路阈值低一点,宁可多接几组触发器,也别因为阈值太粗把真问题漏掉。

这套组合拳在我这边稳定跑了一年多。Zabbix负责7x24小时趋势和告警,Python脚本负责故障时快速拉全量快照,各管一摊,互补性很强。如果你也在为防火墙丢包监控头疼,照着这篇把SNMP v2c配置逐项对一遍,再落一个巡检脚本,基本就能稳住了。

相关新闻

MySQL 8一键安装与巡检脚本实战:从部署到健康检查

MySQL 8一键安装与巡检脚本实战:从部署到健康检查

跑数据库运维没几年&#xff0c;但我越来越确认一件事&#xff1a;装 MySQL 这件事&#xff0c;如果每次都靠手工敲命令&#xff0c;总有一天会因为一个参数写错而丢掉一个通宵。尤其到了 MySQL 8&#xff0c;初始化方式、认证插件、参数默认值都和 5.7 有差异&#xff0c;照着…

2026/10/19 17:42:49 阅读更多 →
857个AI模型仅3.6%公开安全测试:AI安全测试的行业真相与落地实践

857个AI模型仅3.6%公开安全测试:AI安全测试的行业真相与落地实践

1. 一组数字背后的行业真相857个模型&#xff0c;只有3.6%公开了安全测试结果。这个比例我第一次看到的时候&#xff0c;盯着屏幕愣了好几秒。3.6%是什么概念&#xff1f;大概就是你在一个坐满100个人的会议室里扫一圈&#xff0c;只有不到4个人手里拿着体检报告&#xff0c;剩…

2026/10/19 17:41:48 阅读更多 →
逆序对计数:归并排序的O(n log n)解法与Go实现

逆序对计数:归并排序的O(n log n)解法与Go实现

1. 逆序对的定义&#xff1a;为什么这一题能拦住很多人 我第一次认真接触“逆序对”是在处理一批排序统计相关的小工具时。当时我需要量化一组序列到底“有多乱”&#xff0c;排序本身只能给出结果顺序&#xff0c;却丢失了原始乱序程度。后来才意识到&#xff0c;逆序对数量正…

2026/10/19 17:41:48 阅读更多 →

最新新闻

从杂乱无章到井井有条:一套系统方法彻底清理你的记事本

从杂乱无章到井井有条:一套系统方法彻底清理你的记事本

1. 记事本越攒越乱&#xff0c;问题根本不在“没时间整理” 我自己的手机记事本曾经攒了六百多条内容&#xff0c;从三年前的快递取件码&#xff0c;到某次培训随手敲的半页笔记&#xff0c;再到突然灵光一闪想出来的选题&#xff0c;全都混在一起。每次想找点东西&#xff0c;…

2026/10/19 20:04:38 阅读更多 →
大模型重塑移动端自动化测试:从脚本维护到智能自愈

大模型重塑移动端自动化测试:从脚本维护到智能自愈

移动端自动化测试&#xff0c;圈里人刚接触的时候基本都是真香状态&#xff1a;写一条用例&#xff0c;跑一百遍都不累&#xff0c;发版前全量回归&#xff0c;夜里睡得都踏实。但做上一年半载&#xff0c;很多团队就开始头疼——脚本越攒越多&#xff0c;维护量直线上升&#…

2026/10/19 20:04:38 阅读更多 →
大模型如何破解移动端自动化测试的维护困局与信任危机

大模型如何破解移动端自动化测试的维护困局与信任危机

凌晨一点&#xff0c;发版当天的自动化报告终于跑完了&#xff0c;红了一大片。群里第一条消息不是问哪条用例挂了&#xff0c;而是那句我听见无数遍的话&#xff1a;“这自动化现在是在帮倒忙吧。”说真的&#xff0c;这句话比报告里一百个失败用例都扎心。移动端自动化测试做…

2026/10/19 20:04:38 阅读更多 →
Spark RDD Shuffle磁盘读写机制深度解析

Spark RDD Shuffle磁盘读写机制深度解析

1. 项目概述&#xff1a;为什么“RDD shuffle 读磁盘与写磁盘”是Spark性能的命门如果你在某次Spark作业中突然发现Stage卡在Shuffle Read或Shuffle Write阶段&#xff0c;任务耗时从分钟级飙升到小时级&#xff0c;Executor内存使用率反复触顶又暴跌&#xff0c;GC日志里满屏的…

2026/10/19 20:04:38 阅读更多 →
用靶场与BurpSuite练就Web安全测试思维:从流量分析到逆向实战

用靶场与BurpSuite练就Web安全测试思维:从流量分析到逆向实战

1. 为什么“靶场BurpSuite”是构建安全测试思维的捷径很多人第一次接触安全测试时&#xff0c;都喜欢直接拿现成网站练手&#xff0c;或者上来就刷一堆漏洞列表&#xff0c;结果越学越混乱&#xff1a;要么看不懂请求包里的参数含义&#xff0c;要么不知道对方是怎么从一段看似…

2026/10/19 20:04:38 阅读更多 →
上下文驱动研发管线:从配置散落到自动化追溯的工程实践

上下文驱动研发管线:从配置散落到自动化追溯的工程实践

1. 上下文驱动研发管线到底在解决什么问题第一次听到“上下文驱动研发管线”这个词&#xff0c;很多人会以为又是个新造的概念。但如果你带过超过三个人的研发团队&#xff0c;或者维护过超过半年的项目&#xff0c;你大概率已经被这些问题折磨过&#xff1a;新同学入职两周还在…

2026/10/19 20:03:37 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介&#xff1a;本资源为电源技术方向的学术研究文档&#xff0c;聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略&#xff0c;面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址&#xff1a; https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集&#xff0c;共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →