双点双向路由引入实战:防环、度量转换与OSPF+BGP避坑指南
1. 这个“双点双向路由引入”到底在解决什么现实问题刚接触这个词时我也以为是教科书里一个抽象概念——直到在某高校网络实验室参与模拟项目X的骨干网改造时才真正被它“按在地上摩擦”了一整周。当时的需求很朴素把新部署的一套SDN控制器管理的边缘接入网段10.200.0.0/16和原有传统OSPF域172.16.0.0/12打通让终端用户能无感访问两边资源。理论上只要在两台边界路由器上互相做redistribute命令就行。结果上线第二天核心交换机CPU飙到95%全网延迟抖动剧烈监控系统疯狂告警。抓包一看大量重复的LSA泛洪、BGP Update循环、甚至出现了路由黑洞——明明下一跳可达但数据包就是进不了目标子网。后来复盘才发现问题根源不在配置语法错误而在于我们下意识地用了最“直觉”的做法在R1上把OSPF路由引入BGP在R2上把BGP路由再引入OSPF形成一个看似闭环的“双向通道”。但网络协议不是水管没有单向阀这种设计天然制造了路由反馈环路Route Feedback Loop。更麻烦的是不同协议的管理距离AD值、度量值Metric体系完全不同OSPF的cost和BGP的MED根本无法直接比较导致选路逻辑彻底混乱。所谓“双点双向”表面看是冗余备份实际却是埋下了一个随时可能引爆的路由震荡炸弹。这个案例背后藏着企业级网络演进中一个高频痛点异构网络融合。老系统用静态路由或RIP新平台用BGP或EIGRP云侧用VPC路由表本地IDC用OSPF甚至同一张网里核心层跑IS-IS接入层跑OSPF——它们必须互通但又不能互相污染。这时候“双点双向”就成了一把双刃剑用对了是平滑迁移的桥梁用错了就是全网瘫痪的导火索。它不解决“能不能通”的问题而是解决“怎么通得稳、通得准、通得可维护”的问题。关键词里的“案例”二字特别关键——这不是理论推演而是必须在真实设备上反复验证、踩坑、调参才能掌握的实战手艺。接下来我会拆解四个核心环节为什么必须设两个点、为什么必须双向、哪些协议组合最危险、以及最关键的——如何用最小代价切断反馈环。2. “双点”不是为了冗余而是为了构建可控的路由过滤边界很多人第一反应是“双点高可用挂一个还有另一个”。这是最大的认知误区。在路由引入场景中“双点”的本质价值从来不是物理冗余而是逻辑隔离。让我用一个生活化类比解释想象两条并行的高速公路A路和B路你要把A路的车流引导到B路同时把B路的车流引导到A路。如果只设一个互通立交口单点所有车都挤在同一个匝道口抢道必然堵死。而设两个独立立交口双点你就能在A口装ETC闸机只放行A路去B路的车在B口装人工检查站只放行B路去A路的车——物理上分离逻辑上可控。回到网络设备这个“ETC闸机”就是路由策略Route-Map和前缀列表Prefix-List。真正的双点设计要求两个引入点必须部署完全独立的过滤规则。比如在R1OSPF→BGP方向上只允许引入10.200.0.0/16网段并设置BGP MED为100而在R2BGP→OSPF方向上只允许引入172.16.0.0/12网段并设置OSPF cost为20。这两个策略绝对不能共用同一份ACL更不能因为“图省事”在R1上也配一条把BGP路由再引回OSPF的规则——那等于在A口又修了个反向匝道直接废掉双点的意义。实操中我见过最典型的错误配置是工程师在R1上执行redistribute ospf 1 metric 100紧接着又加了一条redistribute bgp 65000 metric 20以为这样“双向都配齐了”。结果R1把OSPF路由发给BGP邻居后BGP邻居又把这条路由通过iBGP传回R1R1收到后发现这是自己发出去的但因为没配bgp always-compare-med或distance bgp直接当作新路由重新注入OSPF形成自循环。这种错误在Cisco设备上尤其隐蔽因为show ip route里看不到“自己发的路由”只有抓包看BGP Update报文才能发现源IP是R1自己。提示判断是否真正在用“双点”而非“伪双点”只需检查两个边界设备的路由引入命令是否引用了不同名称的route-map且这些route-map中deny语句匹配的前缀范围必须严格互斥。例如R1的route-map OSPF_TO_BGP中deny 10.200.0.0/16而R2的route-map BGP_TO_OSPF中deny 172.16.0.0/12——如果两个route-map都允许全部前缀那所谓的“双点”只是物理位置不同逻辑上仍是单点。更深层的原因在于协议机制差异。OSPF是链路状态协议LSA泛洪是全网同步的一旦引入错误路由所有区域边界路由器ABR都会立刻计算出错误路径而BGP是路径向量协议Update消息逐跳传递错误路由可能只影响下游几跳。所以双点设计中通常把OSPF域作为“信任源”BGP域作为“分发通道”在OSPF→BGP的入口点做最严过滤在BGP→OSPF的出口点做二次校验。这种不对称性恰恰是双点存在的技术合理性基础。3. “双向”不是对称操作而是协议间度量值的精准翻译工程如果说“双点”解决了物理隔离问题那么“双向”则直面协议间的“语言不通”困境。OSPF用cost基于带宽倒数计算BGP用MEDMulti-Exit Discriminator仅在AS内比较EIGRP用复合度量带宽延迟可靠性等。把OSPF的cost10直接当BGP的MED10用就像把华氏度数值直接当摄氏度读——数字相同含义天壤之别。我在某跨平台系统集成项目中吃过亏当时把OSPF区域内的10.10.0.0/24网段cost1引入BGP设MED1又把BGP学到的192.168.1.0/24MED1引入OSPF设cost1。结果核心路由器选路时发现去10.10.0.0/24有两条路径一条是直连OSPF cost1另一条是经BGP转发再回来的cost1。由于OSPF默认等价负载均衡ECMP流量被随机分到两条路径上其中一条经过BGP环路导致50%丢包。根本原因在于我们把“协议内部度量值”错误等同于“跨协议优先级”。真正的双向度量转换必须建立映射关系表。以下是我总结的常用协议度量值换算逻辑基于RFC标准及主流厂商实现源协议 → 目标协议推荐换算公式关键注意事项OSPF → BGP (MED)MED OSPF_cost × 10 偏移量偏移量用于区分不同区域来源避免MED冲突必须在BGP进程下配置bgp bestpath med missing-as-worstBGP → OSPF (cost)cost min(100, max(1, MED ÷ 10))防止MED过大导致OSPF cost溢出OSPF最大cost65535但实际建议≤100EIGRP → OSPFcost 10⁸ ÷ (EIGRP_bandwidth_kbps)仅适用于带宽参数主导的EIGRP度量需关闭EIGRP的K值动态调整静态路由 → BGPMED 50 跳数 × 10静态路由无内在度量需人工赋予业务意义如跳数代表传输层级这个表格不是凭空编的。比如OSPF→BGP的乘数10源于OSPF cost的典型范围1-100与BGP MED推荐范围0-1000的匹配而BGP→OSPF的除法则是为了把BGP常见的MED值如100,200,500压缩到OSPF敏感区间1-100。我在某图像处理Demo的网络模块调试中曾把MED500直接当cost500用结果OSPF认为这条路径比直连链路cost10差50倍直接弃用导致业务中断。后来改成cost 500 ÷ 10 50立刻恢复正常。注意所有度量值转换必须配合路由标记Route Tag使用。例如在R1引入OSPF时用set tag 1001标记所有来自OSPF的路由在R2引入BGP时用match tag 1001拒绝这些标记路由。这是切断反馈环的最后保险丝——即使度量值换算出错Tag过滤也能阻止路由回灌。还有一个易忽略的细节BGP的weight属性Cisco私有和local preference属性。它们优先级高于MED但在跨AS场景中不传递。因此在双点双向中如果涉及多AS互联必须在每个AS内部统一weight/local pref策略否则会出现“同一前缀在不同AS内选路不一致”的诡异现象。我曾遇到过某金融系统因AS1设local pref200AS2设local pref100导致流量在AS边界来回震荡排查三天才发现是local pref未同步。4. 协议组合雷区OSPFBGP双点双向为何是“高危操作”在所有可能的协议组合中OSPF与BGP的双点双向引入堪称网络工程师的“高压线”。不是因为它最难配置而是因为它的失败表现极其隐蔽且后果严重。其他组合如RIPEIGRP、静态BGP出问题时往往表现为“不通”而OSPFBGP一旦出错大概率是“通但极不稳定”这种半死不活的状态最消耗排障精力。根本原因在于两种协议的设计哲学冲突。OSPF追求网络拓扑的精确同步每5秒发送Hello包维持邻居30分钟泛洪一次完整LSDBBGP则强调策略控制Keepalive默认60秒Update消息按需触发。当OSPF把一条路由引入BGP时BGP会把它当作普通前缀处理但当BGP再把这条路由引入OSPF时OSPF会为它生成Type-5 LSA并在整个OSPF域泛洪。问题来了如果BGP邻居因链路抖动短暂断开BGP会撤回该路由OSPF随之删除Type-5 LSA但BGP恢复后又重新宣告OSPF再次泛洪——这个过程在OSPF域内引发持续的SPF重计算CPU飙升就是必然结果。我在某公司网络升级中记录过一组实测数据当OSPF域内有500条外部路由通过BGP引入时单次BGP会话抖动1秒会导致OSPF SPF计算耗时从平均80ms飙升至1200ms期间所有OSPF路由收敛暂停。而如果这500条路由分散在10个不同BGP peer上抖动时间叠加SPF风暴可持续3-5分钟。这解释了为什么很多故障报告写着“网络突然变慢过几分钟又好了”却找不到明确原因——因为日志里只有正常的BGP Up/Down记录没人会怀疑这是OSPF的连锁反应。更危险的是LSA类型混淆。OSPF规定Type-5 LSAAS External LSA由ASBR产生描述外部路由Type-7 LSANSSA External LSA在NSSA区域中使用需由ABR转换为Type-5。如果在NSSA区域边界做双点双向且未正确配置area nssa default-information-originate可能出现Type-7 LSA未转换就直接被引入BGPBGP再把它宣告出去下游OSPF路由器收到后无法识别Type-7直接丢弃造成路由黑洞。这种错误在show ip ospf database里能看到异常的Type-7条目但新手往往只查show ip route永远发现不了源头。规避这类风险的核心原则是永远让OSPF作为路由消费方BGP作为路由分发方。具体操作上在OSPF→BGP方向只引入必要的汇总路由如10.200.0.0/16禁用明细路由在BGP→OSPF方向用distribute-list或prefix-list严格限制引入范围宁可少引不可多引关键设备上启用ip ospf spf-delaySPF延迟计算将初始延迟设为5000ms避免微秒级抖动触发频繁重算对所有引入的BGP路由在OSPF进程下配置default-metric 20而非依赖MED转换确保度量值可控。5. 实战避坑指南从配置到验证的七步闭环流程纸上谈兵终觉浅绝知此事要躬行。我把过去五年在十几个项目中踩过的坑浓缩成一套可直接复用的七步操作法。这套流程不追求“一步到位”而是强调“步步验证”确保每个环节的输出都可测量、可回溯。记住在双点双向场景中慢即是快。5.1 第一步绘制协议边界拓扑图强制手绘不要依赖网管系统自动生成的拓扑图。拿出白纸用不同颜色笔画出红色OSPF区域标注Area ID、ABR角色蓝色BGP AS号及Peer关系标注iBGP/eBGP、Route Reflector绿色双点引入设备R1、R2在设备旁标注计划引入的路由前缀黄色所有可能的路由反馈路径用虚线箭头标出如R1→BGP→R2→OSPF→R1这一步的关键是暴露“隐性连接”。我曾在一个项目中发现防火墙策略允许R1和R2之间存在直连管理通道而这个通道被OSPF自动纳入Area 0导致R1和R2在OSPF层面成了邻居——这意味着即使BGP断开OSPF仍能通过直连链路同步路由彻底绕过我们设计的双点过滤逻辑。手绘图时这个直连链路一目了然。5.2 第二步在R1上配置OSPF→BGP引入仅单向以Cisco IOS为例配置模板如下! R1配置OSPF→BGP router ospf 1 redistribute bgp 65000 subnets route-map OSPF_TO_BGP ! ip prefix-list PL-OSPF-EXPORT seq 5 permit 10.200.0.0/16 le 24 ! route-map OSPF_TO_BGP permit 10 match ip address prefix-list PL-OSPF-EXPORT set metric 100 set tag 1001 ! router bgp 65000 neighbor 192.168.1.2 remote-as 65000 ! address-family ipv4 neighbor 192.168.1.2 activate neighbor 192.168.1.2 send-community network 10.200.0.0 mask 255.255.0.0重点检查项subnets关键字必须存在否则只引入主类网络set tag 1001是后续过滤的唯一标识不可省略network命令必须显式宣告不能依赖redistribute避免BGP路由表为空。5.3 第三步验证R1的BGP表与OSPF数据库执行三条命令缺一不可# 查看BGP表是否收到OSPF路由 show ip bgp | include 10.200.0.0 # 查看OSPF数据库中是否有Type-5 LSA应为0 show ip ospf database external | include 10.200.0.0 # 查看路由表中BGP路由的来源标记 show ip route 10.200.0.0 255.255.0.0理想输出第一条显示* 10.200.0.0/16第二条无输出第三条显示[200/0] via ...200为BGP管理距离。如果第二条有输出说明OSPF仍在泛洪该路由redistribute配置未生效。5.4 第四步在R2上配置BGP→OSPF引入仅单向配置要点与R1对称但策略相反! R2配置BGP→OSPF router bgp 65000 neighbor 192.168.1.1 remote-as 65000 ! address-family ipv4 neighbor 192.168.1.1 activate neighbor 192.168.1.1 route-map BGP_TO_OSPF in ! ip prefix-list PL-BGP-IMPORT seq 5 permit 172.16.0.0/12 le 24 ! route-map BGP_TO_OSPF permit 10 match ip address prefix-list PL-BGP-IMPORT match tag 0 ! 关键只接受未标记的路由 set metric 20 ! router ospf 1 redistribute bgp 65000 subnets route-map BGP_TO_OSPF注意match tag 0这确保R2只引入原始BGP路由拒绝R1打上tag 1001的路由从源头切断反馈环。5.5 第五步开启双向后用pingtraceroute交叉验证配置完成后不要急着测试业务。执行# 从OSPF域内设备ping BGP域网段 ping 172.16.1.1 source 10.200.1.1 # 记录响应时间及TTL # 从BGP域内设备traceroute到OSPF域 traceroute 10.200.1.1 source 172.16.1.1 # 观察路径是否经过R1→R2→目标而非R1→R1环路 # 同时在R1、R2上抓包 debug ip packet detail | include 10.200.0.0|172.16.0.0如果traceroute出现* * *或10.200.1.1出现在第二跳本该是R2说明存在环路。此时立即关闭R2的redistribute而不是继续调试。5.6 第六步压力测试——模拟链路抖动用自动化脚本模拟真实故障# 在R1上执行模拟BGP Peer断开 conf t interface GigabitEthernet0/1 shutdown end wait 30s conf t interface GigabitEthernet0/1 no shutdown end观察指标R1、R2的CPU利用率show proc cpu | ex 0.00OSPF SPF计算次数show ip ospf statisticsBGP Update消息数量show ip bgp neighbors 192.168.1.2 advertised-routes安全阈值CPU峰值70%SPF计算间隔30秒Update消息增量50条/分钟。超限则需优化前缀列表或启用SPF延迟。5.7 第七步建立基线并文档化最终交付物不是配置文件而是三份文档《路由引入基线报告》包含各设备show命令原始输出、ping/traceroute结果截图、CPU/内存历史曲线图《故障注入测试记录》详细记录每次模拟抖动的时间、持续时长、观测指标、恢复时间《运维交接清单》明确标注所有route-map名称、prefix-list序列号、Tag值含义、紧急回滚步骤如no redistribute bgp的具体命令。我在某教育信息化项目中曾因缺少第七步导致新接手的工程师误删了R1的set tag 1001引发全网路由震荡。后来我们强制要求任何双点双向变更必须附带基线报告PDF且由两人签字确认。这个习惯让后续三年零重大事故。6. 终极防线用BFD路由标记构建自愈型双点架构当网络规模扩大到数百节点纯手工配置的双点双向已无法满足稳定性要求。这时需要引入自动化防护机制。我推荐一种经过生产环境验证的轻量级方案BFDBidirectional Forwarding Detection 动态路由标记。BFD本身不是新概念但将其与路由标记联动能实现“故障感知→路由抑制→自动恢复”的闭环。原理很简单在R1和R2之间建立BFD会话检测底层链路状态当BFD检测到R1-R2链路中断时自动触发脚本修改R1的route-map将set tag 1001改为set tag 9999预设的“故障标记”R2的BGP inbound route-map检测到tag9999立即拒绝该路由避免错误传播。具体实现以Linux服务器Quagga为例# /etc/frr/frr.conf 中配置BFD bfd peer 192.168.1.2 min-rx 300 min-tx 300 detect-multiplier 3 ! # 脚本监听BFD状态变化 #!/bin/bash while true; do STATUS$(vtysh -c show bfd peers | grep 192.168.1.2 | awk {print $4}) if [ $STATUS Down ]; then vtysh -c conf t -c route-map OSPF_TO_BGP permit 10 -c set tag 9999 elif [ $STATUS Up ]; then vtysh -c conf t -c route-map OSPF_TO_BGP permit 10 -c set tag 1001 fi sleep 5 done这个方案的优势在于无需改动现有路由协议逻辑所有保护机制都在BFD和脚本层实现BFD检测时间可压缩至毫秒级远快于BGP Keepalive的60秒标记切换是原子操作不会引发路由震荡。当然这并非银弹。我曾在某医疗系统中部署此方案时发现BFD会话建立后R1的CPU占用率稳定增加5%原因是BFD报文频繁触发内核中断。解决方案是调整BFD参数将min-rx从300ms提高到1000ms牺牲一点检测速度换取CPU稳定。这再次印证没有完美的方案只有权衡后的最优解。最后分享一个血泪教训某次升级FRR版本后BFD状态监听脚本失效因为新版本show bfd peers输出格式变了。从此我们养成习惯——所有自动化脚本必须包含版本兼容性检查且每季度执行一次回归测试。网络世界的稳定性永远建立在对细节的敬畏之上。

相关新闻

海量产线数据实时可视化:LightningChart选型与性能优化实战

海量产线数据实时可视化:LightningChart选型与性能优化实战

电子制造业的朋友应该都有过这种经历:车间里几十台设备同时跑着,贴片机的抛料率、回流焊炉温曲线、AOI检测的直通率、洁净室的微粒子数,每秒钟都在产生新的数据点。以前我给产线做过一版监控看板,用常用的开源图表控件画实时曲线&…

2026/10/15 23:02:27 阅读更多 →
电力行业国产化ERP成本管理方案:从核算到管控的落地实践

电力行业国产化ERP成本管理方案:从核算到管控的落地实践

电力行业的ERP建设,一直是个“看着标准化、落地极复杂”的领域。特别是成本管理模块,发、输、配、售四个环节的业务逻辑差异巨大,资产密集程度在全部工业门类里都排在最前列,加上电价监管对成本分摊的精细化要求,传统通…

2026/10/15 23:01:26 阅读更多 →
Superpowers:AI原生开发的IDE认知增强协议

Superpowers:AI原生开发的IDE认知增强协议

1. 项目概述:Superpowers 不是超能力,而是开发者工具链的“认知增强层”你搜“superpowers”时,第一反应可能是漫威电影或DC宇宙——但最近半年,在开发者社区、技术论坛和GitHub trending榜单上,“Superpowers”这个词…

2026/10/15 23:01:26 阅读更多 →

最新新闻

子网划分原理与实战:从课后题1理解网络分段本质

子网划分原理与实战:从课后题1理解网络分段本质

1. 这道题不是“做作业”,而是打开网络世界的第一把钥匙“计算机网络原理 课后题1”——看到这行字,很多人第一反应是翻教材、查答案、抄个IP地址配个子网掩码就完事。但我在某高校连续带了七年《计算机网络原理》实验课,带过三百多名学生&am…

2026/10/15 23:46:00 阅读更多 →
Qt5范例开发大全:从目录索引到可运行工程的最小闭环

Qt5范例开发大全:从目录索引到可运行工程的最小闭环

简介:《Qt5范例开发大全(完整目录版)》面向具备一定C基础、希望系统掌握Qt5跨平台界面与功能开发的程序员及在校学生。全书以实例驱动,从开发环境搭建与Hello World起步,依次覆盖窗体应用、控件应用、组件应用、文件操…

2026/10/15 23:46:00 阅读更多 →
Claude Code官方插件机制深度解析:从接入规范到自定义开发实践

Claude Code官方插件机制深度解析:从接入规范到自定义开发实践

1. 从"官方插件"这个词说起:它到底解决了什么问题很多人第一次看到claude-plugins-official这个仓库名,第一反应是"官方插件合集,装就完事了"。但真去翻一遍目录结构,会发现它跟传统意义上的"插件市场&q…

2026/10/15 23:46:00 阅读更多 →
SpringBoot+Vue汽车资讯网站管理系统实战开发全流程

SpringBoot+Vue汽车资讯网站管理系统实战开发全流程

做JavaWeb项目这些年,SpringBootVue这对组合算是绕不开的搭配。前段时间刚完成一个汽车资讯网站管理系统,从需求梳理、数据库设计到前后端联调,最后打包部署,整个流程走下来收获不少。这个项目用JavaMySQLMyBatis做后端数据层&…

2026/10/15 23:46:00 阅读更多 →
AnyPS5:将DualSense手柄打造成跨平台万能输入设备

AnyPS5:将DualSense手柄打造成跨平台万能输入设备

1. 项目缘起与核心定位AnyPS5 这个名字第一次出现在我视野里的时候,我正被一堆跨平台输入设备的适配问题折腾得够呛。简单来说,AnyPS5 是一个把 PlayStation 5 的 DualSense 手柄变成“万能输入设备”的软件方案——它能让这块原本只服务于游戏主机的手柄…

2026/10/15 23:46:00 阅读更多 →
Python工具链Rust化:五个提升开发效率的新库实战指南

Python工具链Rust化:五个提升开发效率的新库实战指南

这两年 Python 生态里的话题,绕不开一个词:Rust 化。从包管理到 lint 再到数据验证,一堆新库选择直接用 Rust 重写底层,把之前 Python 工具链里让人头疼的慢、复杂、配置繁琐的问题挨个收拾了一遍。我最近在几个项目里把工具链切到…

2026/10/15 23:45:00 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →