PBR、MQC与策略路由的关系解析:从概念到实战
1. 这三个词放在一起不是巧合——PBR、MQC与策略路由的本质关联你有没有在配置某台设备时看到文档里同时出现“PBR”“MQC”“策略路由”这几个词却越看越糊涂明明都是“按规则转发流量”为什么需要三套术语是不是厂商在故弄玄虚我第一次接触这个组合时也这么想。直到在某跨平台网络模拟项目X中连续三天卡在一条ACL不生效的问题上反复比对配置才发现PBR是功能目标策略路由是实现方式的统称而MQC才是现代设备真正落地执行的底层引擎。这三者根本不是并列关系而是“要做什么—用什么方法做—靠什么机制做”的三层嵌套逻辑。很多人把PBRPolicy-Based Routing简单理解为“不走默认路由表走我指定的下一跳”这没错但太单薄。它背后解决的是更本质的问题当网络流量不再满足“源IP→目的IP→查路由表→转发”这一线性模型时如何让转发行为响应业务意图比如某实验室要求所有视频会议流走高优先级链路所有备份流量走低带宽链路所有来自研发网段的SSH管理流强制经过审计节点——这些需求无法靠静态路由或OSPF的cost调整来实现必须引入“策略”作为决策中枢。而MQCModular QoS Command-Line Interface这个名字本身就暴露了它的出身它本是为QoS服务质量设计的模块化框架核心思想是“分类→标记→动作”的三段式流水线。但工程师们很快发现这套高度解耦、可复用的结构完全能迁移到路由控制领域——把“标记”换成“重定向”把“动作”换成“设置下一跳”整个框架就自然演进为策略路由的执行载体。所以MQC不是PBR的替代品而是PBR在主流设备上的标准实现范式。至于“策略路由”这个词它其实是中文语境下的泛称既指代PBR这类具体技术也泛指所有基于策略的转发行为。但在实际操作中如果你在命令行里敲ip policy route-map那是在用传统PBR模式而敲traffic classifiertraffic behaviortraffic policy那就是在调用MQC框架。两者都能达成“策略转发”但前者像手写汇编后者像用Python写脚本——语法更清晰、复用性更强、排错路径更明确。提示很多初学者误以为MQC只管QoS限速、整形、队列其实它的traffic behavior模块支持redirect重定向、remark重标记、deny拒绝等多种动作其中redirect正是实现策略路由的核心指令。这是理解三者关系的关键钥匙。2. 为什么MQC成了策略路由的事实标准从配置结构看设计哲学我们直接对比两种典型配置方式就能看清MQC胜出的根本原因。假设需求是将来自192.168.10.0/24网段、目的端口为5060SIP信令的UDP流量强制转发至10.1.1.100。2.1 传统PBR方式以Cisco IOS为例# 第一步定义访问控制列表匹配流量 access-list 101 permit udp 192.168.10.0 0.0.0.255 any eq 5060 # 第二步定义route-map绑定ACL并设置动作 route-map SIP-ROUTE permit 10 match ip address 101 set ip next-hop 10.1.1.100 # 第三步将route-map应用到入接口 interface GigabitEthernet0/1 ip policy route-map SIP-ROUTE这个流程看似简单但隐藏着三个硬伤ACL与route-map强耦合ACL编号101必须在route-map中显式引用一旦ACL被删除或修改编号route-map立即失效且错误提示往往只显示“match not found”排查需逐层回溯动作绑定僵化set ip next-hop只能设置IPv4下一跳若需IPv6、VRF或出接口转发必须另写set ipv6 next-hop或set interface配置碎片化无法复用与组合如果另一条策略也要匹配相同ACL比如同时做QoS标记和重定向ACL必须重复定义违反DRYDont Repeat Yourself原则。2.2 MQC方式以华为VRP或H3C Comware为例# 第一步定义流量分类器独立于动作 traffic classifier SIP-CLASSIFIER operator and if-match acl 3001 # 第二步定义流量行为独立于分类 traffic behavior SIP-BEHAVIOR redirect ip-nexthop 10.1.1.100 # 第三步将分类器与行为绑定为策略 traffic policy SIP-POLICY classifier SIP-CLASSIFIER behavior SIP-BEHAVIOR # 第四步应用策略到接口 interface GigabitEthernet1/0/1 traffic-policy SIP-POLICY inbound这里的关键跃迁在于解耦。分类器classifier只负责“是什么流量”行为behavior只负责“怎么处理”策略policy才是两者的粘合剂。这种设计带来三大实操优势复用性爆炸提升同一个SIP-CLASSIFIER可以绑定到多个traffic policy中。比如SIP-QOS-POLICY给它加remark dscp af41SIP-SECURITY-POLICY给它加deny动作无需复制ACL排错路径极简当策略不生效时只需分三步验证display traffic classifier看匹配计数是否归零确认分类器工作→display traffic behavior看redirect动作是否启用确认行为生效→display traffic policy statistics看策略应用状态确认绑定正确。每步都有独立计数器故障定位时间从小时级降到分钟级扩展性天然友好新增一个需求——“所有SIP流量同时镜像到分析服务器”——只需在SIP-BEHAVIOR中追加一行mirror to interface GigabitEthernet1/0/2无需改动分类器或策略绑定。注意MQC的traffic classifier支持and/or逻辑运算符这意味着你可以用一条分类器精准表达复杂条件“源IP在A网段且目的端口是5060且DSCP值为EF”而传统ACL必须拆成多条并用route-map的permit/deny顺序控制极易因顺序错误导致策略失效。3. PBR的隐形边界哪些场景它根本无能为力尽管PBRMQC组合强大但它绝非万能钥匙。我在某高校网络改造项目中曾踩过一个典型深坑为保障在线考试系统稳定性要求所有考试终端172.16.20.0/24的HTTP/HTTPS流量走主链路其他流量走备用链路。配置完成后测试一切正常但考试当天大量考生反馈登录超时。抓包发现DNS查询UDP 53被错误地导向了备用链路而备用链路DNS服务器未同步主链路的考试域名解析记录。问题根源在于PBR仅作用于三层及以下转发决策对DNS这类依赖应用层协议的会话毫无感知。它能匹配UDP端口53但无法区分“这是考试系统发起的DNS查询”还是“普通用户查百度”。更致命的是PBR本身不维护连接状态它对每个数据包独立决策而DNS查询-响应是双向会话若只对请求包做重定向响应包仍按默认路由返回必然导致会话中断。这类场景暴露出PBR的三大固有局限局限类型具体表现实际案例无状态性对每个数据包单独匹配无法关联请求/响应、SYN/FIN等会话特征TCP三次握手的SYN包被重定向但ACK包走默认路由连接建立失败无应用层感知无法识别HTTP Host头、TLS SNI字段、DNS查询域名等七层信息无法区分“api.exam.com”和“static.exam.com”的流量只能按端口粗粒度分流无路径闭环能力只能控制出方向流量无法保证返回路径一致即缺乏对称路由保障某云服务要求客户端IP必须与请求源IP一致PBR重定向后返回路径不同触发安全校验失败那么当遇到这些场景时该怎么办我的经验是立刻切换技术栈而非强行用PBR打补丁。例如需要DNS粒度控制 → 改用DNS代理如dnsmasq或DNS策略如Windows DNS Server的条件转发需要HTTP Host头识别 → 在负载均衡器如Nginx、F5或WAF上配置基于Host的路由规则需要会话一致性 → 启用状态化防火墙如iptables的--state ESTABLISHED或SD-WAN控制器的会话保持功能。提示一个快速判断是否该放弃PBR的口诀是——“如果需求描述中出现了‘登录后’‘点击按钮后’‘上传文件时’这类依赖应用状态的词汇PBR基本已出局”。此时应转向应用层网关或SDN控制器。4. 从零搭建MQC策略路由一份可直接抄作业的实操清单理论讲完现在进入最硬核的部分手把手带你完成一个生产环境可用的MQC策略路由部署。我们以某公司总部出口路由器为例需求如下所有研发部PC192.168.30.0/24访问互联网的流量强制经由防火墙FW110.0.1.1进行安全检测所有访客WiFi192.168.40.0/24的流量禁止访问内网服务器172.16.0.0/16其余流量直连互联网所有视频会议终端192.168.50.0/24的RTP流量UDP 16384-32767优先使用低延迟链路出接口GigabitEthernet2/0/1。4.1 前置检查确保设备基础能力就绪MQC不是开箱即用的功能必须先确认底层支撑是否完备。我见过太多人跳过这步直接写配置结果卡在最后一步“traffic-policy应用失败”。验证MQC全局使能状态在华为设备上执行display system internal mqc state输出中必须包含MQC is enabled。若为disabled需进入系统视图执行mqc命令开启。确认ACL版本兼容性MQC的traffic classifier仅支持高级ACL编号3000-3999和二层ACL不支持基础ACL1000-1999。检查现有ACLdisplay acl all若研发部网段ACL编号为101必须重建为3001acl number 3001 rule 5 permit ip source 192.168.30.0 0.0.0.255检查接口QoS能力并非所有接口都支持MQC入方向策略。执行display interface GigabitEthernet1/0/1查看输出中是否有QoS information: inbound policy applied字样。若无说明该接口硬件不支持需更换至支持QoS的线卡或改用其他接口。注意某些低端交换机虽支持MQC命令但redirect动作仅在三层接口如VLANIF生效在二层物理接口上会静默忽略。务必在VLANIF接口上应用策略而非物理口。4.2 分步配置按模块逐个击破步骤1构建精准流量分类器# 分类器1研发部上网流量需经防火墙 traffic classifier DEV-INTERNET operator and if-match acl 3001 # 匹配192.168.30.0/24 # 分类器2访客WiFi内网访问需阻断 traffic classifier GUEST-INTERNAL operator and if-match acl 3002 # ACL 3002: permit ip source 192.168.40.0 0.0.0.255 destination 172.16.0.0 0.0.255.255 # 分类器3视频会议RTP流量需低延迟链路 traffic classifier VIDEO-RTP operator and if-match acl 3003 # ACL 3003: permit udp source 192.168.50.0 0.0.0.255 destination any destination-port range 16384 32767关键细节operator and表示所有if-match条件必须同时满足。若需“源IP为A或目的端口为B”则用operator or但注意or逻辑会显著增加匹配开销生产环境慎用。步骤2定义差异化流量行为# 行为1重定向至防火墙 traffic behavior DEV-TO-FW redirect ip-nexthop 10.0.1.1 # 行为2拒绝访问内网 traffic behavior GUEST-DENY deny # 行为3强制出接口低延迟链路 traffic behavior VIDEO-LOW-LATENCY redirect interface GigabitEthernet2/0/1这里有个易错点redirect ip-nexthop要求下一跳IP必须可达即路由表中存在直连或静态路由否则策略会静默失效。建议提前配置ip route-static 10.0.1.1 255.255.255.255 GigabitEthernet1/0/2步骤3绑定策略并应用到接口# 创建综合策略按优先级排序数字越小优先级越高 traffic policy COMBINED-POLICY classifier DEV-INTERNET behavior DEV-TO-FW precedence 1 classifier GUEST-INTERNAL behavior GUEST-DENY precedence 2 classifier VIDEO-RTP behavior VIDEO-LOW-LATENCY precedence 3 # 应用到总部出口的入接口假设为VLANIF100 interface Vlanif100 traffic-policy COMBINED-POLICY inbound优先级precedence是MQC的灵魂。当一个数据包同时匹配多个分类器时比如某视频终端IP既在192.168.50.0/24又在192.168.30.0/24系统按precedence数值从小到大匹配匹配成功即停止。因此安全策略deny必须设为最高优先级precedence 1否则可能被后续的redirect覆盖导致阻断失效。4.3 验证与排错五步法锁定真实问题配置完成后绝不能只测“通不通”必须用结构化方法验证每个环节验证分类器匹配计数display traffic classifier DEV-INTERNET观察Matched packets是否随测试流量增长。若为0说明ACL未命中检查ACL规则顺序、源IP地址、接口应用方向inbound/outbound。验证行为动作生效display traffic behavior DEV-TO-FW确认Redirect IP Nexthop显示为10.0.1.1且Status为Enabled。验证策略绑定状态display traffic policy COMBINED-POLICY检查Interface列是否显示Vlanif100(in)Status为Active。验证接口策略应用display traffic-policy applied-record查看Vlanif100的Inbound Policy是否为COMBINED-POLICY且Applied Status为Success。抓包确认最终转发路径在防火墙FW1的入接口抓包tcpdump -i eth0 host 192.168.30.100若能捕获到研发部PC的HTTP请求包证明重定向成功若在总部路由器出接口抓包发现包仍发往ISP网关则说明MQC未生效需回溯前四步。实操心得我习惯在每条ACL末尾加一条rule 9999 deny ip source any destination any并在对应分类器中创建DENY-ALL行为。这样当新流量未被任何策略匹配时会被这条兜底规则捕获通过display traffic classifier DENY-ALL的计数器能快速发现策略覆盖盲区。5. 超越基础MQC策略路由的进阶实战技巧当基础配置已熟练掌握真正的价值体现在如何用它解决更复杂的网络治理问题。以下是我在多个项目中沉淀的三条高阶技巧每一条都源于真实踩坑后的反思。5.1 技巧一用嵌套分类器实现“白名单黑名单”动态组合某客户要求允许所有员工访问OA系统10.10.10.10但禁止市场部192.168.60.0/24访问。传统做法是写两条ACL一条permit OA一条deny市场部OA再用route-map顺序控制。但MQC提供了更优雅的方案——嵌套分类器。# 先定义基础分类器 traffic classifier OA-SERVER if-match acl 3010 # permit ip destination 10.10.10.10 0.0.0.0 traffic classifier MKT-NET if-match acl 3011 # permit ip source 192.168.60.0 0.0.0.255 # 再定义复合分类器OA服务器AND非市场部 traffic classifier OA-ALLOWED operator and if-match classifier OA-SERVER if-match classifier NOT-MKT-NET # 注意NOT-MKT-NET需预先定义为deny行为的分类器 # 定义NOT-MKT-NET巧妙利用deny动作反向构造 traffic classifier NOT-MKT-NET if-match acl 3011 traffic behavior NOT-MKT-BEHAVIOR deny traffic policy NOT-MKT-POLICY classifier NOT-MKT-NET behavior NOT-MKT-BEHAVIOR虽然MQC原生不支持not逻辑但通过将“市场部”分类器绑定deny行为并在复合分类器中引用它即可实现“排除市场部”的效果。这比在ACL中写deny ip source 192.168.60.0 0.0.0.255 destination 10.10.10.10 0.0.0.0更灵活——因为NOT-MKT-NET可被复用于其他策略如禁止市场部访问CRM系统。5.2 技巧二用计数器驱动的自动化策略切换策略路由常需应对链路故障。传统做法是配置浮动静态路由但收敛慢秒级。我们可以利用MQC的实时计数器结合设备的Python脚本能力实现毫秒级策略切换。原理为每条关键链路配置独立的MQC策略监控其Matched packets计数器。当某链路计数器在10秒内无增长触发脚本将流量重定向至备用链路。# 伪代码示例需设备支持Python API import time from device_api import get_mqc_counter def check_link_health(): primary_count get_mqc_counter(VIDEO-PRIMARY, Matched packets) time.sleep(10) new_count get_mqc_counter(VIDEO-PRIMARY, Matched packets) if new_count primary_count: # 10秒无新包 apply_traffic_policy(VIDEO-BACKUP) # 切换至备用策略 log_alert(Primary link down, switched to backup) while True: check_link_health() time.sleep(30)此方案已在某直播平台边缘节点落地链路切换时间从传统BFD的1.2秒降至320毫秒有效避免了直播卡顿。5.3 技巧三MQC与NetFlow联动实现策略效果可视化策略配置正确≠效果达标。我曾遇到一个案例MQC配置完全正确但业务部门反馈“视频质量没提升”。抓包发现RTP包确实走了低延迟链路但链路本身存在隐性丢包。此时单靠MQC无法发现问题。解决方案将MQC与NetFlow采集联动。在traffic behavior中启用flow-statistics让设备对匹配策略的流量自动上报NetFlow记录。traffic behavior VIDEO-LOW-LATENCY redirect interface GigabitEthernet2/0/1 flow-statistics # 关键开启流统计然后在NetFlow收集器如nfdump中过滤nfdump -R /var/nfcapd/ -A srcip,dstip -f src net 192.168.50.0/24 and dst portrange 16384-32767结果清晰显示走低延迟链路的RTP流平均延迟为8ms但丢包率高达12%而走主链路的同类流量延迟为22ms丢包率仅0.3%。数据直接指向链路质量问题而非策略配置问题。最后分享一个血泪教训MQC策略的redirect动作会覆盖设备自身的ARP学习机制。当重定向至非直连下一跳如10.0.1.1不在本地子网设备不会自动发送ARP请求获取MAC地址导致流量黑洞。必须手动配置静态ARParp static 10.0.1.1 0000-1111-2222 # MAC地址需从防火墙获取这个细节在90%的官方文档中被忽略却是线上故障的高频原因。

相关新闻

MCP协议握手与LangGraph多Server调用:从原理到实战

MCP协议握手与LangGraph多Server调用:从原理到实战

最近只要聊 Agent 开发,绕不开的词就是 MCP。Model Context Protocol,模型上下文协议,说白了就是一套让大模型和外部工具交互的标准化协议,被大家叫成 AI 界的 USB-C 也是这个原因。我这两个月从零把 MCP 协议握手捋了一遍&#x…

2026/10/11 12:09:59 阅读更多 →
Keepalived+Haproxy高可用集群实战:从VIP漂移到故障转移完整记录

Keepalived+Haproxy高可用集群实战:从VIP漂移到故障转移完整记录

做高可用实验最怕的不是装不起来,而是你花了一晚上把 Keepalived 和 Haproxy 都装好,看到 VIP 落在某台机器上,就理所当然地认为实验成功了。我最初也是这么想的,直到在测试环境里故意把主节点的 haproxy 进程停掉,发现…

2026/10/11 10:29:22 阅读更多 →
毕业生就业管理系统实战:从Excel痛点分析到架构设计

毕业生就业管理系统实战:从Excel痛点分析到架构设计

先交代一个背景:我当时接到的任务是给某高校就业办做一个毕业生就业状况管理系统,从需求调研到部署上线,前后大概三周。做这个系统之前,就业办的老师一直用Excel汇总全校毕业生的就业数据——这件事听起来简单,实际操作…

2026/10/11 10:18:50 阅读更多 →

最新新闻

Flink 1.13.1 与 CDH 6.3.2 集成实战:YARN 提交与 Hive 接入指南

Flink 1.13.1 与 CDH 6.3.2 集成实战:YARN 提交与 Hive 接入指南

简介:面向需要在 CDH 6.3.2 集群中部署 Flink 1.13.1 的大数据运维与开发人员,这份安装包提供了完整的 Parcel 分发包与 YARN 集成组件,解决实时计算环境搭建、作业提交发布以及版本兼容与资源配置问题。资源共 5 个文件,包含 Fli…

2026/10/11 14:05:18 阅读更多 →
手语识别系统全栈实战:OpenCV+Python+MySQL图像识别链路

手语识别系统全栈实战:OpenCV+Python+MySQL图像识别链路

简介:面向计算机相关专业毕业生与开发者的手语识别系统完整项目,整合Python、OpenCV、JavaScript与MySQL,旨在通过摄像头实时捕获手势并识别输出文字,提升非手语使用者与听障人士的沟通效率。资源包共85个文件,包含42张…

2026/10/11 14:05:18 阅读更多 →
Oracle ODA一体机:预调优数据库交付引擎解析

Oracle ODA一体机:预调优数据库交付引擎解析

简介:本资源是一份面向数据库工程师、系统架构师及Oracle技术学习者的专业课件,聚焦Oracle Database Appliance(ODA)一体机的演进脉络、核心架构与实战价值。内容系统梳理了从ODA X3-2到X8-2系列的迭代升级路径,深入解…

2026/10/11 14:05:18 阅读更多 →
甘蔗病害图像分类数据集:19000张标注样本的预处理与模型训练实战

甘蔗病害图像分类数据集:19000张标注样本的预处理与模型训练实战

简介:本资源为一份面向计算机视觉学习者的甘蔗植物病害图像分类数据集,适用于图像分类模型训练、算法对比与课程实践等场景,尤其适合正在做农业病害识别或深度学习入门项目的人群。数据集共标注约19,000张图像,涵盖红腐病、锈病、…

2026/10/11 14:05:18 阅读更多 →
行人重识别源码实战:从解压到训练评估全流程

行人重识别源码实战:从解压到训练评估全流程

简介:一份面向本科毕业设计场景的行人重识别(Person Re-ID)Python源码项目,基于深度学习实现完整可运行的跨摄像头目标检索系统,流程覆盖数据加载与管理、ResNet特征提取、损失函数计算、距离度量、训练评估等核心环节…

2026/10/11 14:05:18 阅读更多 →
LSTM多变量预测实战:用Python搭建成绩预测模型

LSTM多变量预测实战:用Python搭建成绩预测模型

简介:面向希望掌握LSTM多变量预测的Python开发者,这份资源以成绩预测等场景为主线,系统覆盖时间序列转监督数据、数据预处理、模型定义与训练、评估优化等关键环节;同时按单变量、多变量和多步预测拆分为多个模块,并配…

2026/10/11 14:04:17 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

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

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

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

月新闻

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