华为eNSP策略路由实验:从配置到排错,避开模拟器那些坑

1. 策略路由到底解决的是什么问题

很多人第一次接触策略路由,是在一个很具体的场景里:公司有两条出口链路,一条贵但快,一条便宜但慢,老板要求"财务系统走快的,其他走便宜的"。这时候如果你只会配静态路由或者OSPF,会发现根本做不到——因为传统路由协议只看目的地址,谁先算出路由谁说了算,你没法按"谁发的包"或者"什么类型的包"来决定走哪条路。

策略路由(Policy-Based Routing,PBR)就是干这个的。它的核心思想一句话就能说清楚:路由决策不再只看目的IP,而是可以基于源IP、协议类型、端口号、报文长度、甚至时间段来选路。你可以把它理解成"路由界的VIP通道"——普通流量排队走默认路径,特定流量凭"身份"走专属通道。

在eNSP这个华为网络模拟器里做策略路由实验,最大的好处是你不用真买设备就能把整套逻辑跑通。但坑也在这里:模拟器毕竟不是真机,有些行为跟实际设备有细微差异,如果不注意,实验做通了到真机上照样翻车。我下面会把这些差异点都标出来。

先明确一下这篇文章适合谁看:如果你已经会配静态路由和OSPF,但对策略路由的概念还比较模糊,或者做过实验但没搞明白"为什么包没按我想的走",那这篇就是写给你的。如果你完全没碰过eNSP,建议先把基础拓扑搭建和接口配置过一遍再来看。

策略路由在eNSP里主要涉及三个工具:Traffic-Filter(流分类)、Traffic-Behavior(流行为)、Traffic-Policy(流策略)。这三个东西的关系是:流分类负责"抓谁",流行为负责"抓到之后干什么",流策略负责"把前两者绑在一起应用到某个接口上"。这个"分类-行为-策略"的三段式结构是华为设备做策略路由的标准范式,记不住这个框架,后面配命令就是瞎配。

还有一个容易混淆的点:策略路由和路由策略(Route-Policy)是两码事。路由策略是控制路由信息怎么传播和选优的,影响的是路由表;策略路由是控制数据包怎么转发,影响的是转发表。名字很像,作用层次完全不同。我在实验课上见过不止一个同学把这两个搞混,配了半天Route-Policy发现数据包根本不按预期走,原因就是搞错了对象。

2. 实验拓扑设计与地址规划的实际考量

2.1 为什么我建议用这个四路由器拓扑

做策略路由实验,拓扑不能太简单也不能太复杂。太简单了体现不出策略路由的价值——比如只有一条路,你策略个啥?太复杂了排查困难,一个包没走对,你都不知道是哪台设备的问题。

我推荐的拓扑是这样的:两台PC分别代表不同部门的终端,一台接入交换机(eNSP里用S5700就行),一台核心路由器R1作为策略执行点,R1上联两台出口路由器R2和R3,R2和R3各自连一个"外网"路由器R4来模拟互联网。PC1代表财务部门(网段192.168.10.0/24),PC2代表普通部门(网段192.168.20.0/24)。R1到R2的链路代表"快速链路",R1到R3的链路代表"备用链路"。

这个拓扑的好处是:R1是唯一的策略执行点,你只需要在一台设备上配置策略,排查范围可控。同时两条路径完全分离,你能清楚地看到流量到底走了哪边。R4的作用是让两条路径都有"目的地",否则你ping不通外网地址,没法验证。

地址规划我习惯这样分:互联链路用10.0.x.x/30的网段,x从0开始递增。比如R1-R2用10.0.0.0/30,R1的接口是10.0.0.1,R2的接口是10.0.0.2。R1-R3用10.0.0.4/30,R1是10.0.0.5,R3是10.0.0.6。R2-R4用10.0.0.8/30,R3-R4用10.0.0.12/30。R4上配一个Loopback0地址4.4.4.4/32来模拟外网目标。

注意:eNSP里配/30掩码的时候,接口地址要写全,比如ip address 10.0.0.1 30,不要写成ip address 10.0.0.1 255.255.255.252,虽然效果一样,但前者更符合华为设备的习惯写法。

2.2 基础路由打通是策略路由的前提

这一步很多人会跳过,直接去配策略路由,结果发现策略配了但流量还是不通。原因很简单:策略路由只是"选路",它不负责"让路通"。你得先把基础路由打通,确保每条路径单独拿出来都是通的,然后再用策略去控制"走哪条"。

具体操作:R1上配两条静态路由,分别指向R2和R3作为下一跳,目的网段是4.4.4.0/24。R2和R3上各配一条默认路由指向R4。R4上配两条回程路由,分别指向R2和R3,目的网段是192.168.10.0/24和192.168.20.0/24。这样整个网络全互通。

验证方法:在R1上用ping -a 192.168.10.1 4.4.4.4和ping -a 192.168.20.1 4.4.4.4分别测试,确保两个网段都能通。如果这时候不通,先别急着配策略路由,先把基础路由排查清楚。排查命令用display ip routing-table看路由表里有没有4.4.4.4的路由,用display ip interface brief看接口状态是不是Up。

我见过一个典型问题:有人在R1上配了ip route-static 4.4.4.0 24 10.0.0.2和ip route-static 4.4.4.0 24 10.0.0.6两条等价路由,然后发现流量只走其中一条。这是因为华为设备默认开启等价路由负载分担,但如果你只想要一条主用一条备用,需要配preference或者用策略路由来强制指定。这个细节后面会展开讲。

2.3 在eNSP里搭拓扑的三个实操细节

第一个细节:eNSP的Cloud设备有时候会抽风,如果你需要连真实网络或者抓包,建议用Cloud绑定本地回环网卡,但做纯路由实验不需要Cloud,直接路由器互联就行。

第二个细节:接口编号在eNSP里是固定的,比如AR2220路由器默认有GE0/0/0到GE0/0/2三个接口,你加扩展卡才能有更多接口。如果你拓扑里需要四个接口,记得在路由器上右键添加扩展卡,否则接口不够用。

第三个细节:启动设备的时候不要一次性全启动,尤其是电脑配置一般的情况下。先启动R1和R2,等它们完全起来再启动R3和R4。全部启动后等一两分钟再开始配置,否则可能出现接口状态没刷新导致配置不生效的情况。

3. 策略路由的核心配置逻辑拆解

3.1 流分类:怎么精准地"抓"到你想要的流量

流分类(Traffic Classifier)是整个策略路由的第一步,也是最关键的一步。你抓错了流量,后面配得再对也没用。华为设备上用acl或者traffic classifier来定义流分类,我习惯用ACL先定义感兴趣流,然后在traffic classifier里引用ACL。

比如要抓财务部门(192.168.10.0/24)去往外网(4.4.4.0/24)的流量,ACL这样写:

acl number 3000 rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 4.4.4.0 0.0.0.255

这里有个细节:ACL编号3000-3999是高级ACL,可以匹配源IP、目的IP、协议类型、端口号等。如果你只需要匹配源IP,用基本ACL(2000-2999)也行,但高级ACL更灵活,建议养成用高级ACL的习惯。

然后定义流分类:

traffic classifier caiwu operator or if-match acl 3000

operator or表示匹配ACL 3000里的任意一条规则就命中。如果你有多条规则想用and逻辑,改成operator and,但实际场景里or更常用。

实操心得:ACL规则里的rule 5这个编号不是随便写的,华为设备默认步长是5,意味着你可以在rule 5和rule 10之间插入新规则。如果你写rule 1,后面想插规则就得重新编号。我习惯从5开始,留出插入空间。

还有一个容易踩的坑:ACL匹配的是"源地址到目的地址"的流量,但策略路由通常只关心源地址(因为目的地址是外网,你没法预知用户访问哪个外网IP)。所以更常见的写法是只匹配源IP:

acl number 3000 rule 5 permit ip source 192.168.10.0 0.0.0.255

这样所有从财务网段发出的流量都会被命中,然后你在流行为里指定下一跳,就实现了"财务流量走快速链路"。

3.2 流行为:指定下一跳的三种方式及适用场景

流行为(Traffic Behavior)定义的是"抓到流量之后怎么处理"。策略路由场景下,最常用的动作是redirect ip-nexthop,也就是强制指定下一跳。但具体怎么写,有三种方式,适用场景不同。

第一种:直接指定下一跳IP。

traffic behavior caiwu-behavior redirect ip-nexthop 10.0.0.2

这是最简单的写法,意思是"命中流分类的包,下一跳改成10.0.0.2"。优点是配置简单,缺点是如果10.0.0.2不可达,流量就断了,没有备份。

第二种:指定出接口。

traffic behavior caiwu-behavior redirect interface GigabitEthernet0/0/0

这种写法在点到点链路上没问题,但在以太网链路上不推荐,因为以太网是多路访问的,你指定出接口但不知道下一跳是谁,设备还得查ARP,效率低且容易出问题。

第三种:指定下一跳+备份下一跳。

traffic behavior caiwu-behavior redirect ip-nexthop 10.0.0.2 secondary 10.0.0.6

这种写法最实用:主下一跳是10.0.0.2(快速链路),如果它挂了,自动切到10.0.0.6(备用链路)。但要注意,eNSP对secondary的支持有时候不太稳定,真机上没问题,模拟器上可能需要多测试几次。

注意:redirect ip-nexthop和redirect interface不能同时配在同一个流行为里,会冲突。你只能选一种。

另外还有一个动作叫permit,意思是"命中流分类的包正常转发,不做特殊处理"。这个动作通常用在你想让某些流量走默认路由,但又不想让它们被其他策略影响的时候。比如你配了一条"财务走快速链路"的策略,又配了一条"其他流量permit"的策略,后者要放在前面还是后面,取决于你的匹配逻辑。

3.3 流策略:把分类和行为绑在一起并应用到接口

流策略(Traffic Policy)是最后一步,把流分类和流行为关联起来:

traffic policy pbr-policy classifier caiwu behavior caiwu-behavior

然后在接口上应用:

interface GigabitEthernet0/0/1 traffic-policy pbr-policy inbound

这里的方向很关键:inbound表示对进入接口的流量生效,outbound表示对从接口发出的流量生效。策略路由通常配在入接口上,因为你要在流量进入设备的第一时间就决定它走哪条路。如果你配在出接口上,流量已经经过路由表查过一次了,再改下一跳逻辑上很别扭。

但这里有个例外:如果你想让策略路由影响设备自己产生的流量(比如设备自己ping出去的包),你需要配traffic-policy pbr-policy outbound在出接口上,或者用local-policy。这个细节很多人不知道,导致实验里"PC的流量走了策略路由,但路由器自己ping不走",然后怀疑是模拟器bug。

还有一个坑:一个接口的同一个方向只能应用一个流策略。如果你已经应用了一个,再应用另一个会覆盖掉前一个。所以如果你有多条策略要应用在同一个接口的同一个方向,需要把它们合并到一个流策略里,用多个classifier-behavior对来实现。

4. 验证与排错:怎么确认流量真的走了你指定的路

4.1 用tracert和display命令做第一轮验证

配完策略路由,第一件事是在PC上做tracert。比如在PC1(财务)上tracert 4.4.4.4,如果第一跳是10.0.0.2(R2),说明策略生效了;如果第一跳是10.0.0.6(R3),说明策略没生效或者被其他路由覆盖了。

但tracert有个问题:它依赖ICMP超时报文,如果中间设备禁了ICMP或者策略路由影响了ICMP的处理,tracert结果可能不准。所以更可靠的方法是在R1上看:

display traffic-policy applied-record

这个命令会显示所有已应用的流策略及其统计信息。你可以看到每个classifier匹配了多少包,如果匹配数为0,说明ACL没抓对流量。

还有一个命令:

display acl 3000

看ACL的匹配计数。如果计数为0,说明没有流量命中这条ACL,问题出在流分类之前——可能是接口没配策略,或者流量根本没到R1。

4.2 策略路由不生效的五个常见原因

我总结了一下,策略路由配了不生效,90%的情况是下面五个原因之一:

原因一:ACL写错了。最常见的是源地址掩码写反了,比如192.168.10.0 0.0.0.255写成了192.168.10.0 255.255.255.0。华为ACL用的是通配符掩码(反掩码),0表示匹配,1表示忽略。这个跟思科一样,但跟日常习惯相反,容易搞混。

原因二:策略应用的方向错了。配在outbound上但流量是从另一个接口进来的,或者配在了错误的接口上。检查方法:display current-configuration interface GigabitEthernet0/0/1看接口下有没有traffic-policy配置。

原因三:路由表里有更优的路由。策略路由的优先级高于路由表,但前提是策略路由真的命中了。如果ACL没命中,流量还是走路由表。所以你要确保ACL能抓到流量。

原因四:下一跳不可达。你指定的下一跳IP,设备在路由表里查不到或者ARP解析不了。检查方法:display ip routing-table 10.0.0.2看有没有这条路由,display arp | include 10.0.0.2看ARP有没有解析。

原因五:eNSP的bug。说实话,eNSP在策略路由这块确实有一些已知问题,比如有时候策略应用了但统计不刷新,或者secondary下一跳不生效。遇到这种情况,我的经验是:保存配置,重启设备,重新应用策略。如果还不行,换个路由器型号试试,AR2220和AR2240的行为有时候不一样。

4.3 用抓包做终极验证

如果上面的方法都确认了但你还是不放心,那就抓包。eNSP支持在接口上抓包,右键接口选择"开始抓包",然后用Wireshark打开。

抓包的位置很关键:你要在R1的入接口抓,确认流量进来了;在R1的两个出接口分别抓,确认流量从哪个接口出去了。如果入接口有包但出接口没包,说明策略路由把包丢了(可能是下一跳不可达);如果两个出接口都有包,说明策略路由没生效,流量走了默认路由或者负载分担。

抓包的时候注意过滤:ip.src == 192.168.10.1 && ip.dst == 4.4.4.4,这样只看财务PC去外网的流量,避免被其他流量干扰。

实操心得:eNSP的抓包有时候会丢包,尤其是流量比较大的时候。如果你发现抓包结果和display命令的统计对不上,以display命令为准。抓包只用来做定性分析,不用来做精确计数。

5. 进阶玩法:策略路由与其他技术的联动

5.1 策略路由+NQA实现链路自动切换

基础版的策略路由是"死"的——你指定了下一跳,它就永远走那条路,哪怕那条路断了。要实现自动切换,需要配合NQA(Network Quality Analysis)来做链路检测。

配置逻辑是这样的:先配一个NQA测试例,定期ping目标地址;然后配一个Track项关联NQA;最后在流行为里用redirect ip-nexthop 10.0.0.2 track 1,当Track状态为Down时,策略路由自动失效,流量回退到路由表。

nqa test-instance admin test1 test-type icmp destination-address ipv4 10.0.0.2 frequency 5 probe-count 2 start now track 1 nqa admin test1

然后在流行为里引用:

traffic behavior caiwu-behavior redirect ip-nexthop 10.0.0.2 track 1

这样当10.0.0.2不可达时,Track 1变为Down,策略路由失效,流量走路由表里的备用路径。这个方案比secondary下一跳更可靠,因为NQA是主动检测,而secondary只是被动等待主下一跳失效。

但要注意:NQA会定期发探测包,增加一点网络开销。frequency设成5秒比较合适,太频繁浪费带宽,太慢切换不及时。

5.2 策略路由与VRRP的配合

如果你的网络里有VRRP(虚拟路由器冗余协议),策略路由的配置位置需要特别注意。VRRP的虚拟IP是浮动在Master设备上的,如果你在Master上配了策略路由,切换后策略路由不会自动跟着走。

解决方案有两种:一是在两台设备上都配相同的策略路由,这样无论谁是Master,策略都生效;二是用VRRP的Track功能,当设备降级为Backup时自动撤销策略路由。第一种方案简单但浪费资源,第二种方案优雅但配置复杂。

我个人的建议是:如果策略路由的下一跳是固定的(比如都指向同一个出口路由器),用第一种方案;如果下一跳跟VRRP状态相关,用第二种方案。

5.3 策略路由在eNSP里的性能边界

最后说一下eNSP的性能问题。eNSP是模拟器,不是真机,它的转发性能有限。如果你在实验里配了大量的ACL规则和策略路由,可能会发现转发延迟明显增加,甚至丢包。

我的经验是:eNSP里做策略路由实验,ACL规则不要超过20条,流策略不要超过5个。如果确实需要更多规则,建议分多个流策略,应用在不同接口上,而不是堆在一个策略里。

另外,eNSP对redirect ip-nexthop的处理有时候会有延迟,你配完策略后ping一下可能不通,等几秒钟再ping就通了。这不是配置问题,是模拟器的处理延迟。遇到这种情况不要急着改配置,先等一等。

还有一个真机上有但eNSP里没有的功能:策略路由的statistics统计。真机上你可以用display traffic policy statistics看每个策略的详细统计,eNSP里这个命令的输出可能不全。所以做实验的时候,多用display acl和display traffic-policy applied-record来交叉验证。

6. 我在这个实验里踩过的三个坑

第一个坑:ACL匹配了但策略不生效。排查了半天发现是ACL的rule编号写成了rule 1,然后我在它前面又加了一条rule 0,结果rule 0的优先级更高,把流量全匹配走了。华为ACL是按编号从小到大匹配的,编号越小优先级越高。所以如果你要插入规则,要么留足步长,要么用rule命令重新编号。

第二个坑:策略路由配在了错误的接口上。我把策略配在了R1连接R2的接口上,方向是outbound,结果发现只有去R2的流量走策略,去R3的流量不受影响。后来才想明白:策略路由应该配在流量的入接口上,而不是出接口。入接口是GE0/0/1(连接PC的接口),出接口是GE0/0/0和GE0/0/2(连接R2和R3的接口)。配在入接口上,所有从PC进来的流量都会经过策略处理。

第三个坑:eNSP重启后策略路由失效。这个坑最坑,我配好策略路由,验证通过,保存配置,重启eNSP,再打开发现策略路由没了。后来发现是eNSP的配置保存机制问题:如果你在设备启动过程中保存配置,可能保存不完整。正确的做法是等设备完全启动后,再save,然后display saved-configuration确认配置真的写进去了。

这三个坑我在不同的实验里反复踩过,每次都是排查半天才找到原因。写出来是希望你能跳过这些坑,把时间花在理解策略路由的逻辑上,而不是跟模拟器较劲。

策略路由这个技术,说到底就是"按需选路"四个字。你理解了"谁发的包、去哪个方向、走哪条路"这个三段式逻辑,剩下的就是命令的熟练度问题。eNSP是个很好的练习工具,但别把它当真理,真机上的行为可能跟模拟器有差异。多做实验,多抓包,多对比,慢慢就有感觉了。

相关新闻

裸金属自建Kubernetes与KubeSphere:从部署到运维的完整实践

裸金属自建Kubernetes与KubeSphere:从部署到运维的完整实践

1. 为什么我选择在裸金属上自建 Kubernetes 与 KubeSphere1.1 从一次真实的集群翻车说起去年帮一个做图像处理的小团队搭内部训练平台,他们原本用几台独立服务器跑任务,模型文件靠移动硬盘拷来拷去,版本乱得没法看。负责人找到我时提了两个硬…

2026/10/21 3:19:16 阅读更多 →
A股分时交易数据全解析:从获取清洗到量化策略实战

A股分时交易数据全解析:从获取清洗到量化策略实战

1. 分时数据到底能拿来做什么很多人第一次接触A股分时交易数据,脑子里冒出来的第一个念头就是"这不就是分时图那根线吗"。如果你也这么想,那基本等于把一座金矿当成了路边的小石子。分时数据远不止画一条曲线那么简单,它记录的是每…

2026/10/21 3:19:16 阅读更多 →
多无人机协同路径规划与防撞:Matlab动态仿真框架解析

多无人机协同路径规划与防撞:Matlab动态仿真框架解析

先说个我自己的体会:单机路径规划我当年用A*和RRT系列做得挺顺手,但一旦把场景换成"多无人机同时在动",问题性质就完全变了。每一架无人机不仅要躲开环境里的动态障碍物,还得随时提防队友,而且队友本身也在主…

2026/10/21 3:19:16 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/21 9:32:40 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/21 9:32:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/21 9:32:40 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/21 9:32:40 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/21 9:32:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/21 9:31:32 阅读更多 →

日新闻

周新闻

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

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

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

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

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

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

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

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

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

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 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/21 21:50:56 阅读更多 →
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/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练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/21 16:24:48 阅读更多 →