思科设备下两个不同网段互联互通:从静态路由到OSPF的完整配置与排错指南
1. 两个不同网段相连到底在连什么“两个不同网段相连接”这句话刚入行的朋友听起来可能觉得就是插两根网线的事但真正做过网络实施的人都知道这背后牵扯的是三层路由、网关指向、子网掩码计算以及设备转发逻辑的一整套配合。我自己第一次碰到这个需求的时候是在一个模拟项目里手上有两台思科路由器一边挂着 192.168.1.0/24 的办公终端另一边挂着 192.168.2.0/24 的服务器区要求两边能互相 ping 通、能访问服务。当时我以为把两台路由器的接口配好 IP 就完事了结果终端死活不通排查了大半天才发现是回程路由缺失。这篇文章就是把我这些年做思科设备互联时踩过的坑、总结出来的方法完整地摊开来讲。核心关键词就一个思科设备下两个不同网段的互联互通。我会从最基础的设计思路讲起一直讲到具体的配置命令、验证方法、常见故障排查。适合谁看刚考完 CCNA 想上手真机或者模拟器的朋友、中小型企业里兼管网络的运维、还有需要做网络实验的学生。不管你是零基础还是有点底子只要跟着思路走都能把两个网段连起来。需要先明确一个概念不同网段之间的通信本质上是三层通信。同一网段内靠 ARP 广播找 MAC 地址就能通但跨网段时源主机发现目标 IP 不在自己网段就会把包丢给默认网关由网关也就是路由器或三层交换机负责转发。所以“连接两个网段”这件事真正要解决的是让中间那台三层设备知道去往每个网段该怎么走。想通这一点后面所有配置都是围绕它展开的。2. 方案选型用路由器还是三层交换机在思科的世界里把两个不同网段连起来常见有三条路路由器互联、三层交换机互联、以及单臂路由。选哪条路取决于你的设备条件、端口数量、预算和性能要求。我下面把三种方案的适用场景和取舍逻辑讲清楚这也是很多教程一上来就丢命令、却不告诉你为什么的原因。2.1 三种主流方案对比方案核心设备适用场景优点局限路由器互联两台或多台路由器跨区域、跨机房、需要广域网接入路由功能强、支持 NAT、策略灵活端口少、转发性能相对低三层交换机互联三层交换机园区网内部 VLAN 间互通转发快、端口密度高、成本可控路由功能相对简化单臂路由一台路由器二层交换机预算有限、VLAN 数量少省设备、省端口路由器单接口成瓶颈、配置稍绕我个人的经验是如果是实验室或者小规模场景两台路由器背靠背互联最直观因为路由器的路由表逻辑清晰调试起来一眼就能看明白。如果是企业园区网VLAN 多、终端多那三层交换机做 VLAN 间路由才是正解性能和数据中心需求都扛得住。单臂路由现在用得少了但在只有一台路由器和一台二层交换机的条件下它依然是能救场的方案。2.2 为什么路由器互联最适合入门理解路由器互联的最大好处是把“路由”这件事显性化了。你配完接口 IP路由器会自动生成直连路由但去往对端网段的路由要么靠静态路由手动指要么靠动态路由协议学。这个过程逼着你去理解“路由表是怎么来的”“下一跳是什么意思”。相比之下三层交换机配个 SVI 接口、开个ip routing很多直连网段就自动通了反而容易让人忽略底层逻辑。所以本文的主线我选择两台思科路由器背靠背互联作为核心案例把静态路由和动态路由都走一遍。等你把这套逻辑吃透换成三层交换机或者单臂路由只是命令形式变了思路完全一样。2.3 拓扑设计的几个关键决策在动手之前有几个设计决策必须先定下来否则配到一半会返工。第一互联链路用哪个网段。很多人习惯拿业务网段直接连这是大忌。两台路由器之间的那条链路应该单独规划一个互联网段比如 10.0.0.0/30 或者 192.168.100.0/30。为什么用 /30因为点对点链路只需要两个可用地址/30 正好提供两个不浪费。如果你用 /24虽然也能通但白白浪费 252 个地址规划上不专业。第二接口类型选什么。思科路由器的以太网接口默认是路由口直接配 IP 就行。但如果是串行接口Serial要确认时钟频率clock rate配在哪一端DCE 端才需要配。现在实验环境大多用以太网口模拟省去了这层麻烦。第三要不要跑动态路由。两个网段、两台路由器静态路由完全够用而且稳定、可控、不占资源。但如果网段数量增长到五六个、或者链路会变化那就该上 OSPF 这类动态协议了。我的建议是先用手动静态路由把逻辑跑通再考虑动态路由这样出问题时你知道是哪条路由没写对。3. 核心细节IP 规划与路由原理拆解配置之前把 IP 规划和路由原理理清楚比急着敲命令重要得多。这一节我把地址规划、子网计算、路由表生成逻辑讲透后面配置时你就能做到心里有数。3.1 地址规划与子网掩码计算假设我们有两台路由器 R1 和 R2拓扑如下R1 的 LAN 侧接 192.168.1.0/24 网段R2 的 LAN 侧接 192.168.2.0/24 网段两台路由器之间用 10.0.0.0/30 互联。具体地址分配R1 的 LAN 接口G0/0192.168.1.1/24作为 192.168.1.0/24 网段的网关R1 的互联接口G0/110.0.0.1/30R2 的互联接口G0/110.0.0.2/30R2 的 LAN 接口G0/0192.168.2.1/24作为 192.168.2.0/24 网段的网关这里有个细节要算清楚10.0.0.0/30 的可用地址是哪两个。/30 的掩码是 255.255.255.252网络号 10.0.0.0广播地址 10.0.0.3可用主机地址就是 10.0.0.1 和 10.0.0.2。正好一端一个不多不少。如果你错配成 10.0.0.3那就是广播地址接口会报错或者行为异常。再确认一下 192.168.1.0/24 的网关为什么是 .1。习惯上我们把网段的第一个可用地址作为网关但这不是强制的.254 也常见。关键是终端上配置的默认网关必须和路由器 LAN 接口的 IP 一致否则终端根本不会把跨网段的包交给路由器。3.2 路由表是怎么“长”出来的路由器转发靠的是路由表。路由表里的条目来源有三种直连路由、静态路由、动态路由。理解这三者的优先级和生成方式是排查问题的关键。直连路由只要接口配了 IP 并且 up路由器自动生成一条直连路由。比如 R1 配了 192.168.1.1/24路由表里就有C 192.168.1.0/24 is directly connected, GigabitEthernet0/0。同理 10.0.0.0/30 也会自动出现。但注意R1 不会自动知道 192.168.2.0/24 在哪因为那不是它的直连网段。静态路由需要手动写。在 R1 上要写一条ip route 192.168.2.0 255.255.255.0 10.0.0.2意思是“去往 192.168.2.0/24 的包交给下一跳 10.0.0.2”。同理 R2 上要写ip route 192.168.1.0 255.255.255.0 10.0.0.1。这两条路由必须双向都写只写一边就会出现“去得回不来”的单向通现象这也是新手最常踩的坑。动态路由如果跑 OSPF两台路由器互相宣告自己的网段路由表会自动学习。但动态路由有收敛时间、有协议开销小场景下没必要。提示静态路由的下一跳地址必须是直连可达的。也就是说 10.0.0.2 必须在 R1 的直连网段里否则这条静态路由不会生效除非配了递归路由那是进阶话题。3.3 数据包的一次完整旅程为了让你彻底明白我描述一个包从 192.168.1.10 发往 192.168.2.20 的全过程。第一步PC1192.168.1.10发现目标 192.168.2.20 不在自己网段用掩码一算就知道于是查自己的默认网关 192.168.1.1把包发给 R1 的 G0/0 接口。第二步R1 收到包查路由表发现 192.168.2.0/24 的下一跳是 10.0.0.2于是从 G0/1 接口转发出去。第三步R2 从 G0/1 收到包查路由表发现 192.168.2.0/24 是自己的直连网段直接从 G0/0 发出去最终到达 PC2。回程同理PC2 的网关是 192.168.2.1包回到 R2R2 查表发现 192.168.1.0/24 下一跳是 10.0.0.1转给 R1R1 再发给 PC1。整个过程里每一跳都只关心下一跳是谁这就是逐跳转发。理解了这条链路你就知道任何一环缺失都会导致不通网关配错、静态路由漏写、接口没 up、掩码算错都会断在这条链上。4. 实操配置从零把两个网段打通理论讲完进入动手环节。我用思科 IOS 的命令行把两台路由器的完整配置走一遍。你可以直接在 Packet Tracer、EVE-NG 或者真机上照着敲。4.1 R1 的完整配置先进入全局配置模式配置主机名和接口。R1 enable R1# configure terminal R1(config)# hostname R1 R1(config)# interface GigabitEthernet0/0 R1(config-if)# ip address 192.168.1.1 255.255.255.0 R1(config-if)# no shutdown R1(config-if)# exit R1(config)# interface GigabitEthernet0/1 R1(config-if)# ip address 10.0.0.1 255.255.255.252 R1(config-if)# no shutdown R1(config-if)# exit接口配完先别急着写路由用show ip interface brief确认两个接口都是 up/up 状态。如果显示 down检查线缆连接或者接口是否被 shutdown。接着写静态路由R1(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2这条命令的含义前面讲过去往 192.168.2.0/24 的包丢给 10.0.0.2。写完后可以用show ip route查看应该能看到一条S 192.168.2.0/24 [1/0] via 10.0.0.2。那个S就代表静态路由[1/0]是管理距离和度量值静态路由默认管理距离是 1。4.2 R2 的完整配置R2 的配置和 R1 对称注意接口 IP 和路由方向要对调。R2 enable R2# configure terminal R2(config)# hostname R2 R2(config)# interface GigabitEthernet0/0 R2(config-if)# ip address 192.168.2.1 255.255.255.0 R2(config-if)# no shutdown R2(config-if)# exit R2(config)# interface GigabitEthernet0/1 R2(config-if)# ip address 10.0.0.2 255.255.255.252 R2(config-if)# no shutdown R2(config-if)# exit R2(config)# ip route 192.168.1.0 255.255.255.0 10.0.0.1到这里两台路由器的配置就完成了。核心就三件事接口 IP、接口 up、双向静态路由。看起来简单但每一步都有讲究。4.3 终端侧的配置要点路由器通了不代表终端就通。PC1 上要配IP 192.168.1.10掩码 255.255.255.0网关 192.168.1.1。PC2 上配IP 192.168.2.20掩码 255.255.255.0网关 192.168.2.1。网关这一项最容易漏很多人只配了 IP 和掩码结果跨网段死活不通就是因为终端不知道把包交给谁。如果你用的是模拟器里的 PC直接在桌面配置界面填就行。如果是 Linux 主机命令是ip addr add 192.168.1.10/24 dev eth0 ip route add default via 192.168.1.1Windows 主机则在网络适配器属性里手动填 IP、掩码、网关。4.4 验证连通性的正确姿势配置完验证要分层做不要一上来就 ping 对端终端那样出问题你不知道断在哪一层。第一步在 R1 上 ping R2 的互联接口ping 10.0.0.2。通了说明二层链路和互联网段没问题。第二步在 R1 上 ping R2 的 LAN 接口ping 192.168.2.1。通了说明 R1 的路由表正确R2 也能回包。第三步在 PC1 上 ping PC2ping 192.168.2.20。通了说明整条链路和终端配置都没问题。如果第二步不通八成是 R2 缺回程路由如果第三步不通但第二步通那问题多半在终端网关或者 PC 的防火墙。这种分层排查法能帮你快速定位故障点。5. 常见故障与排查技巧实录网络配置最耗时间的从来不是敲命令而是排错。下面这些坑我几乎每一个都亲自踩过整理成速查表你遇到问题时可以对着查。5.1 故障速查表现象可能原因排查命令解决方向互联接口 ping 不通接口 down、IP 配错、掩码不一致show ip interface brief检查 no shutdown、IP 和掩码R1 能 ping R2 的 LAN 口但 PC 不通终端网关配错终端ipconfig网关改成路由器 LAN 口 IP单向能通、反向不通缺回程静态路由show ip route在对端补写静态路由时通时不通路由环路或 ARP 冲突show arp、debug ip icmp检查是否有重复 IP静态路由不生效下一跳不可达show ip route static确认下一跳在直连网段掩码配错导致网段重叠子网划分错误show running-config重新规划地址5.2 三个最容易被忽略的细节第一个掩码不一致。互联链路一端配 /30另一端配 /24虽然某些情况下能通但路由表会出问题因为两端认为的网段范围不一样。我见过有人一端 10.0.0.1/30、另一端 10.0.0.2/24结果 R2 认为整个 10.0.0.0/24 都是直连路由行为就乱了。互联链路两端掩码必须一致。第二个静态路由写成了下一跳的接口。有人图省事写ip route 192.168.2.0 255.255.255.0 GigabitEthernet0/1用出接口代替下一跳。这在点对点链路上勉强能用但在以太网这种多路访问网络上会出问题因为路由器不知道下一跳的 MAC 地址可能触发代理 ARP 或者丢包。规范做法是写下一跳 IP。第三个忘了保存配置。思科的配置在内存里重启就没了。配完一定要write memory或者copy running-config startup-config。我就吃过这个亏调了半天通了一断电全白干。5.3 用 debug 和 ping 扩展排查当基础排查搞不定时可以上debug。比如debug ip icmp能看到 ICMP 包的收发情况debug ip routing能看到路由表的变动。但要注意debug 在生产环境慎用输出量大可能拖垮设备 CPU。实验环境里用用没问题用完记得undebug all或者no debug all关掉。还有一个技巧是扩展 ping。在思科设备上输入ping回车然后按提示逐项填目标 IP、源 IP、包数量、大小等。指定源 IP 特别有用比如你想测试从 192.168.1.1 这个源去 ping 192.168.2.20就能验证特定源地址的路由是否正确。6. 从静态路由升级到动态路由的思路两个网段用静态路由没问题但如果你手上有五个、十个网段静态路由的维护成本就上来了。每加一个网段所有路由器都要改配置容易漏、容易错。这时候就该考虑动态路由协议了。6.1 什么时候该上 OSPF判断标准很简单网段数量超过三个或者链路会增减变化就值得上 OSPF。OSPF 是链路状态协议每台路由器把自己的直连网段宣告出去邻居之间互相学习最终每台路由器都有完整的网络拓扑。加网段时只需要在对应路由器上宣告其他路由器自动学到不用逐台改。在 R1 和 R2 上启用 OSPF 的基本配置R1(config)# router ospf 1 R1(config-router)# network 192.168.1.0 0.0.0.255 area 0 R1(config-router)# network 10.0.0.0 0.0.0.3 area 0R2(config)# router ospf 1 R2(config-router)# network 192.168.2.0 0.0.0.255 area 0 R2(config-router)# network 10.0.0.0 0.0.0.3 area 0注意这里的0.0.0.255是反掩码wildcard mask不是子网掩码。反掩码的规则是0 表示必须匹配1 表示任意。所以 0.0.0.255 匹配 192.168.1.0/24 整个网段。这是 OSPF 配置里最容易搞混的地方很多人把子网掩码填进去结果宣告不生效。6.2 静态路由和 OSPF 的取舍上了 OSPF 之后原来的静态路由要不要删看情况。如果静态路由和 OSPF 学到的路由指向同一目的地路由器会比较管理距离静态路由默认管理距离 1OSPF 是 110静态路由优先。所以静态路由会覆盖 OSPF 学到的路由。如果你希望 OSPF 接管就得把静态路由删掉。我的建议是核心链路用 OSPF 保证冗余和自动收敛默认路由或者特定出口用静态路由兜底。这种混合用法在企业网里很常见既灵活又可控。6.3 验证 OSPF 邻居关系配完 OSPF第一件事是确认邻居建立成功show ip ospf neighbor。正常应该看到邻居状态是 FULL。如果是 INIT 或者 EXSTART说明 Hello 包能收到但参数不匹配常见原因是 area ID 不一致、Hello/Dead 计时器不一致、或者认证配置不同。邻居不起来路由就学不到这是 OSPF 排错的第一站。邻居 FULL 之后用show ip route ospf查看学到的 OSPF 路由应该能看到对端网段以O开头出现在路由表里。到这一步两个网段的互通就从手动维护升级成了自动学习。7. 我个人在实际操作中的几点体会做了这么多年的网络配置我最大的感受是命令本身不难难的是对数据流向的理解。你把一个包从源到目的的每一跳都想清楚了配置就是水到渠成的事反过来如果只是背命令遇到拓扑一变就懵了。另外排错一定要分层。物理层看接口 up 没 up数据链路层看 ARP 通不通网络层看路由表对不对一层一层往上排比盲目 ping 高效得多。我见过太多人一不通就重启设备、重配一遍结果问题还在因为根本没找到根因。最后分享一个小习惯每配完一步就验证一步。配完接口show ip interface brief配完路由show ip route配完 OSPFshow ip ospf neighbor。这样一旦出错你立刻知道是哪一步的问题而不是全部配完再回头找那时候变量太多排查成本翻倍。这个习惯帮我省下的时间比我学任何高级技术都值。

相关新闻

DDR4内存条原理图与PCB设计实战:从选型到验收的完整指南

DDR4内存条原理图与PCB设计实战:从选型到验收的完整指南

简介:这份资源面向电子工程师、计算机硬件爱好者与DIY玩家,提供DDR4内存条的完整硬件设计文件,帮助理解内存条从原理图到PCB布局的实现细节。压缩包共10个文件,约2.29MB,包含5个SchDoc原理图、1个PcbDoc电路板文件、1个…

2026/10/17 1:58:29 阅读更多 →
ACE-Step UI 评测:一套免费本地 AI 音乐生成工具的完整上手指南

ACE-Step UI 评测:一套免费本地 AI 音乐生成工具的完整上手指南

ACE-Step UI 评测:一套免费本地 AI 音乐生成工具的完整上手指南 【免费下载链接】ace-step-ui 🎵 The Ultimate Open Source Suno Alternative - Professional UI for ACE-Step 1.5 AI Music Generation. Free, local, unlimited. Stop paying for Suno!…

2026/10/17 1:57:29 阅读更多 →
YApi部署实战:Linux环境下的Node.js+MongoDB+pm2完整指南

YApi部署实战:Linux环境下的Node.js+MongoDB+pm2完整指南

/* 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 1:57:29 阅读更多 →

最新新闻

云原生功能测试实践:容器与微服务特性适配关键点

云原生功能测试实践:容器与微服务特性适配关键点

1. 项目背景与测试定位:容器化之后,功能测试到底测什么做云原生应用测试,最怕的就是一上来就扎进细节里。我接手这份“云原生应用软件功能测试报告:容器与微服务特性适配”的时候,第一反应不是急着列用例,而…

2026/10/17 4:41:13 阅读更多 →
Skill与Tool的本质区别:从执行单元到可演进认知单元

Skill与Tool的本质区别:从执行单元到可演进认知单元

1. 这不是概念辨析,而是工程现场的生存法则“Skill 为什么不同于 Tool?”——这个问题在Agent开发群里被问了37次,每次都有人贴出一段抽象定义:Tool是函数,Skill是能力封装。但真正跑通一个生产级Agent项目的工程师&am…

2026/10/17 4:41:13 阅读更多 →
开源项目周刊W38:代码评审、ADHD输出、智能体底座与文本去AI味

开源项目周刊W38:代码评审、ADHD输出、智能体底座与文本去AI味

1. 本周刊定位与内容拆解思路Github周刊这个系列我做了快两年,每周固定花三四个小时刷Trending、翻Star增速榜、蹲几个高质量作者的动态。2026年W38这一期信息密度格外高,四个项目分别踩中了代码协作、无障碍交互、智能体基础设施和内容真实性四个完全不…

2026/10/17 4:41:13 阅读更多 →
大模型参数量的本质:任务复杂度与架构约束的硬性映射

大模型参数量的本质:任务复杂度与架构约束的硬性映射

1. 这不是“堆料”,而是模型能力的物理边界“大模型的参数量为什么那么大?”——这个问题最近在技术社区、产品会议甚至高校课堂里反复出现,背后其实藏着一个被严重低估的事实:参数量不是工程师拍脑袋定的数字,而是当前…

2026/10/17 4:41:13 阅读更多 →
PySpark合成数据生成指南:从随机数到业务级假数据

PySpark合成数据生成指南:从随机数到业务级假数据

做数据开发这几年,我发现自己最常干的工作,一半是写业务逻辑,一半是“造数”。给下游团队演示报表要一批数据,给算法模型跑通流程要一批数据,给新集群做性能压测还要一批数据。真实数据牵扯内部权限和隐私管控&#xf…

2026/10/17 4:41:13 阅读更多 →
PyG自定义Data类:__inc__与__cat_dim__详解

PyG自定义Data类:__inc__与__cat_dim__详解

1. 从一次数据加载报错说起第一次在 PyTorch Geometric 里自定义Data类做小批量训练时,我遇到过一个很典型的报错:RuntimeError: The size of tensor a (5) must match the size of tensor b (4) at non-singleton dimension 0。当时排查了半天&#xff…

2026/10/17 4:40:13 阅读更多 →

日新闻

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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →