华为交换机LACP链路聚合配置实战:原理、避坑与故障排查

1. 链路聚合与LACP协议的核心逻辑拆解

很多刚接触网络设备的朋友第一次听到“链路聚合”这四个字,脑子里冒出来的画面可能是把几根网线捆在一起,觉得带宽就直接翻倍了。这个直觉不能说错,但只对了一半。链路聚合真正解决的问题,是在增加带宽的同时提供链路冗余,并且保证数据转发过程中不会因为多根线并行而出现环路、乱序这些要命的问题。而LACP协议,就是让两台设备之间自动协商、自动维护这条聚合链路的“协调员”。

我先把这件事的本质讲清楚。假设你有一台接入层交换机和一台核心交换机,中间只拉了一根千兆线。现在接入层下面挂了五十台终端,高峰期流量跑满了千兆,用户开始喊卡。最直接的办法是换万兆端口,但万兆光模块、万兆板卡、光纤跳线的成本摆在那里,不是每个项目都批得下来。这时候如果设备上还有空闲的千兆口,把四根千兆线捆成一条逻辑链路,理论带宽就变成了四千兆,而且其中一根线断了,另外三根还能继续跑,业务不中断。这就是链路聚合最朴素的价值。

但问题来了:如果只是把四根线插上去,不做任何协商,交换机会怎么处理?答案是生成树协议会把其中三根口阻塞掉,实际还是只有一根线在工作。更糟糕的是,如果两端设备对哪些口属于同一个聚合组的理解不一致,还可能形成环路,广播风暴瞬间就能把网络打瘫。LACP的作用就是让两端设备通过交换LACPDU报文,确认“我们俩都认为这几个口是一组的”,并且持续监控每个成员口的状态。一旦某个成员口出问题,LACP会把它从聚合组里踢出去,流量自动切换到剩余成员口上。

这里要区分两个概念:静态链路聚合和动态链路聚合。静态聚合就是管理员在两端手工指定哪些口属于同一个聚合组,不跑LACP协议。这种方式配置简单,但有个致命问题——如果一端配置了聚合,另一端忘了配,或者两端对成员口的定义不一致,就可能出环路。动态聚合就是跑LACP协议,两端通过报文协商,只有协商成功的口才会加入聚合组,安全性高很多。华为交换机上,静态聚合用mode manual,动态聚合用mode lacp-static,这个后面会详细讲。

那LACP协议具体是怎么工作的?它通过周期性地发送LACPDU(Link Aggregation Control Protocol Data Unit)报文来维护链路状态。报文中携带了系统优先级、系统MAC、端口优先级、端口号等关键信息。两端设备根据这些信息选举出一个“主动端”,由主动端来决定哪些端口可以加入聚合组。选举规则是先比系统优先级,数值小的优先;如果系统优先级相同,再比系统MAC,数值小的优先。主动端确定后,它会根据端口优先级和端口号来决定成员口的活跃状态。端口优先级数值小的优先,如果相同则端口号小的优先。

这个选举机制在实际项目中有个很实用的场景:当两台交换机之间的聚合链路中,有些口是千兆、有些口是百兆时,你可以通过调整端口优先级,让千兆口优先成为活跃口,百兆口作为备份。这样正常运行时流量都走千兆口,千兆口故障时才切换到百兆口,虽然带宽降了但业务不至于断。这个技巧在老旧设备混用的网络里特别管用。

还有一个容易被忽略的点:LACP的报文发送周期。华为交换机默认是30秒发送一次LACPDU,这个叫“慢速报文”。有些场景下需要改成1秒发送一次,叫“快速报文”。比如对收敛时间要求很高的金融交易网络,30秒的检测周期意味着链路故障后可能要等30秒才能切换,这显然不可接受。改成快速报文后,1秒内就能检测到故障并完成切换。但快速报文会增加CPU负担,所以不是所有场景都适合,得根据实际需求权衡。

2. 华为交换机LACP配置的实操要点与避坑指南

2.1 聚合组与成员口的绑定逻辑

在华为交换机上配置LACP,第一步是创建Eth-Trunk接口。这个Eth-Trunk接口是一个逻辑接口,你可以把它当成一个物理口来用——配IP地址、配VLAN、配QoS策略都行。创建命令很简单:

interface Eth-Trunk 1 mode lacp-static

这两行命令的意思是:创建一个编号为1的Eth-Trunk接口,工作模式为动态LACP。注意这里的编号范围,不同型号的华为交换机支持的Eth-Trunk数量不一样,接入层设备一般支持几十个,核心层设备能支持上百个。规划的时候要留有余量,别把编号用满了。

创建完Eth-Trunk接口后,需要把物理口加进去。有两种方式:一种是在物理口视图下执行eth-trunk 1,另一种是在Eth-Trunk视图下执行trunkport GigabitEthernet 0/0/1。我个人的习惯是用后者,因为一次性可以把多个口都加进去,效率高。比如:

interface Eth-Trunk 1 trunkport GigabitEthernet 0/0/1 to 0/0/4

这条命令把0/0/1到0/0/4四个口一次性加入Eth-Trunk 1。但这里有个坑:加入Eth-Trunk的物理口不能预先配置任何业务。如果某个口上已经配了IP地址、VLAN或者ACL,加入Eth-Trunk时会报错。正确的做法是先把物理口的配置清掉,再加入聚合组。我见过不少新手在这个地方卡住,反复检查LACP配置却找不到问题,其实就是物理口上有残留配置。

还有一个细节:华为交换机上,物理口加入Eth-Trunk后,它的很多配置会自动继承Eth-Trunk接口的配置。比如你在Eth-Trunk上配了port link-type trunk和port trunk allow-pass vlan 10 20,那么所有成员口都会自动变成Trunk模式并允许VLAN 10和20通过。但有些配置不会自动继承,比如STP相关的参数、风暴抑制等,需要手动在Eth-Trunk上配置。这个继承关系一定要搞清楚,否则会出现“明明在物理口上配了却不起作用”的情况。

2.2 LACP优先级与抢占机制的实际应用

LACP的优先级分为系统优先级和端口优先级两个层级。系统优先级决定了哪端是主动端,端口优先级决定了哪些口是活跃口。华为交换机上,系统优先级的默认值是32768,取值范围是0到65535,数值越小优先级越高。端口优先级的默认值也是32768,取值范围一样。

在什么场景下需要调整这些优先级?我举一个实际项目中的例子。某园区网有两台核心交换机做堆叠,接入交换机通过两条上行链路分别连接到两台核心。接入交换机上创建了一个Eth-Trunk,两个成员口分别连到两台核心。这时候如果核心交换机的系统优先级相同,LACP选举出来的主动端可能是其中一台,所有流量都走那台核心。如果那台核心的CPU负载已经很高了,就会出问题。这时候可以把另一台核心的系统优先级调低,让它成为主动端,流量就会切换到负载较低的那台核心上。

配置命令如下:

lacp priority 100

这条命令在系统视图下执行,把本设备的LACP系统优先级设为100。注意这个命令是全局生效的,会影响设备上所有Eth-Trunk的LACP选举。如果只想调整某个Eth-Trunk的优先级,需要在Eth-Trunk视图下配置:

interface Eth-Trunk 1 lacp priority 100

端口优先级的调整类似,在物理口视图下执行:

interface GigabitEthernet 0/0/1 lacp priority 100

这里有个经验之谈:端口优先级不要随便调。因为LACP的活跃口选举是按端口优先级从小到大排的,如果你把某个口的优先级调得很低,它就会成为活跃口。但如果这个口的物理质量不好(比如光衰大、误码率高),反而会影响业务。所以调整端口优先级之前,一定要确认这个口的物理层质量是OK的。

关于抢占机制,华为交换机默认是非抢占模式。什么意思?假设Eth-Trunk 1有三个成员口,其中口1和口2是活跃口,口3是备份口。现在口1故障了,口3自动变成活跃口。过了一会口1恢复了,在非抢占模式下,口1会变成备份口,口3继续做活跃口。如果开启了抢占模式,口1恢复后会重新抢回活跃口的位置,口3退回备份状态。

抢占模式怎么开?

interface Eth-Trunk 1 lacp preempt enable lacp preempt delay 30

lacp preempt delay 30的意思是延迟30秒再抢占。为什么要延迟?因为口刚恢复的时候可能还不稳定,如果立刻抢占,可能刚切过去又断了,来回震荡对业务影响更大。延迟30秒可以让口先稳定运行一段时间,确认没问题了再切换。这个延迟时间可以根据实际情况调整,一般10到60秒都合理。

2.3 负载分担模式的选型与配置

链路聚合的负载分担模式决定了流量如何在各个成员口之间分配。华为交换机支持多种负载分担模式,包括基于源MAC、目的MAC、源IP、目的IP、源端口、目的端口以及它们的组合。默认情况下,华为交换机的负载分担模式是src-dst-mac,也就是根据源MAC和目的MAC的哈希值来选口。

这个默认值在大多数场景下够用,但在某些特定场景下需要调整。比如你的网络里有一台服务器,它的MAC地址固定,所有访问它的流量源MAC可能不同但目的MAC都是这个服务器的MAC。如果按src-dst-mac分担,哈希结果可能总是落在同一个成员口上,其他成员口闲着,聚合带宽根本没利用起来。这时候改成src-dst-ip就更合理,因为不同客户端的源IP不同,哈希结果会分散到不同成员口上。

配置命令如下:

interface Eth-Trunk 1 load-balance src-dst-ip

华为交换机支持的负载分担模式比较丰富,我整理了一个表格供参考:

负载分担模式适用场景注意事项
src-dst-mac通用场景,接入层到汇聚层同源同目的MAC的流量会走同一个口
src-dst-ip三层转发场景,服务器集群需要设备支持三层转发
src-ip客户端访问服务器,源IP分散目的IP相同的流量可能不均
dst-ip服务器回包给客户端源IP相同的流量可能不均
src-dst-port需要更细粒度分担的场景对设备性能有一定要求

这里要提醒一点:负载分担模式是全局生效的,不是每个Eth-Trunk单独配。也就是说,你在Eth-Trunk 1上配了load-balance src-dst-ip,设备上所有Eth-Trunk都会用这个模式。所以调整之前要评估对现网其他聚合链路的影响。

还有一个实际经验:负载分担的效果很难做到绝对均匀。因为哈希算法本身是概率性的,流量特征不同,分担比例可能从3:7到5:5不等。如果你发现某个成员口的流量明显高于其他口,先别急着怀疑配置有问题,这很可能是流量特征导致的。可以用display interface Eth-Trunk 1查看各成员口的流量统计,如果长期严重不均,再考虑调整负载分担模式。

3. LACP协议在典型网络场景中的落地实践

3.1 接入层到汇聚层的双上行聚合

这是最常见的LACP应用场景。接入交换机放在楼层弱电间,汇聚交换机放在机房,中间拉两根或四根网线。接入交换机上创建Eth-Trunk,把上行口加进去;汇聚交换机上对应创建Eth-Trunk,把下行口加进去。两端都跑LACP动态聚合。

这个场景的配置要点有几个。第一,两端Eth-Trunk的编号可以不同,LACP协商不依赖编号,只依赖系统MAC和端口信息。但为了管理方便,建议两端用相同的编号。第二,两端成员口的数量要一致,如果一端配了4个口,另一端只配了2个口,LACP协商会部分成功,但活跃口数量以少的那端为准。第三,两端的工作模式必须一致,一端是lacp-static,另一端也必须是lacp-static,如果一端是manual,另一端是lacp-static,协商会失败。

我经手过一个案例:某办公楼接入交换机双上行到汇聚,配置完成后发现只有一根线在跑流量,另一根完全没流量。检查LACP状态发现,两端协商是成功的,两个口都是活跃状态。那为什么流量只走一个口?后来查负载分担模式,发现是src-dst-mac,而那个楼层的终端MAC地址分布比较集中,哈希结果总是落在同一个口上。改成src-dst-ip后,两个口的流量就均衡了。这个案例说明,LACP协商成功不等于负载均衡生效,还要关注负载分担模式是否匹配流量特征。

3.2 服务器双网卡聚合接入

服务器通过双网卡接入交换机,也是LACP的典型应用。服务器端需要配置bonding,模式选择4(802.3ad动态聚合),交换机端配置Eth-Trunk。这个场景比交换机之间的聚合要复杂一些,因为涉及到服务器操作系统的配置。

以Linux服务器为例,配置bonding的步骤大致如下:

# 创建bond接口 ip link add bond0 type bond mode 802.3ad # 设置LACP速率 echo fast > /sys/class/net/bond0/bonding/lacp_rate # 添加物理网卡 ip link set eth0 down ip link set eth1 down ip link set eth0 master bond0 ip link set eth1 master bond0 ip link set bond0 up

交换机端的配置和普通Eth-Trunk一样,关键是LACP速率要匹配。服务器端如果配了lacp_rate fast,交换机端也要配快速报文,否则协商可能出问题。华为交换机上配置快速报文的命令是:

interface Eth-Trunk 1 lacp timeout fast

这个场景最常见的坑是服务器端和交换机端的聚合模式不匹配。服务器端bonding模式4对应的是动态LACP,如果交换机端配成了静态聚合,协商就会失败。表现是服务器只能通一个网卡,另一个网卡虽然物理UP但无法转发流量。排查的时候先在交换机上看display eth-trunk 1,如果成员口状态是Unselected,基本就是协商没成功。

3.3 跨设备聚合的进阶玩法

华为交换机支持跨设备链路聚合,也就是M-LAG(Multi-Chassis Link Aggregation)。这个技术允许两台独立的交换机组成一个逻辑设备,接入交换机可以同时连接到这两台交换机,形成跨设备的聚合链路。相比传统的堆叠方案,M-LAG的优点是两台交换机可以独立升级、独立重启,不会因为一台设备的维护导致整个聚合组中断。

M-LAG的配置比普通LACP复杂得多,需要配置DFS组、Peer-Link、双归接入等。这里不展开讲具体命令,但要说清楚一个核心概念:M-LAG的LACP协商是两台交换机分别和接入交换机进行的,但两台交换机之间会通过Peer-Link同步LACP状态。接入交换机看到的是一个逻辑上的聚合组,实际上它的LACPDU报文被两台交换机分别处理。

这个场景的注意事项是:Peer-Link的带宽要足够。因为两台交换机之间的Peer-Link不仅要承载协议报文,还要在故障时承载跨设备流量。如果Peer-Link带宽不足,一旦其中一台交换机故障,所有流量涌向Peer-Link,可能导致拥塞。一般建议Peer-Link的带宽不低于聚合链路总带宽的1.5倍。

4. LACP常见故障排查与实战避坑手册

4.1 LACP协商失败的典型原因

LACP协商失败是新手最常遇到的问题。表现是Eth-Trunk接口起不来,或者成员口状态一直是Unselected。排查的时候按以下顺序检查:

第一,两端工作模式是否一致。一端lacp-static,另一端manual,协商肯定失败。这个是最低级但也最容易犯的错误,因为华为交换机的Eth-Trunk默认模式是manual,创建的时候如果不加mode lacp-static,就变成静态聚合了。

第二,成员口的物理状态是否UP。如果物理口是DOWN的,LACP报文发不出去,协商自然失败。用display interface GigabitEthernet 0/0/1查看物理口状态,确认是UP还是DOWN。

第三,成员口是否被STP阻塞。如果Eth-Trunk接口没有正确配置STP,或者STP优先级有问题,成员口可能被阻塞。用display stp interface Eth-Trunk 1查看STP状态。

第四,两端系统优先级和MAC是否冲突。如果两端设备的系统优先级和MAC完全相同(比如两台设备是同一批次出厂的,MAC地址很接近),LACP选举可能出问题。这种情况比较罕见,但确实遇到过。

第五,中间是否有传输设备。如果两台交换机之间经过了光传输设备、微波设备等,这些设备可能对LACPDU报文做处理,导致协商失败。LACPDU是二层报文,目的MAC是固定的组播地址,有些传输设备会过滤或修改这类报文。

我整理了一个排查速查表:

故障现象可能原因排查命令解决方法
Eth-Trunk起不来两端模式不一致display eth-trunk 1统一改为lacp-static
成员口Unselected物理口DOWNdisplay interface检查光模块、网线
协商成功但流量不均负载分担模式不匹配display eth-trunk 1调整load-balance
频繁震荡物理链路质量差display interface检查光衰、误码
一端活跃一端备份系统优先级不一致display lacp调整lacp priority

4.2 链路震荡的排查思路

链路震荡是指成员口频繁地在活跃和备份状态之间切换。这个问题的危害很大,因为每次切换都会导致流量短暂中断,业务可能表现为丢包、卡顿。震荡的原因通常有三个:

一是物理链路质量差。光模块光衰过大、网线接触不良、水晶头氧化,都会导致链路时断时续。LACP检测到链路DOWN就切换,链路恢复又切回来,来回震荡。排查方法是看接口的错包统计,用display interface GigabitEthernet 0/0/1查看CRC错误、丢包计数。如果错包数持续增长,基本可以确定是物理层问题。

二是LACP超时时间设置不合理。如果配了快速报文(1秒超时),但对端设备处理能力不足,可能来不及响应,导致LACP超时。表现是成员口每隔几秒就切换一次。解决方法是改回慢速报文(30秒超时),或者检查对端设备的CPU利用率。

三是STP和LACP的交互问题。在某些配置下,STP可能会把Eth-Trunk的成员口阻塞,导致LACP报文无法通过。这种情况需要检查STP配置,确保Eth-Trunk接口的STP状态是Forwarding。

4.3 跨厂商设备对接的注意事项

虽然本文主要讲华为交换机,但实际项目中经常遇到华为交换机和别的厂商设备对接的情况。跨厂商LACP对接有几个坑:

第一,LACP报文的发送周期可能不同。华为默认30秒,有些厂商默认1秒。如果两端周期不一致,协商可能成功但状态不稳定。建议两端都配成相同的周期。

第二,负载分担模式的支持范围不同。华为支持的某些负载分担模式,其他厂商可能不支持。对接时建议用最通用的src-dst-mac模式。

第三,LACP的系统优先级取值范围可能不同。华为是0到65535,有些厂商是1到65535。如果一端配了0,另一端可能不识别。建议用默认值或中间值。

第四,M-LAG等高级特性不互通。华为的M-LAG和其他厂商的类似技术(如某厂商的vPC)不能直接对接,需要走标准LACP。这个在规划阶段就要确认清楚。

4.4 日常维护与监控建议

LACP链路配好之后不是就没事了,日常维护要做几件事:

定期检查成员口状态。用display eth-trunk 1 verbose查看每个成员口的详细状态,包括LACP协商状态、活跃状态、收发包统计。如果发现某个口长期没有流量,可能是负载分担问题,也可能是这个口有问题。

监控LACP报文收发计数。用display lacp statistics eth-trunk 1查看LACPDU的收发计数。如果发送计数正常但接收计数为0,说明对端没有回LACPDU,协商有问题。

配置告警。华为交换机支持LACP状态变化的告警,可以在网管系统上配置Trap接收。这样一旦成员口状态变化,网管能第一时间知道,不用等用户报障。

变更前先备份配置。LACP相关的配置变更(比如调整优先级、修改负载分担模式)可能会短暂中断业务,建议在业务低谷期操作,并且提前备份配置文件。

我个人在实际操作中的体会是,LACP本身的技术原理并不复杂,但实际项目中的问题往往出在细节上——物理链路质量、两端配置一致性、负载分担模式匹配度,这些才是决定聚合链路是否稳定的关键。配置命令敲下去只是开始,后续的监控和调优才是真正体现功力的地方。还有一个小技巧:如果条件允许,在正式割接前先用测试仪或者两台测试交换机做一遍LACP协商测试,确认配置无误后再上现网,能避免很多不必要的麻烦。

相关新闻

嵌入式三阶RC低通滤波器定点化实现:移位替代除法优化MCU性能

嵌入式三阶RC低通滤波器定点化实现:移位替代除法优化MCU性能

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

2026/10/20 1:36:03 阅读更多 →
基于Springboot农业设备租赁系统【附源码+文档】

基于Springboot农业设备租赁系统【附源码+文档】

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

2026/10/20 1:36:03 阅读更多 →
Thread网状网络性能实测:延迟、吞吐与工程部署避坑指南

Thread网状网络性能实测:延迟、吞吐与工程部署避坑指南

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

2026/10/20 1:35:03 阅读更多 →

最新新闻

从URL取参到Cookie操作:前端开发完整指南与踩坑记录

从URL取参到Cookie操作:前端开发完整指南与踩坑记录

老读者可能还记得,我之前在某公司的运营后台系统里做过一次页面重构,其中有个特别不起眼但又绕不开的需求:从前端拿 URL 上携带的参数,顺手把一些状态写进 Cookie。听起来简单,真正动手的时候才发现,这里面…

2026/10/20 2:54:46 阅读更多 →
不复杂的复杂度:Java开发者必备的大O分析指南

不复杂的复杂度:Java开发者必备的大O分析指南

第八篇了。前面我们用了几篇的篇幅,把Java的语法、面向对象、集合框架、I/O、异常这些基础内容过了一遍。今天想插一个看起来不太一样、但实际非常重要的主题——复杂度分析。为什么在这个节点讲它?因为我发现很多人在前面那些内容学完之后,开…

2026/10/20 2:54:46 阅读更多 →
需求分级与优先级管理:产研团队高效协作的落地指南

需求分级与优先级管理:产研团队高效协作的落地指南

周五下午三点,我正在跟团队过下一迭代的排期。会议室的门被推开,某业务线负责人带着一份PPT走进来,说有一位大客户急需一个定制功能,客户已经在催,下周要看到演示,否则可能影响续约。会议室安静了几秒&…

2026/10/20 2:54:46 阅读更多 →
降AI率工具实测:九类工具原理、风险与一套可复用工作流

降AI率工具实测:九类工具原理、风险与一套可复用工作流

开头部分可以这么写:最近不少本科生来找我看论文初稿,十份里有八份开头都是“随着社会的不断发展”,第二段必是“综上所述”。一问才知道,都是让AI先写一版,自己再改,改完一检测,“AI率”飙到百…

2026/10/20 2:54:46 阅读更多 →
Llama 2 提示词完全指南:模板、参数与实战技巧

Llama 2 提示词完全指南:模板、参数与实战技巧

最近几周我一直在折腾基于 Llama 2 的几个实际项目,从本地部署到 API 接入都走了一遍。反复试下来发现一个很多人容易忽略的事实:Llama 2 和 GPT 系列这类闭源模型的对话习惯差异非常大,直接把原来惯用的提示词搬过去,效果会肉眼可…

2026/10/20 2:54:46 阅读更多 →
大模型Skills应用实战:在Trae中把提示词变成可复用工作流

大模型Skills应用实战:在Trae中把提示词变成可复用工作流

这个系列写到第14篇,我聊点真正能提效的东西——大模型Skills应用。之前几篇要么在讲模型能力边界,要么在讲上下文工程,这次把视角落到一个具体场景:在Trae这款AI原生IDE里,怎么把Skill从"听说过"变成"…

2026/10/20 2:53:45 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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 阅读更多 →