华为eNSP实战:OSPF认证机制详解与安全配置指南
1. 项目缘起为什么OSPF邻居关系需要“上锁”最近在帮一个朋友排查他们公司内部网络的问题故障现象挺有意思核心交换机和汇聚交换机之间的OSPF邻居关系时断时续导致部分业务流量路径不稳定。抓包一看发现网络里时不时会冒出一些来源不明的OSPF Hello报文这些“不速之客”干扰了正常的邻居建立过程。最后定位到是某个测试环境误接入了生产网络而且配置了相同的OSPF区域。这个事儿让我再次意识到在动态路由协议里尤其是在OSPF这种基于“信任”邻居的设备间协议里配置认证不是一个可选项而是一个必选项。今天我们就来聊聊怎么在华为的eNSP模拟器里给OSPF邻居关系“上一把锁”。这不仅仅是敲几个命令那么简单你得理解认证的类型、生效的机制以及不同场景下的最佳实践。很多人觉得在模拟器里配认证就是走个过场命令背熟就行。但实际工作中认证类型选错、密钥不一致、或者生效范围没搞对导致的邻居翻动排查起来可比模拟器里复杂十倍。我会结合eNSP的实操把这里面的门道和容易踩的坑一次性给你讲清楚。2. OSPF认证机制深度拆解不止是密码那么简单在动手配置之前我们必须先搞明白OSPF认证到底在保护什么以及它是如何工作的。很多人对认证的理解停留在“设置个密码防止非法设备接入”这个理解对但不全面。2.1 OSPF认证保护的究竟是什么OSPF是一个链路状态路由协议它的核心是设备之间相互交换链路状态数据库LSDB最终达到全网路由信息的一致。这个交换过程建立在邻居Neighbor和邻接Adjacency关系之上。认证主要保护的就是这个“关系建立”的过程以及后续的“信息交换”。具体来说它防范以下几种风险非法设备接入这是最直观的。没有正确密钥的设备无法与合法设备建立邻居关系从而被隔离在网络之外。路由信息欺骗恶意设备可能伪造OSPF报文宣称自己拥有某些路由或者修改链路开销将流量引导至错误路径进行中间人攻击或网络监听。拒绝服务攻击DoS通过发送大量伪造的OSPF Hello报文消耗设备CPU资源干扰合法邻居关系的建立与维持。所以配置认证等于在OSPF的通信通道上建立了一个可信的“白名单”机制。2.2 三种认证类型明文、MD5与HMAC-SHA256华为设备包括eNSP中的模拟设备支持三种主要的OSPF认证方式它们的原理和安全性有显著差异。2.2.1 简单明文认证Simple Authentication这是最初级的认证方式。其工作原理是发送方将配置的密码密钥直接以明文形式携带在OSPF报文头部中接收方收到报文后取出其中的密码与自己接口上配置的密码进行比对一致则接受不一致则丢弃。OSPF报文头 --------------------- | ...其他头部信息... | | 认证类型1 | - 类型1代表简单认证 | 认证数据MyPassword | - 密码明文传输 ---------------------注意在eNSP中抓包你可以清晰地看到这个明文密码。这意味着任何能捕获网络流量的工具如Wireshark都可以轻易窃取密钥。因此明文认证在生产环境中绝对禁止使用。它的存在价值仅限于实验室环境快速验证认证功能是否生效或者兼容一些极其老旧的不支持加密认证的设备。2.2.2 MD5加密认证MD5 Authentication这是目前使用最广泛、兼容性最好的OSPF认证方式。它采用“挑战-响应”模式密码本身永远不会在网络中传输。其工作流程如下通信双方预先配置相同的“密钥ID”Key ID和“密钥字符串”Key String。发送方在构造OSPF报文时会将报文内容、密钥ID和密钥字符串一起通过MD5算法计算出一个128位的“消息摘要”也叫哈希值。发送方将这个MD5摘要值和密钥ID放入OSPF报文头部发送出去。密钥字符串本身并不在报文中。接收方收到报文后根据报文头中的密钥ID找到本地配置的对应密钥字符串。接收方使用相同的MD5算法对收到的报文内容、密钥ID和自己的密钥字符串重新计算摘要。将计算出的摘要与报文携带的摘要进行比对。如果一致说明报文来源可信且未被篡改如果不一致则丢弃。OSPF报文头 (MD5) --------------------- | ...其他头部信息... | | 认证类型2 | - 类型2代表MD5认证 | 认证数据密钥ID | - 例如 Key ID 1 | 加密摘要0x3a7b... | - MD5哈希值由“报文密钥”算出 --------------------- 网络中不传输密钥字符串“MySecretKey”MD5认证的安全性远高于明文因为它避免了密钥泄露。但密码学上MD5已被证明存在碰撞漏洞即不同的输入可能产生相同的输出因此在安全性要求极高的场景下它已不是最优选。2.2.3 HMAC-SHA256加密认证HMAC-SHA256 Authentication这是更安全、更新的认证方式其原理与MD5类似但使用了更强大的SHA-256哈希算法和HMAC基于哈希的消息认证码构造方式。算法更强SHA-256比MD5产生更长的摘要256位抗碰撞能力理论上强得多。结构更优HMAC是一种将密钥与消息混合后进行哈希的特定构造方法能提供更好的安全性防止某些类型的密码学攻击。在报文格式上它与MD5认证类似也是传输密钥ID和摘要值不传输密钥本身。认证类型字段为3。OSPF报文头 (HMAC-SHA256) --------------------- | ...其他头部信息... | | 认证类型3 | - 类型3代表HMAC-SHA256认证 | 认证数据密钥ID | | 加密摘要0x89c2... | - HMAC-SHA256哈希值 ---------------------选择建议实验室/老旧环境可使用明文仅用于理解原理或MD5。一般生产环境MD5是平衡安全性与兼容性的稳妥选择绝大多数设备支持。高安全要求/新建网络强烈推荐使用HMAC-SHA256。只要网络设备如华为较新版本的VRP系统支持应作为首选。3. eNSP实验环境搭建与基础配置理论清楚了我们就在eNSP里动手搭个环境。我设计了一个最简单的拓扑包含两台路由器让你能聚焦在认证配置本身。3.1 实验拓扑与设备初始化拓扑拖出两台AR2220路由器用一条Copper线缆连接它们的GigabitEthernet 0/0/0接口。IP规划R1: GE0/0/0 -192.168.1.1/24R2: GE0/0/0 -192.168.1.2/24Loopback 0用于Router-ID和测试R1:1.1.1.1/32R2:2.2.2.2/32基础配置以R1为例R2类似sysname R1 interface GigabitEthernet0/0/0 ip address 192.168.1.1 255.255.255.0 interface LoopBack0 ip address 1.1.1.1 255.255.255.255OSPF基础配置先不配认证ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 192.168.1.0 0.0.0.255 network 1.1.1.1 0.0.0.0在R2上做类似配置router-id设为2.2.2.2。配置完成后使用display ospf peer命令查看应该能看到邻居状态为Full。这是我们的基准状态。3.2 认证配置的两种“作用域”接口与区域这是配置前必须明确的一个关键概念认证可以在接口Interface上配置也可以在OSPF区域Area上配置。两者的优先级和生效范围不同。接口认证只对该接口收发的OSPF报文生效。配置在物理接口或子接口下。优先级高于区域认证。当接口和区域都配置了认证时以接口认证为准。区域认证对该区域内所有启用了OSPF的接口收发的OSPF报文生效。是一种批量配置和管理的方式。如果某个接口需要特殊认证方式可以再单独配置接口认证来覆盖。实操心得在中小型网络如果某个区域所有链路的安全要求一致使用区域认证更便于管理。如果区域内不同链路如核心链路、接入链路安全等级不同则使用接口认证进行精细化控制。在eNSP实验中我们从接口认证开始因为它更直观。4. 实战配置一接口明文认证我们先从最简单的明文认证开始验证认证功能并观察抓包现象。配置步骤在R1的GE0/0/0接口上[R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] ospf authentication-mode simple cipher Huawei123这里simple指定认证类型为简单认证cipher关键字表示后续输入的密码Huawei123在配置文件中会以加密形式存储防止看配置文件的人直接看到密码但在网络传输中依然是明文。关键点对端必须配置相同的认证模式和密码。在R2的GE0/0/0接口上做完全相同的配置[R2] interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0] ospf authentication-mode simple cipher Huawei123配置后验证与现象分析查看邻居配置完成后稍等几秒再次使用display ospf peer。如果配置正确邻居关系会先断开因为旧的、无认证的报文被丢弃然后重新建立为Full状态。抓包分析核心环节在eNSP中右键点击R1和R2之间的链路选择“开始抓包”。过滤OSPF报文使用过滤器ospf。找到OSPF Hello报文展开OSPF协议头部你会清晰地看到Auth Type: 1 (Simple password)Auth Data: 48 75 61 77 65 69 31 32 33 ...这串十六进制数据就是Huawei123的ASCII码在Wireshark的Packet Bytes面板选中它可以直接看到明文Huawei123。这个实验直观地展示了明文认证的不安全性。接下来我们将其改为MD5认证。5. 实战配置二接口MD5认证在R1和R2上我们需要先删除旧的明文认证再配置MD5认证。直接覆盖配置有时可能因为会话未超时而产生临时问题建议先删除。配置步骤删除原有认证R1和R2均需操作[R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] undo ospf authentication-modeundo ospf authentication-mode命令会清除该接口上配置的任何OSPF认证。配置MD5认证R1[R1-GigabitEthernet0/0/0] ospf authentication-mode md5 1 cipher Huawei123这里的md5指定认证类型。1是密钥IDKey ID这是一个1-255的数字用于标识不同的密钥。cipher Huawei123是密钥字符串。配置MD5认证R2[R2] interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0] ospf authentication-mode md5 1 cipher Huawei123务必保证两端的密钥ID和密钥字符串完全一致。密钥ID不同或者密钥字符串不同邻居都无法建立。配置后验证与深度分析查看邻居同样使用display ospf peer观察邻居状态从Down重新变为Full的过程。抓包分析再次抓包查看OSPF Hello报文。你会发现Auth Type: 2 (MD5)报文中不再有明文的密码字段。会有一个Cryptographic Authentication字段里面包含密钥IDKey ID和那个长长的、看似随机的MD5摘要值例如Auth Key ID: 1,Auth Crypto Hash: 0a1b2c3d...。你绝对无法从报文中还原出Huawei123这个密码。这就是加密认证的核心安全优势。关于密钥ID的进阶理解 密钥ID不仅仅是一个标识符它还是实现密钥滚动Key Rollover而不中断业务的关键。假设你需要定期更换密钥可以按以下步骤操作在两端设备上配置一个新的密钥例如Key ID2但先不启用它。[R1-GigabitEthernet0/0/0] ospf authentication-mode md5 2 cipher NewPassword注意华为VRP系统允许一个接口配置多个MD5密钥通过不同的Key ID。此时设备会同时维护Key ID1和Key ID2的密钥。确保新密钥在两端的配置完全一致。此时邻居仍然使用Key ID1的旧密钥通信。当你确定新密钥已正确配置在所有设备上后可以将旧密钥从配置中删除。[R1-GigabitEthernet0/0/0] undo ospf authentication-mode md5 1删除旧密钥配置后设备会尝试使用已配置的、密钥ID值最大的那个有效密钥此处是Key ID2来生成和验证报文。由于对端也配置了相同的Key ID2的密钥邻居关系会无缝切换不会中断。这个机制保证了密码更新的平滑性是生产环境运维中的一个重要技巧。6. 实战配置三区域HMAC-SHA256认证区域认证的配置更为简洁适合对安全要求高且区域内部署统一的场景。我们将在Area 0上配置HMAC-SHA256认证。配置步骤清除接口上的MD5认证恢复无认证状态[R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] undo ospf authentication-mode [R2] interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0] undo ospf authentication-mode在OSPF进程的Area 0视图下配置认证R1[R1] ospf 1 [R1-ospf-1] area 0 [R1-ospf-1-area-0.0.0.0] authentication-mode hmac-sha256 1 cipher SecureKey#2024命令格式与接口认证类似hmac-sha256指定类型1是密钥IDcipher SecureKey#2024是密钥。在R2上做完全相同配置[R2] ospf 1 [R2-ospf-1] area 0 [R2-ospf-1-area-0.0.0.0] authentication-mode hmac-sha256 1 cipher SecureKey#2024配置后验证使用display ospf peer观察邻居重建。使用display ospf interface GigabitEthernet 0/0/0命令查看接口的OSPF详细信息。在输出中你会看到类似于Authentication Type: HMAC-SHA256, Key-id: 1的字样这表明该接口继承了区域的认证配置。抓包验证可以看到Auth Type: 3 (HMAC-SHA256)。7. 排错指南当邻居因为认证而“翻脸”时在eNSP里配一切都很顺利。但在真实网络尤其是多人协作或设备型号混杂时认证配置错误是导致OSPF邻居无法建立的常见原因。下面是一个系统性的排查流程。第1步确认邻居状态使用display ospf peer。如果邻居状态卡在Init或2-Way之后无法进入Exstart/Exchange甚至直接是Down认证问题嫌疑很大。如果状态是Full那认证基本没问题。第2步检查认证配置是否一致这是最核心的一步。你需要像核对清单一样逐项检查两端设备对应接口或对应区域的配置认证类型是否相同一端是simple另一端是md5肯定不通。密钥ID是否相同一端Key ID1另一端Key ID2不通。密钥字符串是否完全相同包括大小写、特殊字符。Huawei123和huawei123是不同的。最稳妥的方法是使用display this在接口或OSPF区域视图下查看配置确认cipher后面的密文是否一致虽然显示为密文但只要配置时输入的原文相同密文就会相同。作用域是否正确一端在接口配置了认证另一端只在区域配置了认证根据优先级如果接口有认证就以接口为准。你需要确保生效认证的“位置”匹配。例如R1在接口配了MD5R2就必须在对应接口也配MD5而不能只在区域配。第3步利用调试命令和抓包定位如果肉眼检查配置没发现问题就需要更深入的工具。开启OSPF调试谨慎使用会输出大量信息R1 terminal monitor R1 terminal debugging R1 debugging ospf packet然后尝试重置OSPF进程reset ospf process或拔插线缆触发邻居重建。在调试信息中关注是否有Authentication Failed或Type mismatch等错误提示。抓包分析最权威在链路中间抓包。对比双方发出的OSPF报文。查看Auth Type字段是否一致。如果是MD5/HMAC-SHA256对比Key ID是否一致。如果是明文认证直接看Auth Data的明文是否一致。一个经典踩坑案例曾经遇到一个故障两台设备配置的密钥字符串肉眼看起来一模一样但邻居就是起不来。抓包发现密钥ID相同类型都是MD5。最后逐字符核对配置发现一方在输入密码时不小心在末尾加了一个空格。命令行界面显示cipher ******看不出差别。解决方法就是重新输入一遍密码确保完全一致。所以对于重要配置最好使用文本编辑工具写好然后粘贴到设备避免手动输入错误。8. 生产环境部署建议与eNSP实验的局限通过eNSP我们掌握了OSPF认证的配置命令和基本原理。但要应用到生产网络还需要考虑更多。1. 认证方式选择策略管理环回口/业务接口对于承载业务的物理接口或子接口必须使用MD5或HMAC-SHA256禁用明文。虚拟链路Virtual Link虚链路是逻辑链路其认证配置在area x vlink-peer命令中指定同样必须使用加密认证。多厂商设备互联如果网络中有其他品牌设备如思科需要确认对方支持的认证类型。MD5是通用的工业标准兼容性最好。华为的HMAC-SHA256可能需要对方设备也支持同类算法。2. 密钥管理规范复杂度密钥应足够复杂包含大小写字母、数字和特殊字符避免使用字典单词。定期更换利用密钥ID机制制定密钥轮换计划如每季度。分权管理配置密码和查看密码的权限应分离。3. eNSP实验与真机的差异性能与规模eNSP模拟的是软件转发无法体现真实硬件ASIC转发下认证计算对性能的微小影响在大型路由表中加密认证会略微增加CPU开销。配置细节真机可能有更多与安全相关的全局开关或默认策略需要关注。故障现象真机在认证失败时日志系统display logbuffer可能会给出更丰富的提示信息。最后一点个人体会OSPF认证就像给自家大门装锁。在eNSP里配通了只是知道了锁怎么装。真正重要的是你要理解为什么装这把锁防什么、哪种锁更安全选型、以及家里所有门是不是都装了锁作用域。下次再遇到网络里莫名多出一条奇怪路由的时候第一反应就应该是“我们的动态路由协议认证配了吗” 把这个习惯养成很多潜在的安全风险就能被提前堵住。

相关新闻

程序员必备翻译神器:沉浸式插件与全局划词工具深度配置指南

程序员必备翻译神器:沉浸式插件与全局划词工具深度配置指南

1. 项目概述:为什么程序员需要专属的翻译工具?在代码的世界里,我们每天都在和英文打交道。从官方文档、Stack Overflow的问答、GitHub的Issue,到IDE里弹出的错误信息,甚至是变量和函数的命名,英文无处不在。…

2026/10/18 23:12:37 阅读更多 →
AI编程助手评测:SlopCodeBench榜单解读与Fable 5、GPT-5.6-Sol、Kimi K3对比

AI编程助手评测:SlopCodeBench榜单解读与Fable 5、GPT-5.6-Sol、Kimi K3对比

最近,AI编程助手领域又迎来了一轮新的“跑分”竞赛。如果你正在为团队选型,或者纠结于哪个模型更适合自己的开发工作流,那么SlopCodeBench这个新出炉的榜单,以及上面Fable 5、GPT-5.6-Sol和Kimi K3这几个名字,绝对值得…

2026/10/18 4:08:58 阅读更多 →
Flutter Riverpod 在 build 期改 provider 导致整页崩溃,踩坑实录

Flutter Riverpod 在 build 期改 provider 导致整页崩溃,踩坑实录

Flutter Riverpod 在 build 期改 provider 导致整页崩溃,踩坑实录 作者:FungLeo | 适用:Flutter / Riverpod 现象:Web 端登录进首页,页面一个请求都不发,安卓真机却完全正常。 前言 说实话&…

2026/10/18 4:10:25 阅读更多 →

最新新闻

AI率过高怎么办?九款降AI率工具与避坑指南

AI率过高怎么办?九款降AI率工具与避坑指南

上个月帮一位在外地项目上常驻的在职朋友看论文。他发来一张截图,检测系统提示“疑似AI生成内容占比接近四成”,导师在批注里连续写了好几遍——这几段请你按自己的话重写。他挺委屈:内容确实是自己对着调研材料一点一点整理出来的&#xff0…

2026/10/19 23:26:19 阅读更多 →
开源代码评审工作流:本地化、可审计、可定制的LLM实践方案

开源代码评审工作流:本地化、可审计、可定制的LLM实践方案

1. 项目概述:这不是一个“工具”,而是一套可落地的开源代码评审工作流“open-code-review”这个名字乍一听像某个新发布的 CLI 工具,或者某家大厂刚开源的 AI 代码审查平台。但实际翻遍 GitHub、Hugging Face 和主流技术社区,你会…

2026/10/19 23:26:19 阅读更多 →
基于YOLO11的无人机检测识别系统设计与实现

基于YOLO11的无人机检测识别系统设计与实现

一提到毕设做深度学习目标检测,十个里有八个都在刷COCO、VOC数据集,真正能落到现实问题上的反而不多。但“空域安全无人机检测识别”这个方向不一样,它直接对准了一个真实且刚需的场景——机场周边、重要场馆、活动安保都需要防范低空慢速小目…

2026/10/19 23:23:08 阅读更多 →
BP-PID残差补偿控制:Simulink中可解释的神经网络增强型PID实现

BP-PID残差补偿控制:Simulink中可解释的神经网络增强型PID实现

简介:本资源是一套基于Simulink实现BP神经网络自整定PID控制器的完整工程实践材料,面向自动化、控制工程及人工智能交叉领域的高校学生、科研人员与工业控制工程师,解决传统PID参数依赖经验整定、适应性差、动态响应不足等实际问题。压缩包共…

2026/10/19 23:18:58 阅读更多 →
STM32 SD卡数据落盘实战:fatfs移植与CSV文件生成

STM32 SD卡数据落盘实战:fatfs移植与CSV文件生成

简介:这份资源面向嵌入式开发学习者与STM32工程师,聚焦在STM32F429平台上集成FatFS文件系统、驱动SD卡写入数据并生成.csv文件,同时结合以太网驱动搭建TCP服务器接收网络数据。内容覆盖FatFS的移植与参数配置、SDIO或SPI方式下的SD卡初始化与…

2026/10/19 23:16:55 阅读更多 →
AI视频生成工作流:从产品拆解到批量成片的完整指南

AI视频生成工作流:从产品拆解到批量成片的完整指南

去年年底接了一个电商代运营团队的活儿,帮他们把带货短视频从“每周人工憋3条”改成“一天批量出20条成片”。项目做完以后,团队里负责剪辑的同事跟我说了一句话,让我印象特别深:以前最怕的不是剪片子,而是想不出脚本、…

2026/10/19 23:05:36 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于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/19 1:30:52 阅读更多 →

月新闻

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