VRRP网关冗余实验:从原理到主备切换配置与验证

做网络这么多年,网关冗余这事儿一直是割接和运维里绕不开的坎。设备再稳,也怕板卡故障或者上联中断,一旦终端网关失效,整片业务直接就哑了。VRRP(虚拟路由冗余协议)就是用来填这个坑的标准方案,我这次完整跑了一遍实验,把配置、验证、故障切换的细节都做了记录,这篇就是完整的实验复盘。

如果你是刚接触网络的新人,或者正准备在现网部署网关冗余,这篇内容可以直接拿来做参考。我尽量把每一步的原理和操作意图都说清楚,包括那些配置手册上不会写的坑。

1. 实验设计思路与网络拓扑规划

1.1 为什么要做VRRP实验:网关单点故障的真实痛点

先说场景。一个典型的三层组网里,终端默认网关一般指向核心设备的接口地址。如果只有一台设备承担网关,那这台设备一旦重启、板卡故障或者上联链路中断,所有依赖这个网关的终端都会断网。很多小规模网络为了省成本就只放一台核心,出问题只能干等设备恢复,业务中断时间完全不可控。

VRRP的设计目标很明确:把多台设备“虚拟”成一个网关,终端看到的网关地址是一个虚拟IP,实际由其中一台设备(Master)转发流量,另一台或多台设备(Backup)在Master故障时无缝接替。这个“无缝”并不是绝对意义,但切换时间通常可以控制在秒级甚至毫秒级,比人工介入快得多。

所以实验的核心价值不是“配好能通”,而是搞清楚三件事:虚拟IP和虚拟MAC是怎么工作的、Master和Backup之间靠什么协议报文维持状态、故障发生时切换和回切的行为到底受哪些参数影响。

1.2 实验拓扑:两台三层设备做VRRP组

这次实验我用了两台三层交换机做网关冗余,下接一台二层交换机挂两台PC终端。拓扑结构不复杂,但足以验证VRRP的所有核心行为。

  • 设备A和设备B分别是两台三层交换机,互连接口走三层链路(同一个广播域)
  • 设备A的接口地址规划为192.168.10.2/24,设备B为192.168.10.3/24
  • VRRP虚拟组规划为组10,虚拟IP为192.168.10.1/24
  • 设备A设置优先级120,作为Master;设备B保持默认优先级100,作为Backup
  • 终端PC1和PC2的网关都指向192.168.10.1

这个设计是典型的“一主一备”模型。有人会问,为什么不直接把设备A的物理接口地址192.168.10.2直接配成终端网关?因为物理接口挂了网关就没了,虚拟IP存在的意义就是网关地址与物理设备解耦。需要注意虚拟IP不能和任何一台设备的物理接口IP重复,否则会造成地址冲突。

1.3 设备选型和模拟环境说明

实验环境可以在真实设备上做,也可以用网络模拟器完成。我用的是模拟器环境,原因很简单:可以随时抓包、反复修改配置测试故障场景,而且不会因为误操作影响现网。模拟器对VRRP协议的支持已经相当成熟,实验结论可以直接迁移到真实设备。

如果手头有真机,建议优先用真机跑一遍,毕竟真实设备的转发时延、CPU处理能力、协议报文交互的时序都和模拟器有差异。但作为学习和验证场景,模拟器足够。

2. VRRP核心原理拆解:协议机制和参数计算

2.1 虚拟IP与虚拟MAC的关系

VRRP组会生成一个虚拟MAC地址。标准格式是00-00-5E-00-01-XX,其中XX是VRID(VRRP组号)的十六进制表示。比如VRID为10,虚拟MAC就是00-00-5E-00-01-0A。

这个虚拟MAC是终端ARP解析的关键。终端要访问网关时,发送ARP请求询问192.168.10.1对应的MAC地址,Master设备会响应这个虚拟MAC。这样终端数据帧的目的MAC就是虚拟MAC,不管实际转发的是哪台设备,二层封装始终不变,这就是终端无感知切换的基础。

需要注意,不同厂商对虚拟MAC的格式定义完全一致,因为VRRP是IETF标准协议(RFC 3768,后续更新为RFC 5798),这一点比某些私有协议更有优势,跨厂商设备也能组成VRRP组。

2.2 VRRP报文与状态机:Master和Backup的博弈

VRRP报文是IP协议号112的报文,目的地址是组播224.0.0.18,TTL固定为255。设备通过周期性地发送VRRP通告报文来宣告自己的存活状态。

默认通告间隔是1秒。Master每隔1秒发送一次通告,Backup接收通告后启动一个Master_Down定时器(通常为3倍通告间隔,即3秒)。如果Backup在3秒内没有收到Master的通告,就认为Master故障,自己切换为Master。

这里有个容易被忽视的细节:通告间隔越大,消耗的带宽越小,但故障切换时间越长。如果现网对切换时间有要求,可以通过调整通告间隔来优化。VRRPv3还支持毫秒级通告间隔,但过小的间隔会占用设备CPU资源,需要权衡。

状态机有三种:Initialize(初始状态)、Master(主状态)、Backup(备份状态)。设备刚配置VRRP时进入Initialize,等待接口UP,然后根据优先级选举决定进入Master还是Backup。

2.3 优先级与抢占:主备是怎么选出来的

VRRP优先级范围是1到254,数值越大越优先。默认优先级是100,通过手动配置可以把某台设备抬高。

选举规则简单粗暴:优先级高的成为Master;如果优先级相同,则接口IP地址大的成为Master。比如设备A地址是192.168.10.2,设备B是192.168.10.3,优先级相同的情况下,设备B会赢得选举,这一点经常有人搞反。

抢占模式默认开启。抢占的意思是:如果当前Master的优先级低于另一台Backup,优先级高的Backup会主动抢占成为Master。这个特性在生产环境里要小心使用,配合上行链路监测时容易造成主备频繁切换。

2.4 定时器计算与切换时间评估

假设通告间隔为1秒:

  • Master_Down定时器 = 3 × 通告间隔 = 3秒
  • 加上报文发送周期的偏差,实际故障感知时间通常在3到4秒之间
  • 切换完成后,终端ARP缓存中的虚拟IP对应虚拟MAC不变,因此无需重新学习ARP,流量自动切换到新Master

如果希望切换更快,可以把通告间隔调到200ms(0.2秒),Master_Down定时器变为0.6秒。但要注意,设备CPU需要处理更频繁的报文,且网络拥塞时可能因报文丢失导致误切换。我的建议是生产环境保持默认,除非业务有明确的秒级切换SLA要求再做调优。

3. 实验环境准备与VRRP配置实操

3.1 基础配置:接口、VLAN和终端网关

先把基础网络打通。设备A和设备B接入二层交换机,终端PC也接入同一VLAN。这里的关键是确保两台三层设备的VRRP接口处于同一个二层广播域,否则VRRP报文无法正常交互。

接口地址配置如下(以设备A为例,命令风格以某主流厂商为准,各厂商命令略有差异但思路一致):

interface Vlanif10 ip address 192.168.10.2 255.255.255.0

设备B的Vlanif10地址配置为192.168.10.3/24。终端PC的网关指向192.168.10.1。

基础配置完成后,先验证终端之间的三层互通。如果VRRP还没配置,终端网关指向物理接口地址也能通,但只有配置VRRP后,网关才具备冗余能力。

3.2 配置VRRP组:主设备和备用设备

设备A配置VRRP组10,虚拟IP为192.168.10.1,优先级设为120:

interface Vlanif10 vrrp vrid 10 virtual-ip 192.168.10.1 vrrp vrid 10 priority 120 vrrp vrid 10 preempt-mode timer delay 0

设备B配置同一个VRRP组10,使用默认优先级:

interface Vlanif10 vrrp vrid 10 virtual-ip 192.168.10.1

注意两台设备的VRID、虚拟IP必须完全一致,否则不会形成同一个VRRP组。虚拟IP配置后,接口地址不用再手动添加虚拟IP作为从地址,协议会自动处理。

配置完成后,查看VRRP状态。设备A应该显示Master,设备B显示Backup:

display vrrp

正常输出里可以看到VRRP组10的状态、Master设备的实际IP、优先级、抢占模式等信息。

3.3 验证终端与网关:从终端视角看VRRP

终端PC1上查看ARP表,网关192.168.10.1对应的MAC应该是虚拟MAC。在命令行下执行:

arp -a

可以看到192.168.10.1对应的MAC形如00-00-5e-00-01-0a。这个MAC就是VRRP虚拟MAC,跟实际Master设备的物理接口MAC完全不同。

然后用终端持续Ping虚拟网关或者外网地址,观察丢包情况。正常稳态下Ping应该零丢包。

3.4 配置抓包观察VRRP报文

为了更直观地理解VRRP的工作过程,我在设备接口上做了抓包。抓包关键点:

  • 目的地址224.0.0.18的组播报文就是VRRP通告
  • 协议字段为112
  • 报文中包含VRID、优先级、虚拟IP等信息,可以实时观察到Master状态变化

捕获到正常情况下Master每1秒发送一个通告报文。如果直接看报文内容,能发现通告报文的源MAC就是虚拟MAC,这就是为什么终端不需要感知Master切换。

4. 故障切换与回切测试实录

4.1 Master故障模拟:拔线断网

模拟故障最直接的办法是把设备A的Vlanif10接口强制关闭:

interface Vlanif10 shutdown

接口DOWN后,设备A立即停止发送VRRP通告。设备B在Master_Down定时器超时后,将状态从Backup切换为Master,开始转发虚拟IP的流量。

我在终端上持续Ping虚拟网关,观察切换过程中的丢包情况。实测结果:终端持续Ping,切换发生时出现约3到4个丢包,对应Master_Down定时器的3秒等待时间。切换完成后Ping恢复,无需在终端做任何操作。

这个结果符合预期,也验证了切换时间主要由Master_Down定时器决定,而不是设备转发性能。

4.2 Master恢复回切:抢占模式的关键行为

故障恢复测试:重新打开设备A的接口:

interface Vlanif10 undo shutdown

因为设备A配置了优先级120,且抢占模式默认开启,所以设备A接口UP后立即抢占成为Master,设备B退回Backup。

在实际操作中,端口恢复后接口需要经历UP和路由收敛过程,VRRP抢占会稍微延迟,但基本是秒级完成。终端再次Ping虚拟网关,整个过程没有丢包,因为Master切换时虚拟MAC没有变化,终端的ARP缓存和流量转发路径无需更新。

这里要重点讲一下抢占模式的坑。如果设备A没有开启抢占模式(或者配置了关闭抢占),那么设备A恢复后不会自动夺回Master地位,设备B会一直保持Master,直到它故障或重启。这在某些场景下是故意的设计——避免主备频繁切换导致网络震荡,但在另一些场景下会造成流量路径不符合预期。配置前一定要和现网规划对齐。

4.3 上行链路故障:只断上联,不断接口

更贴近现网的一种故障:设备A的上联链路中断,但设备A本身接口还是UP状态。这种情况下,设备A仍然是Master,但流量其实已经无法转发到上游。

VRRP标准协议本身并不能感知这种“接口UP但实际不可用”的状态,需要依赖联动功能。常用的方案是配置上行链路监测:监控上联接口或特定IP的可达性,一旦异常,自动降低本设备VRRP优先级,让Backup抢占为Master。

部分厂商的实现是配置一个“降低优先级”的阈值,比如降低40:

interface Vlanif10 vrrp vrid 10 track interface GigabitEthernet0/0/0 reduced 40

如果上联接口DOWN,设备A的优先级从120降到80,低于设备B的100,设备B抢占成为Master。这种设计能真正做到“上联故障自愈”,而不仅仅是“设备故障自愈”。

4.4 主备同时故障的脑裂防护

VRRP还有一个重要特性:即使出现极端情况,比如Master和Backup之间的链路中断导致双方互相收不到通告,也只会出现状态翻转,不会出现双主同时转发冲突。因为VRRP报文的目的MAC和IP是组播地址,同一广播域内的设备都能收到;如果链路断了,双方都会认为对方故障,但只有优先级高的会先变成Master,优先级低的退让。

不过在部分厂商实现中,如果配置了不同VRID的VRRP组,或者使用了不同认证方式,就可能在同一个广播域里出现双主,这种属于配置错误,需要靠规范化配置来避免。

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

5.1 两台设备都显示Master(双主故障)

这是VRRP配置里最典型的故障现象。可能的原因:

  • 两台设备没有接入同一个二层广播域,VRRP报文互不可达
  • 两台设备的VRID不一致,形成了两个独立的VRRP组
  • 认证配置不一致,导致报文被丢弃
  • 配置了禁止VRRP报文产生的过滤规则,比如接口ACL丢包

排查思路:先在设备接口下抓包,确认能否收到对方的VRRP报文;再比对两台设备的VRID、虚拟IP、认证参数。

双主故障的危害很大,因为两台设备都会响应虚拟IP的ARP请求,终端的ARP表会在这两台设备的MAC之间震荡,导致流量来回窜动甚至丢包。

5.2 VRRP配置正确,但终端网关不通

终端Ping不通虚拟IP,但VRRP状态正常(Master和Backup各就各位)。参考排查路径:

  • 检查Master设备是否开启了接口的ARP代理或本地代理功能,有些情况下需要允许VRRP虚拟IP响应ARP
  • 检查Master设备的接口是否配置了过滤策略,比如端口安全或MAC过滤,可能把虚拟MAC过滤掉了
  • 检查终端侧ARP,确认学到的是虚拟MAC而非其他设备的物理MAC

有一次我排查了很久,最后发现是Master设备接口上配置了严格的入方向ACL,把VRRP报文也过滤掉了。这种问题链路状态完全正常,不看报文根本发现不了。

5.3 抢占配置引发的频繁切换

现网部署了VRRP后,主备可能频繁切换,终端侧表现为间歇性丢包或延迟波动。常见原因是:

  • 上行链路监测的阈值设置太敏感,接口短时抖动就触发优先级降低
  • 通告间隔配置过小,网络拥塞导致通告丢失
  • 两台设备的优先级差距太小,链路微抖就导致选举结果翻转

我的经验:优先级差建议在20以上,避免微小波动引发主备交替;上行链路监测要加延迟抑制(比如连续3次检测失败才降低优先级),同时设置回切延迟,防止接口恢复瞬间立刻抢占。

5.4 虚拟IP冲突与误配置

如果把虚拟IP配置成了某台物理设备的接口地址,或者被DHCP服务器分配给了终端,会造成地址冲突。VRRP的丢包现象会特别诡异——时通时不通。

配置前一定要确认虚拟IP是独立地址,不能和任何网络设备的接口地址重叠。另外,如果网络中还有DHCP服务,要把虚拟IP排除出地址池。

5.5 常见问题速查表

故障现象可能原因排查重点
双主状态VRID不一致 / 二层隔离 / 认证不一致抓包确认VRRP报文可达性,核对两端配置
网关不通但VRRP正常接口过滤策略 / DHCP地址冲突 / ARP学习异常检查ACL、ARP表、终端网关配置
主备频繁切换优先级差太小 / 链路监测太敏感拉大优先级差,加入抑制与回切延迟
切换时间长通告间隔过大调整通告间隔,检查设备CPU负载

6. 实验总结与经验沉淀

6.1 从实验到现网的关键认知

这个实验做完,我最大的感受是:VRRP配置本身不难,难点全在对协议细节的理解和故障场景的预判上。从原理层面掌握虚拟IP和虚拟MAC的解耦机制,才能理解为什么切换对终端是透明的;理解了Master_Down定时器,才能解释切换耗时的来源;理解了抢占模式,才能规划出符合业务预期的故障恢复路径。

现网部署VRRP时,我一般会额外关注几点:

  • 虚拟IP要提前规划,独立出地址段,不和设备接口地址、DHCP地址池重叠
  • 主备优先级差距拉大,避免因链路抖动造成主备翻转
  • 上行链路监测必须配合延迟抑制和回切延迟,否则监控接口本身就制造了故障
  • 部署前先做故障演练,至少覆盖接口故障、上联链路故障、设备重启三种场景

6.2 回切时机的一个经验细节

再分享一个细节:配置抢占模式后,主设备恢复时虽然有回切抢占,但回切过程并不是瞬时的,设备之间交互通告、重新选举需要时间。在PC持续Ping的场景下,回切一般不会产生丢包,但这取决于VRRP组内是否有其他Backup设备,以及终端的TCP连接状态。

如果现网有长连接业务(比如数据库连接、视频流),建议回切操作安排在业务低峰期,或者干脆关闭抢占,保持当前Master继续转发。这没有标准答案,完全看你对业务连续性的定义。

6.3 后续扩展方向

VRRP的应用可以进一步扩展。比如在多个VRRP组里让两台设备互为Master,实现负载均衡;或者结合监控和脚本实现故障时的自动告警。如果想深入了解,建议从VRRPv2和VRRPv3的报文格式对比入手,重点理解IPv6场景下VRRPv3的变化。

做实验这件事,最大的价值在于把协议从“书本上的定义”变成“自己动手验证过的认知”。如果你也在准备部署网关冗余,建议抽一个维护窗口,把主备切换、上联故障、设备重启这几个场景逐一跑一遍。现网环境越复杂,这种提前演练的价值就越明显。

相关新闻

基于Python的CNN花卉枯萎识别:从数据到训练全流程实战

基于Python的CNN花卉枯萎识别:从数据到训练全流程实战

最近接了个咨询,是个要做毕业设计的同学,题目是“基于Python的CNN卷积神经网络识别花卉是否枯萎”。听上去很标准的深度学习图像分类项目,但真正上手后才发现,这类题目的坑远比想象中多。标题里每个关键词——Python、CNN、卷积神…

2026/10/21 7:14:53 阅读更多 →
2026数字化口腔印模机器升级:口内扫描仪如何驱动椅旁全链路闭环落地?

2026数字化口腔印模机器升级:口内扫描仪如何驱动椅旁全链路闭环落地?

首段(核心需求覆盖) 传统硅橡胶物理印模在临床效率、患者舒适度与数据流转环节的固有瓶颈,正倒逼口腔诊疗链条从“取模—送技工所—等待修复体”的线性模式向椅旁即时闭环迁移。2025年全球数字化口腔印模机器市场规模约95.01亿元,…

2026/10/21 7:13:53 阅读更多 →
AgentEmulator:面向AI智能体的轻量级链上存证与可信验证框架

AgentEmulator:面向AI智能体的轻量级链上存证与可信验证框架

1. 项目概述:这不是又一个“AI区块链”概念玩具,而是一套可验证、可审计、可复现的智能体行为沙盒最近在几个技术社区里看到有人转发一份叫AgentEmulator的英文技术论文,标题里带着“区块链赋能的AI智能体可信基础设施实验平台”——光看这个…

2026/10/21 7:13:53 阅读更多 →

最新新闻

充电桩防占位实战:车牌识别+主动预警系统怎么做才有效

充电桩防占位实战:车牌识别+主动预警系统怎么做才有效

做了三年充电运营相关的项目,我一直觉得“车位被占”是比“充电桩故障”更让人头疼的问题。桩坏了至少还能报修等备件,但油车往充电位一停,或者充满电不挪车的“僵尸车”出现,整个站点的利用率直接腰斩。最近接触的“天曜WE P7 Ul…

2026/10/21 7:56:10 阅读更多 →
技术博客写作:如何识别并严守合规红线

技术博客写作:如何识别并严守合规红线

这个标题涉及的内容对应到严格的合规红线(包括“代理”等明确限定的词汇),无法围绕它展开操作型博文。抱歉,我帮不了这个忙。

2026/10/21 7:56:10 阅读更多 →
2026吃透分布式面试65问:从CAP到高并发核心考点全解析

2026吃透分布式面试65问:从CAP到高并发核心考点全解析

分布式系统是后端开发绕不开的主战场,不管是微服务架构、高并发场景,还是大数据量下的数据一致性,几乎每个中大型项目都在用它解决问题。面试官也正是看中了这一点,才会把分布式锁、分布式事务、分库分表、分布式ID、Netty这类问题…

2026/10/21 7:56:10 阅读更多 →
论文查重率从45%降到9%:降重技巧与工具实战指南

论文查重率从45%降到9%:降重技巧与工具实战指南

写这篇东西的时候,我刚从第四轮查重里爬出来。45%到9%,这六个百分点的跨度说实话我自己回头看都觉得有点不真实,但更真实的是中间那两个月反复改稿、反复提交、反复盯着一串串标红发愣的日子。作为一个2026届毕业生,我没有用什么开…

2026/10/21 7:56:10 阅读更多 →
VLC播放器C#开发:libvlc.dll跨进程音视频控制实战

VLC播放器C#开发:libvlc.dll跨进程音视频控制实战

简介:本资源是一套基于C#与VLC.DotNet库的Windows Forms播放器开发实战项目,面向.NET初学者及多媒体应用开发者,解决在VS2010环境下集成VLC核心功能(如视频渲染、播放控制、事件响应)的技术落地问题。压缩包共42个文件…

2026/10/21 7:56:10 阅读更多 →
垂类大模型成行业生产力:工业与芯片场景的落地路径解析

垂类大模型成行业生产力:工业与芯片场景的落地路径解析

最近圈子里比较有分量的一条消息,是某云厂商直接把工业、芯片两个方向的垂类大模型一起端了出来。标题里那句“不止模型,更是生产力”,在我看来才是真正的信息量所在——行业大模型这两年的叙事,终于从“我能做什么”切换到“我能…

2026/10/21 7:55:10 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →