从零搭建家庭私有云:一份完整的DIY NAS实践指南
去年夏天我的一块移动硬盘在拷贝过程中突然发出异响随后系统提示“无法访问”。那一刻里面存着过去三年拍的家庭视频、工作文档和一堆舍不得删的照片。虽然最后通过数据恢复软件救回了一部分但从此我对“把数据放在单块硬盘里”这件事彻底失去安全感。正是那次经历让我决定动手做一个属于自己的家庭私有云存储项目。这个项目不需要多高的技术门槛也不需要昂贵的品牌设备核心思路就是用一台便宜的二手办公小主机加几块硬盘再配合成熟的开源系统搭建一个可以随时存取、自动备份、还能在外网访问的私人存储中心。这篇文章从头到尾记录了我从需求拆解、设备选型、系统安装到日常使用和故障处理的全过程。不管你是被照片和文档逼到崩溃的普通人还是想给家里加一个统一备份节点的技术爱好者都可以从里面找到可以直接抄作业的步骤和值得避开的坑。1. 项目动机一次次拷贝出错后我决定不再依赖单块硬盘1.1 一个糟糕的备份习惯在动手之前我的“备份”方式很原始照片存手机和电脑工作文档扔网盘视频偶尔拷进移动硬盘。看起来每个地方都有实际上没有任何地方是可靠的。手机存储和电脑硬盘都会坏网盘虽然有同步但大文件上传慢、隐私也让人不放心移动硬盘又只有一份副本一旦物理损坏就是灾难。真正压垮我的不是数据量而是“数据散落”带来的混乱。有一次要找一个去年拍的视频我翻了手机、电脑、两块移动硬盘足足折腾了半个多小时。那一刻我意识到问题的核心不是“存储空间不够”而是缺一个统一管理的、会自动备份的、还能让我在任何地方访问的存储中心。1.2 需求拆解我要解决的是“存储”还是“访问”开始研究时我先把自己的需求列成了一张清单而不是直接去挑设备。这份清单也是后来所有选型的判断依据需求具体描述优先级数据安全任意一块硬盘损坏时数据不丢失最高统一存储全家人照片、视频、文档集中到一个位置高自动备份手机照片、笔记本电脑文件自动同步高远程访问出差时也能读取家里的文件中功耗与噪音7×24小时运行不能太吵太耗电中预算不含硬盘主机部分尽量控制在1500元以内中想清楚之后我给自己定了一条原则先解决“数据安全”再解决“访问便利”。如果预算只够买一块硬盘那就先不追求冗余但系统层面必须支持后续扩展如果系统不稳定远程功能再花哨也没用。这个排序在后面很多决策里都起了作用。2. 方案选型成品NAS和DIY自组我为什么选了后者2.1 三条路线对比确定了需求后我花了大约一周时间研究可选方案。当时主要考虑三条路线直接买成品NAS、用旧电脑改装、买二手办公小主机自组。我做了个对比表格把每一项的关键差异列了出来对比维度成品NAS旧电脑改装二手办公小主机自组初期上手难度很低插盘装系统即可需要自己理线、调硬件中等需要选硬件和装系统扩展性受盘位数量限制取决于机箱和电源一般有2-4个SATA口基本够用体积和功耗小巧、功耗低通常体积大、风扇吵体积小功耗较低价格较高系统授权也含在售价里看手上有什么最可控按需购买可玩性有限主要以厂商生态为主高高维护成本厂商升级省心硬件容易老化自己动手知识成本换性价比成品NAS最大的优点是省心开箱即用手机端和电脑端的App也做得比较成熟。但它的价格里有一块是品牌溢价和系统授权盘位少的入门型号往往只支持两颗硬盘实际可用空间不够我存放多年的视频和照片。旧电脑改装虽然成本最低但普通家用台式机机箱大、电源转换效率低长期开机一个月下来电费也不划算。2.2 从预算倒推硬件配置我最后选了二手办公小主机这条路。原因很直接这类机器是大型办公环境批量淘汰下来的市场存量很大价格便宜而且功耗通常比游戏主机低一个量级。我的具体配置如下主机某品牌的准系统迷你主机搭载低功耗四核处理器支持DDR4内存内存8GB后来扩到了16GB因为开了不少Docker服务硬盘两块4TB机械硬盘数据盘一块240GB固态硬盘系统盘启动U盘8GB用于安装系统整体算下来不含硬盘的主机价格不到900元加上硬盘后的总成本约2000元。这个价位买成品NAS只能买到两盘位入门款而我的方案做到了四盘位级扩展潜力内存和CPU也完全够用。2.3 软件系统选择的关键判断硬件定下来之后软件系统是最让人纠结的。市面上主流的开源私有云系统有好几套它们各有侧重。我需要的不只是文件存储还要有相册备份、文件同步、远程访问这些能力。挑选时我重点关注了三个维度是否支持软件RAID、应用生态是否丰富、社区资料是否足够多。最后选择了基于Linux服务器系统的基础方案配合一套成熟的开源存储管理套件。这样做的原因是底层Linux足够稳定维护资料多存储管理套件把磁盘管理、共享文件夹、用户权限这些操作界面化了不用天天敲命令更重要的是它支持插件机制后面想装下载工具、同步网盘、监控服务都很方便。提示选择软件系统时不要只看截图漂不漂亮一定要看它是否支持你计划用的文件系统以及社区对硬件兼容性讨论多不多。冷门系统出了问题找答案的成本远高于你省下的那点系统授权费。3. 组装和安装一台二手办公主机的改造全过程3.1 硬件升级和硬盘安装二手办公主机到手后的第一件事不是急着开机而是先拆开清理。办公环境淘汰的机器普遍积灰严重风扇和散热片上全是灰长期运行容易高温降频。我用软毛刷和鼓风机彻底清理了一遍顺手换了CPU上的导热硅脂。这一步看似无关紧要实则对7×24小时运行的设备影响很大。接着是升级内存和安装硬盘。原来的机器只有4GB内存跑存储管理套件和几个应用会捉襟见肘我直接买了一条二手8GB内存插上组成双通道总内存变成16GB。机械硬盘没有像笔记本那样直接插入的盘位而是通过硬盘支架固定到机箱内部再用SATA数据线和SATA供电线连接。这里有个细节老办公机通常只有一个SATA供电接口或者供电电流有限如果打算装多块机械硬盘最好先确认电源的12V输出够不够。安装硬盘时还要注意避震。有些迷你机箱会把硬盘直接架在金属板上半夜非常吵我加了几颗橡胶垫圈效果立竿见影。系统盘选了240GB固态安装在主板的M.2接口上运行速度和噪音表现都好很多。3.2 系统安装与初始化硬件装好后我用U盘刻录了Linux系统启动盘。办公小主机没有内置光驱U盘启动是最方便的方式。开机时按启动快捷键进入启动菜单选择U盘启动就能进入系统安装界面。系统安装过程本身不复杂关键是分区策略要想清楚。我的做法是固态硬盘分成两个分区一个挂载为根目录一个作为预留空间两块机械硬盘暂时不分区等系统装好后直接做软RAID安装完成后我进入系统先执行了系统更新然后安装存储管理套件。这个过程会下载很多依赖包建议在有稳定网络的环境下进行。3.3 创建软件RAID与文件共享系统准备好之后最重要的一步就是把两块4TB机械硬盘组成镜像阵列。这里说的RAID不是硬件RAID卡而是Linux内核自带的软RAID功能。原理很简单两块硬盘写入完全相同的数据任何一块物理损坏时另一块仍然保存全部数据。我按照存储管理套件的引导把两块硬盘从“未分配”状态添加到一个存储池中选择镜像模式。它自动完成了分区、文件系统创建和挂载。整个过程大约花了几个小时因为需要同步一次全盘数据。等阵列状态变成“正常”后我开始创建共享文件夹规划如下共享文件夹用途权限photos家人照片和视频所有人可读仅管理员写入documents工作文档和扫描件仅指定账户可读写backup设备整机备份仅备份服务访问media影视资源和音乐访客可读这里给了我一条重要的经验权限在最开始就要设置好不要图省事全都给“所有人可读写”。否则后期整理时你根本分不清文件是自动同步产生的还是手动放进去的也没办法限制不同设备的访问范围。4. 家庭私有云的日常功能配置手机备份、文件同步与远程访问4.1 局域网下的SMB文件共享与速度测试系统装好、存储阵列创建完成之后我的家庭私有云已经具备了最基础的“网络硬盘”能力。接下来要做的是让它真正融入日常使用。我通过存储管理套件开启了SMB服务。SMB是一种网络文件共享协议Windows、macOS、安卓、电视盒子都能直接访问。在电脑上我映射了一个网络驱动器地址形式类似“\192.168.x.x\photos”这样在文件管理器里就和访问本地磁盘一样方便。实测下来在有线千兆局域网环境下大文件拷贝速度可以跑到约110MB/s已经接近机械硬盘的读写上限。如果用Wi-Fi速度会因为路由器协商速率和信号遮挡而波动通常在30到70MB/s之间。这个速度对我来说足够用毕竟日常操作大多是增量同步不是天天全量搬文件。4.2 手机端照片备份与电脑文件同步移动端体验决定这个项目能不能长期用下去。我安装了配套的手机应用把相册自动备份功能打开指向私有云中的photos文件夹。设置成“仅在Wi-Fi下备份”这样不会消耗流量也避免在户外网络不稳定时中断备份。手机应用里面有几个很值得注意的点增量备份同一张照片重复出现时系统会跳过不会产生冗余回收站误删的照片可以在私有云保留一段时间再彻底删除文件夹匹配本地相册按日期生成的文件夹会同步到远端不会混成一锅粥电脑端我则用了一个同步客户端把工作目录映射到私有云的同步盘里。它的工作模式类似网盘的“双向同步”在任意一台设备上修改文件其他设备会自动更新。这样我在公司电脑改了方案回家打开台式机时文件已经是最新版本。4.3 外网访问端口映射与安全加固在家访问私有云很顺畅但出差时怎么读取数据这个问题绕不开“外网访问”四步走。第一步是确认家里的网络有没有公网IPv4地址。这个取决于运营商和软路由配置。如果拨号后获得的IP不是10.x、100.64.x这样的运营商级NAT地址通常就有条件做端口映射。没有公网IPv4也不用慌可以检查是否支持IPv6很多地区的家用宽带已经默认分配了IPv6地址。第二步是在路由器上做端口映射把外网的某个端口转发到私有云内网地址的对应端口。我用的路由器管理界面里有一项“端口转发”添加了一条规则外部端口访问时转发到内网主机192.168.x.x的访问端口。第三步是解决“公网IP会变”的问题。普通宽带的公网IPv4地址不是静态的每次重新拨号都可能变化。我注册了一个动态域名解析服务安装了一个客户端在私有云上IP变化时自动更新域名解析记录。这样我只需要记一个固定的域名就能访问到家里。第四步也是最重要的一步安全。私有云系统默认的管理端口不能直接暴露到公网建议修改为高位随机端口同时开启SSH密钥登录、关闭密码登录并为每一类服务设置独立的访问账号。我甚至给管理界面单独加了一层访问令牌令牌只有我自己知道。注意远程访问是一个高风险功能端口映射一旦做错相当于把家里的文件柜放到了大楼门口。如果你对网络配置不太熟悉宁可先用同一局域网访问也别贸然把所有端口都暴露出去。安全永远排在便利前面。5. 出过一次硬盘故障之后备份策略和故障恢复复盘5.1 一次硬盘故障的完整处理过程再好的方案如果没有经历过真实故障都不算被检验过。我的设备运行约四个月后遇到了一次硬盘异常。当时私有云系统发出警告提示存储池中某块硬盘有大量坏道SMART状态已经亮起红灯。SMART是硬盘自带的健康监测机制它会记录重映射扇区、通电时间、温度等参数。硬盘能在坏道扩散前发出预警这本身就说明了镜像阵列的价值。我按照以下步骤完成了替换确认故障盘通过在存储管理界面查看磁盘状态确定是哪一块硬盘准备替换盘买了一块同规格的4TB机械硬盘先在家用电脑上做了坏道检测热插拔替换关机后拆下故障硬盘换上新的等待重建系统检测到新硬盘后开始把完好盘的数据完整同步到新盘耗时约十个小时校验结果重建完成后重新检查存储池状态确认两块盘数据一致整个过程中家里人都没发现数据有任何异常这就是冗余的价值。如果当时用的是单块硬盘坏道扩散就意味着大量文件损坏恢复代价不可估量。5.2 快照、异地备份和3-2-1原则经历过硬盘更换后我对“镜像阵列≠备份”这件事有了更清醒的认识。RAID镜像能防硬盘物理损坏但它防不住误删除、勒索病毒、火灾进水这类问题。真正的数据安全必须遵循经典的3-2-1原则至少3份副本至少2种不同存储介质至少1份异地备份。我在私有云上开启了快照功能对重要共享文件夹每天做两次快照。快照是一种增量快照占用空间不大却能让我在误删文件后轻松恢复历史版本。同时我把最核心的文件夹定期同步到另一台旧电脑上这台电脑放在父母家每周末通过客户端拉取一次增量数据充当异地板。这一步看似夸张但实际成本很低。旧电脑是现成的同步任务放在夜间闲时执行既不影响正常使用也保住了数据的最后一道防线。提示快照不是万能药。如果文件被加密型病毒改写快照里保存的也可能就是加密后的内容。所以关键文件夹最好开启“只追加不可修改”的权限或者独立保留多版本这样才能覆盖“文件被悄悄篡改”的情况。6. 运行半年后的功耗、速度和使用心得6.1 功耗与噪音实测很多人在决定是否搭建私有云时最关心的一个问题就是“7×24小时开着到底费不费电”。我为此特意接了一个功率计连续测了一周。我的设备包含迷你主机、两块机械硬盘和路由器待机综合功耗大约在28W到35W之间波动。运行大量下载任务或文件索引时功耗会短暂跳到45W左右但平时大多数时间都稳定在30W附近。用电成本很直观每天约0.7度电按阶梯电价折算一个月大概十几到二十几元和一杯咖啡的价格差不多。噪音方面这台风扇经过清理后非常安静贴耳才能听到轻微风噪放在客厅角落基本无感。不过机械硬盘的读写声无法消除夜间静下来时偶尔会有“咔哒咔哒”的声响。如果对声音特别敏感可以把硬盘设成空闲多少分钟后自动休眠代价是休眠唤醒会慢几秒。6.2 后续扩展下载工具、家庭监控和自动化脚本私有云跑稳定之后我慢慢给它加了几个服务这台机器的价值也跟着水涨船高。第一个是离线下载服务部署在Docker里平时把种子或下载链接丢进去它自己慢慢下载下载完成后自动归类到media文件夹。家里网速闲置的时候下载完全不占用正常上网体验。第二个是家庭监控服务。我用旧手机改造了一个简易摄像头通过一个开源流媒体组件把画面实时推送到私有云再借助私有云上的录像回放插件实现循环存储。这个用途对技术基础有要求但做完之后的安全感很强出差在外随时可以看一眼家里。第三个是自动化脚本。我写了一个简单的任务脚本每月初自动扫描共享文件夹把超过90天未访问的大文件挪到冷存储目录同时清理回收站里超过30天的文件。这解决了“存储空间不知不觉被占满”的问题。这些扩展能力很多成品NAS也能实现但自组方案让我在折腾过程中理解到了底层逻辑。私有云不只是一台设备更像一个可以随时加入新功能的家庭服务中心。最后再分享一条我个人很受用的经验自建私有云最难的从来不是那台机器而是坚持固定的数据入库规则。我会在每月月底抽十分钟把当月的照片整理归入对应文件夹把已完成的文档移到归档目录。有了这套习惯私有云的目录永远清晰备份任务也永远有明确对象。如果你也想做类似的项目不建议一开始就追求大而全。先解决手机照片自动备份再逐步加入文件同步和外网访问运行两三个月稳定后再考虑离线下载、监控这些扩展功能。这样每一层都建立在验证过的基础上遇到问题也更容易定位。数据安全这件事值得你花一个小周末来搭建也值得你用之后很多个轻松的夜晚来享受。

相关新闻

WinEdt多窗口打开指南:独立窗口、多实例与浮动窗口实操

WinEdt多窗口打开指南:独立窗口、多实例与浮动窗口实操

如果你是最近刚从其他编辑器切换到 WinEdt 的人,大概率会被同一个问题卡住:打开新文件时,WinEdt 永远把它塞进当前那个窗口里,最多给你多一排标签,而不是像记事本或现代编辑器那样另开一个独立窗口。我一开始以为自己没…

2026/10/17 5:11:19 阅读更多 →
C# WinForms接口测试工具:生产级API调试与自动化验证

C# WinForms接口测试工具:生产级API调试与自动化验证

简介:这是一款基于C#开发的轻量级Windows桌面接口测试工具,面向.NET初学者、后端开发者及API调试人员,解决日常HTTP接口快速验证与调试需求。工具采用WinForm框架构建图形界面,支持GET、POST、PUT、DELETE四大标准请求方法&#x…

2026/10/17 5:10:19 阅读更多 →
Java求乘法逆元:费马小定理与扩展欧几里得算法实践

Java求乘法逆元:费马小定理与扩展欧几里得算法实践

1. 先弄明白乘法逆元到底是什么一直用 Java 刷算法题或者写代码的朋友,肯定都遇到过这么一个问题:模运算里加减乘都好说,唯独除法没法直接算。比如你在模 1_000_000_007 的意义下想算 a / b,不可能直接拿 a 整除 b 然后取模&#…

2026/10/17 5:10:19 阅读更多 →

最新新闻

储能电池主动均衡方案:MP2642GR-Z与STM32F423RH硬件设计与软件实现

储能电池主动均衡方案:MP2642GR-Z与STM32F423RH硬件设计与软件实现

/* 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 5:52:31 阅读更多 →
pip install超时?一行命令换镜像源彻底解决

pip install超时?一行命令换镜像源彻底解决

/* 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 5:52:31 阅读更多 →
树链剖分入门:从原理到洛谷P3384模板题实战

树链剖分入门:从原理到洛谷P3384模板题实战

/* 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 5:52:31 阅读更多 →
Android输入法APK签名验证机制分析与逆向研究思路

Android输入法APK签名验证机制分析与逆向研究思路

前阵子有位朋友问我:逆向一个输入法App,想研究它的签名校验逻辑,该从哪里下手?我没急着甩工具给他,而是先问了一句:你搞清楚Android签名到底在验证什么了吗?这篇文章就以一个输入法APK的签名验证…

2026/10/17 5:52:31 阅读更多 →
会议排期利器:Welsh-Powell图着色算法实战解析

会议排期利器:Welsh-Powell图着色算法实战解析

/* 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 5:52:31 阅读更多 →
信息组织实战指南:从分类到元数据的设计方法论

信息组织实战指南:从分类到元数据的设计方法论

/* 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 5:51:30 阅读更多 →

日新闻

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 阅读更多 →