eNSP企业网三层架构实战:OSPF+ACL+DHCP开箱即用项目
简介本资源是一套基于华为eNSP平台的企业网模拟完整实践方案面向计算机网络专业本科生、毕业设计学生及初阶网络工程师解决真实企业网络架构设计与协议验证的学习与实操难题。资源以四层网络体系结构为核心涵盖多VLAN划分、跨设备IP地址规划、DNS/DHCP/SNMP/VPN等关键服务部署助力读者掌握典型校园网与中小企业网的建模逻辑与排错方法。压缩包为ZIP格式共含数十个配置文件、拓扑图与说明文档具体文件总数未提供整体大小3.56MB轻量易解压适配教学演示与本地复现。目前已有8651人学习下载资源包含可直接导入eNSP的完整拓扑工程、分层设备配置脚本、VLAN与路由策略说明、以及毕业设计论文与代码配套材料结构清晰、即拿即用特别适合课程设计、毕设选题与实验课拓展。1. 一个能直接跑通、带完整配置和文档的企业网模拟项目用eNSP搭出三层架构ACLOSPFDHCP的真实感网络毕业设计答辩前一周还能改出新拓扑你是不是也经历过导师说“企业网要体现三层架构、要有路由协议、得配ACL策略、还要有DHCP自动分地址”结果翻遍B站教程和CSDN博客全是零散的单设备命令截图没有一份能直接加载进eNSP就弹出拓扑图、双击路由器就能看到已写好的OSPF进程、点开交换机就能查到VLAN划分表这个资源就是为这种“答辩倒计时焦虑”而生的——它不是教学视频的配套笔记而是一个开箱即用的完整工程包包含可一键导入eNSP的.topo文件、所有设备的.cfg配置文本含注释、毕业设计论文Word源稿含拓扑图、IP规划表、故障排查记录、以及配套的答辩PPT含动画演示逻辑。它不讲“什么是OSPF”而是让你在AR2200上看到ospf 1 router-id 10.0.0.1下面紧跟着area 0.0.0.0 network 192.168.10.0 0.0.0.255——这才是真正在项目一线写配置的人会交出来的交付物。适合正在赶工本科毕业设计、需要快速验证网络方案可行性的学生也适合实训课老师直接拆解成实验任务下发。2. 项目结构与核心模块拆解从拓扑文件到配置脚本的完整工程链路2.1 工程目录结构五个关键文件夹定义了“可交付”的边界拿到压缩包后先别急着解压进eNSP。打开文件管理器你会看到清晰的五层结构ensp-enterprise-network/ ├── 01_topo/ # eNSP原生拓扑文件唯一可双击启动的入口 │ └── enterprise_v3.topo # 主拓扑含7台设备3路由器2二层交换2三层交换 ├── 02_config/ # 所有设备的CLI配置文本按设备名归档 │ ├── AR1_core.cfg # 核心路由器OSPFACL静态路由汇总 │ ├── SW2_access.cfg # 接入层交换机VLAN 10/20/30 端口安全 │ └── ... # 共7个.cfg文件全部带中文注释 ├── 03_doc/ # 毕业设计文档体系非模板套话 │ ├── thesis_final.docx # 论文终稿含目录、页眉页脚、图表编号 │ ├── ip_plan_table.xlsx # IP地址规划表子网掩码/网关/VLAN ID全列明 │ └── troubleshooting_log.md # 故障复现与解决过程如“AR2无法学习AR3路由” ├── 04_presentation/ # 答辩PPT重点在“为什么这么设计” │ └── defense_slides.pptx # 含拓扑动画逐层点亮设备、ACL策略对比图 └── 05_tools/ # 辅助脚本提升二次开发效率 └── cfg_diff.py # Python脚本比对两版配置差异如修改ACL前后提示01_topo/下的.topo文件是eNSP工程的“心脏”它不仅保存设备位置和连线更固化了设备型号AR2220、S5700、初始配置状态、甚至串口连接关系。不要手动编辑它——所有配置变更必须通过导出/导入.cfg完成否则会导致eNSP加载失败。2.2 核心拓扑设计三层架构如何用7台设备落地这个拓扑不是教科书里的抽象分层图而是严格对应企业实际部署逻辑核心层Core1台AR2220AR1承担全网OSPF域骨干、外部出口模拟ISP、策略路由如财务VLAN走独立链路汇聚层Distribution2台S5700SW1/SW2做VLAN间路由SVI、MSTP生成树、端口聚合LACP接入层Access2台S5700SW3/SW4纯二层接入划分VLAN 10研发、20行政、30访客启用端口安全MAC地址绑定服务器区1台AR2220AR2模拟内网服务器集群Web/DNS/DHCP1台AR2220AR3模拟外部网络含静态路由回指关键设计细节所有VLAN SVI接口均配置arp broadcast enable避免三层交换机ARP广播抑制导致PC无法获取网关MACOSPF区域划分Area 0骨干覆盖AR1-SW1-SW2Area 1非骨干仅含AR2通过虚连接virtual-link接入Area 0DHCP服务由AR2提供但不直接给终端分配地址而是通过dhcp relay中继到AR1再由AR1的DHCP Server统一分配——这模拟了企业中DHCP集中管控的典型场景2.3 配置脚本的关键实现ACL策略与OSPF参数的实战取值配置不是命令堆砌每个参数都对应真实约束。以AR1_core.cfg中两段核心配置为例# ACL 3000控制跨VLAN访问研发VLAN10可访问行政VLAN20但反向禁止 acl number 3000 rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 rule 10 deny ip source 192.168.20.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 rule 15 permit ip source any destination any # interface GigabitEthernet0/0/1 # 连接SW1的接口 traffic-filter inbound acl 3000 # 注意ACL应用在inbound方向逻辑说明这条ACL实现了“研发可看行政行政不可看研发”的最小权限原则。rule 5放行研发→行政流量rule 10显式拒绝行政→研发rule 15兜底放行其他所有流量避免ACL默认deny导致业务中断。关键参数traffic-filter inbound而非outbound——因为流量进入AR1时需立即判断是否允许转发若放在outbound流量已进入核心层再丢弃浪费带宽且难定位。# OSPF进程骨干区域优化与防环设计 ospf 1 router-id 10.0.0.1 area 0.0.0.0 network 10.0.1.0 0.0.0.255 # AR1-SW1互联地址段 network 10.0.2.0 0.0.0.255 # AR1-SW2互联地址段 network 192.168.1.0 0.0.0.255 # AR1 Loopback0作为Router-ID来源 area 0.0.0.1 network 10.0.3.0 0.0.0.255 # AR1-AR2互联地址段 virtual-link 10.0.0.2 # 指向AR2的Router-ID建立虚连接 # # 关键防环配置关闭OSPF默认的路由汇总强制手工汇总 area 0.0.0.0 abr-summary 192.168.0.0 255.255.0.0 not-advertise # 不向Area 0通告明细路由逻辑说明virtual-link解决了Area 1未直连Area 0的拓扑缺陷abr-summary禁用自动汇总改为手工汇总192.168.0.0/16既减少LSA数量又避免因自动汇总导致的次优路径如192.168.10.0/24和192.168.20.0/24被错误汇总为192.168.0.0/16后AR1可能将去往192.168.30.0/24的流量误发往AR2。3. 快速运行指南三步加载、五步验证10分钟跑通全网3.1 环境准备eNSP版本与依赖组件的硬性要求这不是“装上就能跑”的玩具项目。经实测以下组合是唯一稳定运行环境eNSP版本V100R003C00SPC1002020年12月发布版为什么不是最新版V100R003C00SPC200版本存在S5700交换机SVI接口无法UP的玄学Bug且AR2200的ACL日志功能失效。某高校实验室曾因升级eNSP导致整批毕业设计拓扑无法启动血泪经验。依赖组件必须同时安装VirtualBox 5.2.44eNSP底层虚拟化引擎新版VirtualBox 7.x不兼容WinPcap 4.1.3抓包驱动缺它则eNSP无法捕获接口流量Wireshark 3.2.16用于验证ACL效果新版Wireshark过滤语法不兼容eNSP导出格式提示安装顺序必须为VirtualBox → WinPcap → eNSP。若跳过WinPcapeNSP启动时会弹窗报错“Failed to initialize packet capture”此时需卸载重装不能仅补装。3.2 加载拓扑从双击到设备上线的完整流程解压并定位将压缩包解压至无中文、无空格路径如D:\ensp_proj\避免eNSP读取.topo文件时路径解析失败启动eNSP右键eNSP快捷方式 → “以管理员身份运行”否则AR2200无法加载VRP系统镜像导入拓扑点击菜单栏文件 → 打开→ 选择01_topo/enterprise_v3.topo启动设备拓扑图加载后不要立即点击“启动全部”—— 先右键AR1 → “启动”等待其状态灯变绿约90秒再依次启动SW1、SW2、AR2、AR3、SW3、SW4原因AR1是OSPF DR/BDR选举核心若所有设备同时启动易因Hello包收发时序问题导致邻居卡在INIT或EXSTART状态3.3 五步验证法确认网络真正“活”起来验证不是ping通就算成功而是分层确认步骤操作预期结果失败定位点1. 设备基础连通在AR1上执行ping -c 4 10.0.1.2SW1互联地址Reply from 10.0.1.2: bytes56 Sequence1 ttl255 time1 ms检查AR1与SW1的G0/0/0接口物理状态display interface GigabitEthernet 0/0/02. OSPF邻居建立在AR1上执行display ospf peer显示SW1、SW2、AR2的State均为FullAddress为对方Loopback0地址若卡在2-Way检查ospf timer hello是否一致若Dead Time为0说明未收到Hello包物理链路或IP配置错3. 路由表完整性在AR1上执行display ip routing-table应含192.168.10.0/24研发、192.168.20.0/24行政、192.168.30.0/24访客等直连路由及192.168.0.0/16汇总路由若缺汇总路由检查abr-summary命令是否在正确Area下配置4. DHCP地址获取在SW3下挂的PC1VLAN10上执行ipconfig /renew获取到192.168.10.100~192.168.10.200范围IP网关为192.168.10.1SW1的SVI若获取失败在AR1上执行display dhcp server statistics查看地址池使用率在SW1上执行display dhcp relay确认中继配置5. ACL策略生效在PC1VLAN10上ping 192.168.20.10行政PC再从PC2VLAN20ping 192.168.10.10PC1→PC2应通PC2→PC1应超时Request timed out若双向都通检查ACL是否应用在inbound方向若双向都不通检查rule 15是否遗漏4. 常见问题排查那些让答辩前夜崩溃的5个真实翻车现场4.1 现象拓扑加载后所有设备图标显示灰色右键“启动”选项为灰色原因eNSP未检测到VRP系统镜像。该工程使用VRP V200R010C00SPC600AR2200专用但eNSP默认只识别V200R008C00版本。解决下载vrp_200r010c00spc600.7z资源包05_tools/目录下已提供解压后将vrp_200r010c00spc600.vrp文件复制到eNSP安装目录\res\devices\AR2200\vrp\重启eNSP右键AR2200 → “设置” → “系统软件” → 选择新镜像4.2 现象SW1与SW2之间LACP聚合组状态为Unselected端口始终DOWN原因S5700默认开启stp mode rstp而LACP与RSTP在端口角色选举上冲突导致聚合组无法协商。解决在SW1和SW2上分别执行system-view stp mode mstp # 切换为MSTP模式 interface Eth-Trunk 1 lacp priority 100 # 降低LACP优先级确保SW1为Master quit血泪经验某同学为省事直接删掉STP结果环路导致全网广播风暴eNSP直接假死。4.3 现象AR2服务器区能ping通AR1但AR1无法ping通AR2的Loopback010.0.0.2原因AR2的OSPF进程未宣告Loopback0网段导致AR1的路由表中无10.0.0.2/32明细路由。解决在AR2上补充配置ospf 1 area 0.0.0.1 network 10.0.0.2 0.0.0.0 # 关键Loopback0地址必须精确宣告注意network 10.0.0.2 0.0.0.0中的通配符必须为0.0.0.0若误写为0.0.0.255则匹配整个10.0.0.0/24网段可能引入非法路由。4.4 现象PC1VLAN10获取到IP后能ping通网关192.168.10.1但无法ping通同VLAN的PC2原因SW3的端口安全Port Security启用但未配置port-security max-mac-num 2导致PC1的MAC地址占满端口学习表PC2的ARP请求被丢弃。解决在SW3上执行interface GigabitEthernet0/0/1 port-security enable port-security max-mac-num 2 # 允许同一端口学习2个MACPC1PC24.5 现象答辩演示时Wireshark抓包显示ACL 3000的deny规则命中数为0但PC2仍无法访问PC1原因ACL应用在inbound方向但流量实际从GigabitEthernet0/0/1的outbound方向离开AR1即PC2→PC1的返回流量。ACL未覆盖返回路径。解决在AR1上为返回流量接口如连接SW2的GigabitEthernet0/0/2同样应用ACLinterface GigabitEthernet0/0/2 traffic-filter outbound acl 3000 # 注意方向为outbound玄学提示eNSP的ACL日志功能在V100R003C00SPC100版存在延迟需等待30秒以上才在display acl 3000中显示matched计数。5. 二次开发改造指南从替换设备到新增策略的四步安全演进5.1 设备替换用AR3260替代AR2200的核心操作清单当导师要求“必须用高端路由器体现技术深度”时不能简单替换设备图标。AR3260与AR2220的VRP版本、命令集、硬件资源存在本质差异项目AR2220 (VRP V200R008)AR3260 (VRP V200R010)改造动作OSPF进程号ospf 1ospf 100避免与旧设备冲突修改所有.cfg中ospf命令ACL编号范围3000-39993000-3999兼容但推荐用2000-2999标准ACL重命名ACL 3000为2000更新traffic-filter引用DHCP地址池名称ip pool vlan10ip pool vlan10_pool强制加_pool后缀修改AR2配置中ip pool定义及dhcp select global调用硬件接口命名GigabitEthernet0/0/1GigabitEthernet1/0/1槽位号变化在.topo文件中右键AR3260 → “设置” → 重新连线再导出新配置关键步骤先在eNSP中删除原AR2220拖入AR3260手动配置相同IP地址和Loopback0再右键“导出配置”生成新.cfg最后用cfg_diff.py比对新旧配置差异人工合并逻辑如OSPF区域宣告、ACL规则。5.2 新增NAT策略为访客VLAN提供互联网访问的最小改动原拓扑中访客VLAN192.168.30.0/24仅限内网访问。若需增加“访客可上网但不可访问内网”策略只需三处修改在AR1上创建NAT地址池nat address-group guest_nat 100.1.1.10 100.1.1.20 # 模拟公网地址段编写NAT ACL仅放行访客出向流量acl number 2000 rule 5 permit source 192.168.30.0 0.0.0.255 # 只允许访客VLAN在AR1的出口接口连接AR3应用NATinterface GigabitEthernet0/0/3 nat outbound 2000 address-group guest_nat验证方法在SW4下挂的PC3VLAN30执行tracert 114.114.114.114路径应显示经过AR110.0.3.1→ AR310.0.3.2→ 外部IP同时ping 192.168.10.10必须超时证明内网隔离有效。5.3 拓扑扩展添加无线AC控制器的接口对接规范若毕业设计需加入WLAN部分新增AC设备时绝不能直接用二层线缆连接。必须遵循企业级AC-CAPWAP架构AC设备如AC6005需配置管理IP如192.168.100.1/24该网段独立于现有VLAN在SW1上创建新VLAN 100并配置SVIvlan batch 100 interface Vlanif100 ip address 192.168.100.254 255.255.255.0将AC的管理口接入SW1的任意端口并划入VLAN 100在AC上配置CAPWAP源接口capwap source interface Vlanif100为什么不用二层透传因为CAPWAP隧道需三层可达二层直连会导致AC无法发现APAP通过DHCP Option 43获取AC地址而Option 43需三层路由支持。从那以后我每次做eNSP拓扑都强制走一遍“配置导出→文本比对→ACL方向复查→OSPF邻居验证”四步 checklist哪怕只是改一行注释。这看似多花5分钟却避免了答辩现场面对导师“你这个ACL到底生效没”时的手足无措。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

真空共晶回流焊炉良率提升案例复盘

真空共晶回流焊炉良率提升案例复盘

去年秋天,一家做安防摄像头的企业找到我们,说他们的真空共晶回流焊炉最近“脾气”特别大。同一批芯片、同一盘焊膏,今天焊出来满屏光亮,明天就出一堆空洞。产线主管摊开前一周的报废板,指着上面密密麻麻的灰色斑点跟我…

2026/10/17 8:50:31 阅读更多 →
Meshroom三维重建实战:摄影测量原理、参数调优与避坑指南

Meshroom三维重建实战:摄影测量原理、参数调优与避坑指南

简介:Meshroom是一款面向摄影测量初学者与三维建模爱好者的开源图像三维重建软件,无需专业扫描设备,仅凭多角度普通照片即可生成高精度带纹理3D模型,显著降低建筑测绘、文物数字化、VR内容创作等场景的建模门槛。资源为Windows免安…

2026/10/17 15:30:18 阅读更多 →
asc-devkit 算子调测实战:用 SetOpNameType 为 ContextBuilder 构造 Tiling 上下文指定算子名字与类型

asc-devkit 算子调测实战:用 SetOpNameType 为 ContextBuilder 构造 Tiling 上下文指定算子名字与类型

人工智能深度学习算子库CANNAscend 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址&…

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

最新新闻

医用具身机器人:标本识别校验与合规留痕的临床实践

医用具身机器人:标本识别校验与合规留痕的临床实践

1. 项目概述:当机器人不再只是“移动货架”,而是科室里的合规守门人医用具身机器人走进科室,这个标题里藏着三个被长期低估的真相:第一,“具身”不是噱头,它意味着机器人必须像人一样拥有感知、决策与执行的…

2026/10/17 21:37:42 阅读更多 →
Kafka如何成为AI数据管道主动脉?从原理到实践

Kafka如何成为AI数据管道主动脉?从原理到实践

最近技术社区里“Kafka已正式接入AI”这个说法频繁出现。初看像是一个产品公告,实际上更像一个趋势信号:Kafka早已不只是传统的消息中间件,在AI大模型落地这件事上,它正变成承担数据流入流出任务的主动脉。AI项目做久了会发现&…

2026/10/17 21:37:42 阅读更多 →
Ubuntu24 安装 ClaudeCode 后,把 settings 改到 TaoToken 的完整配置大纲

Ubuntu24 安装 ClaudeCode 后,把 settings 改到 TaoToken 的完整配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 21:37:42 阅读更多 →
DeepSeek R1 本地部署实战:Ollama 量化模型与客户端访问指南

DeepSeek R1 本地部署实战:Ollama 量化模型与客户端访问指南

简介:本资源面向希望在本地环境运行 DeepSeek R1 大模型的开发者与 AI 爱好者,提供从部署到 Web 访问的完整指引,帮助解决本地推理环境搭建与交互体验优化的问题。资源包共 1 个 PDF 文件,大小约 1.54MB,内容围绕 Olla…

2026/10/17 21:37:42 阅读更多 →
GhostESP无线安全研究法律红线:你必须知道的5条合规边界完整指南

GhostESP无线安全研究法律红线:你必须知道的5条合规边界完整指南

【免费下载链接】GhostESP The open-source wireless research platform for ESP32. 项目地址: https://gitcode.com/gh_mirrors/gho/GhostESP 点击查看 免费下载 GhostESP 是一个基于 ESP32 的开源无线安全研究平台,支持 Wi-Fi 与 BLE 深度扫描、实时抓…

2026/10/17 21:37:42 阅读更多 →
Kafka接入AI实战:从数据管道到异步推理的架构设计

Kafka接入AI实战:从数据管道到异步推理的架构设计

1. 为什么AI项目越做越绕不开Kafka前阵子帮一个做实时风控的团队排查消费堆积,整整一下午盯着Kafka的lag数据,从几万涨到几十万,消费者一直处于"拉消息-处理-再拉"的状态,但就是追不上。最后发现问题不在Kafka本身&…

2026/10/17 21:36:41 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →