<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss-style.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>HalfAirの博客</title><description>不要温和地走进那个良夜。 欢迎来到 HalfAir 的博客，记录我的技术与生活。 聚焦软路由家庭网络、边缘架构、末日生存工程与人文随笔。</description><link>https://halfair.top</link><language>zh-CN</language><managingEditor>7780102@qq.com (半团空气)</managingEditor><webMaster>7780102@qq.com (半团空气)</webMaster><lastBuildDate>Sat, 07 Nov 2026 09:35:18 GMT</lastBuildDate><atom:link href="https://halfair.top/rss.xml" rel="self" type="application/rss+xml"/><image><url>https://halfair.tophttps://img.halfair.top/file/blog/1794040797226_avatar-deadpan.webp</url><title>HalfAirの博客</title><link>https://halfair.top</link></image><item><title>破茧与重构：把博客搬进干净的晚风里</title><link>https://halfair.top/posts/72940</link><guid isPermaLink="true">https://halfair.top/posts/72940</guid><description>深秋夜里点开自己搭的旧博客，屏幕白了整整四秒钟。索性推倒重来，拆掉臃肿的脚本与跨洋阻塞，用 Astro 5 与 Cloudflare 边缘网络把屋子搬进干净的晚风里。</description><pubDate>Sat, 07 Nov 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;拆掉旧日冗余的脚手架，在 Astro 5 与边缘网络里重砌一间打开就能读字的小屋&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;深秋夜里点开自己搭的旧博客，屏幕白了整整四秒钟。索性推倒重来，拆掉臃肿的脚本与跨洋阻塞，用 Astro 5 与 Cloudflare 边缘网络把屋子搬进干净的晚风里。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;一、 白了四秒的屏幕：当旧屋子被挂件塞满&lt;/h2&gt;
&lt;p&gt;十月底的一个晚上，窗外的风刮过居民楼的防盗网，发出细碎又干燥的响声。我坐在书桌前，顺手点开自己一年前搭起来的旧博客，想翻找一段以前记下的软路由防火墙命令。&lt;/p&gt;
&lt;p&gt;回车按下去之后，屏幕白了整整四秒钟。&lt;/p&gt;
&lt;p&gt;先是顶部的加载条卡在百分之七十不动，紧接着几个早就记不清名字的第三方统计脚本在控制台里接连报出超时错误。好不容易等正文挤出来，侧边栏的挂件又慢半拍地往下撑开一截，直接把我正要看的那一行代码顶出了屏幕外面。&lt;/p&gt;
&lt;p&gt;我盯着屏幕看了一会儿，忽然觉得挺没意思的。最开始在公网上搭这么个地方，本来只是因为记性不好，想找个牢靠的本子记点日常琐事和折腾硬件的笔记。结果后来每逛一次别人的技术站，就忍不住往自己屋里搬点东西——今天加个会飘雪花的画布，明天挂个实时在线人数牌，后天又塞进几百千字节的动画库。日子一长，这间屋子就像塞满了劣质塑料花的旧客厅，连推门走进去都要先绊一跤。&lt;/p&gt;
&lt;p&gt;任何缺乏节制的系统，放任不管都会不可避免地走向失控。与其在一座地基已经松动的旧房子里继续糊墙纸，不如把旧钥匙收起来，干脆地推倒重来。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;[NOTE] 重构准则：三百毫秒内的确定性&lt;/strong&gt;&lt;br/&gt;个人博客不是游乐场的橱窗。判断一套架构好不好，只需要看点下链接后的头三百毫秒里，读者的视线能不能毫无阻碍地落在第一行字上。凡是挡在人与文字之间的脚本，都该被请出去。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;二、 纸张与暗房：把版面还给字句&lt;/h2&gt;
&lt;p&gt;重砌这间屋子的第一步，是把那些花花绿绿的发光描边和厚重卡片全部铲掉。&lt;/p&gt;
&lt;p&gt;长期对着屏幕看长文的人都知道，纯白底色（`#FFFFFF`）看久了像盯着灯管，纯黑底色（`#000000`）又会让白色的字边缘泛起刺眼的光晕。我把全站的底色重新调了一遍：浅色模式下用略带温度的暖纸白（`#F9FAFB`），像刚翻开的哑光铜版纸；深色模式下则退到深石板黑（`#0E0F12`），只保留一像素极细的半透明分割线。&lt;/p&gt;
&lt;p&gt;针对现在普遍使用的宽屏显示器，版面固定为互不干扰的三列结构：左边放着头像、手写签名和主题开关；中间留出最宽裕的阅读区，正文行高放宽到 `1.85`，让长段落之间有自然的空气感；右边平时摆着安静待命的音乐盒和今日状态贴纸，一旦点进具体文章，黄金视线位置就自动切换成章节目录。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Typography is what language looks like. 排版的本分不是跳出来提醒读者‘快看我多精致’，而是让眼睛顺着字句滑下去的时候，连一丁点磕绊都感觉不到。&lt;/p&gt;&lt;footer&gt;— Ellen Lupton · Thinking with Type&lt;/footer&gt;&lt;/blockquote&gt;
&lt;h2&gt;三、 光速约束与边缘分流：消除看不见的泥潭&lt;/h2&gt;
&lt;p&gt;界面收拾干净之后，还得解决物理层面上的硬骨头。&lt;/p&gt;
&lt;p&gt;太平洋底下的光缆长度是固定的，电磁波在光纤里的折射率也是固定的。把静态页面直接丢在海外默认节点上，一到晚上八九点钟的骨干网高峰期，TCP 握手和丢包重传就能吃掉好几秒。加上以前偷懒，写文章时截的 PNG 原图动辄一两兆，直接塞进代码仓库里，每次打开页面都像在泥潭里拽绳子。&lt;/p&gt;
&lt;p&gt;这次我从底层做了两件事。第一件是彻底换掉前端引擎，改用默认零客户端 JavaScript 输出的 Astro 5。除了右侧必须驻留的音乐盒、搜索框和评论区，整篇文章编译完就是纯正的 HTML 和 CSS，配合 `&amp;lt;ClientRouter /&amp;gt;` 的持久化属性（`transition:persist`），翻页时只替换中间的正文节点，左右两栏纹丝不动。&lt;/p&gt;
&lt;p&gt;第二件是把网络链路和图片资产拆开治理。域名接入 Cloudflare for SaaS 自定义主机名，将境内三网解析定向到优选的高速边缘节点池；同时写了一套本地上传脚本（`scripts/upload-images.js`），文章写完跑一行命令，本地图片就会先用 `sharp` 压成几十千字节的 WebP，计算 SHA-256 指纹去重后自动推上自建的图床（`img.halfair.top`），最后把 Markdown 里的本地路径替换成永久 CDN 链接。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Code · dns-split-routing.zone (ini)&lt;/em&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;; HalfAir.top 权威 DNS 智能分线路解析规则
; 境外默认走 Cloudflare Pages 原生 Anycast
@       IN  CNAME   halfair-blog.pages.dev. ; [海外默认]

; 境内三网走 Cloudflare for SaaS 优选高速 CNAME
@       IN  CNAME   cf-vip.halfair.top.     ; [中国电信 / 联通 / 移动]
img     IN  CNAME   imgbed-edge.halfair.top.
twikoo  IN  CNAME   twikoo-edge.halfair.top.&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;四、 驯服异步竞态：音乐盒与评论区的闭环&lt;/h2&gt;
&lt;p&gt;在静态站点里混用无刷新路由，最容易撞上幽灵一样的异步 Bug。&lt;/p&gt;
&lt;p&gt;旧版博客里最让我头疼的有两个地方：一个是每次点开新文章，背景音乐就会咔哒一声断掉重头放，甚至有时候半夜刚打开网页，音响里突然蹦出一声动静把人吓一跳；另一个是底部的 Twikoo 评论区，如果在两篇文章之间快速切换，Vue 2 实例很容易因为挂载节点被提前替换而卡死成一片白板。&lt;/p&gt;
&lt;p&gt;这次重构把这两个模块彻底拆开重写了。右侧的音乐盒取消了一切进站自动播放和全局点击唤醒的投机逻辑——页面打开时它只是安静地在后台拉取曲目元数据和歌词，除非你主动伸手点下播放键，否则它绝不发出一丁点声音。一旦开始播放，切去任何页面都不会中断当前的音频流。&lt;/p&gt;
&lt;p&gt;而评论区则做成了一套带看门狗的状态机（`TwikooSafeMount.astro`）。每次翻页生成唯一的代际序号（`tcomment-gen-N`），挂载后用 `MutationObserver` 检查真实的表单输入框有没有渲染出来；一旦发现只生成了空壳或者网络超时，立刻按指数退避策略切换备用 CDN 重试，绝不留一块空白在页面底下。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Code · TwikooSafeMount.astro (Watchdog Core) (typescript)&lt;/em&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;const gen = ++engine.generation;
const mountAnchorId = `tcomment-gen-${gen}`;
host.innerHTML = `&amp;lt;div id=&amp;quot;${mountAnchorId}&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;`;

await window.twikoo?.init({ envId, el: `#${mountAnchorId}`, path: targetPath });

// 看门狗守卫：验证真实 .tk-submit 表单渲染，杜绝空壳假阳性
const verified = await verifyRealDomRendered(host, gen, engine);
if (!verified) throw new Error(&amp;#39;Watchdog detected empty shell&amp;#39;);&lt;/code&gt;&lt;/pre&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;模块名称&lt;/th&gt;&lt;th&gt;旧版顽疾与体验断层&lt;/th&gt;&lt;th&gt;重构后的确定性方案&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;右侧音乐盒&lt;/td&gt;&lt;td&gt;进站突兀抢播、切页断流重头缓冲&lt;/td&gt;&lt;td&gt;纯手动显式触发 + 后台静默预载元数据 + 跨路由实例常驻&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;追番与外设单&lt;/td&gt;&lt;td&gt;依赖外部实时接口易超时、实拍图杂乱&lt;/td&gt;&lt;td&gt;本地离线快照 + 1px 工业线框蓝图与高清透明底双轨展示&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;图床资产流&lt;/td&gt;&lt;td&gt;仓库堆积数兆 PNG 拖慢拉取与构建&lt;/td&gt;&lt;td&gt;sharp 自动转码 WebP + SHA-256 指纹去重 + CDN 链接自动回写&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;评论区引擎&lt;/td&gt;&lt;td&gt;路由快切导致 DOM 竞态假死白屏&lt;/td&gt;&lt;td&gt;代际锚点隔离 + MutationObserver 真实节点看门狗 + 多源重连&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;五、 吹进窗户的晚风&lt;/h2&gt;
&lt;p&gt;把最后一行样式表保存好的时候，时间已经过了凌晨一点。&lt;/p&gt;
&lt;p&gt;我关掉编辑器里密密麻麻的终端窗口，在浏览器里输入自己的域名。页面几乎在按下回车的同一瞬间就亮了起来，没有乱跳的进度条，也没有刺眼的报错红字。纸白色的背景干干净净，手写签名的墨迹安安静静地待在左上角。&lt;/p&gt;
&lt;p&gt;在这个打开手机就被十几秒短视频和算法信息流推着走的时代，花好几个夜晚去抠一像素的边框粗细、调几百毫秒的响应延迟，仔细想想确实是件挺笨的事。在社交平台上写东西，人很容易不知不觉顺着点赞数去改自己的口气；但在这座完全由自己管着源代码的小屋里，不用凑任何人的热闹，也不用讨好任何一套推荐算法。&lt;/p&gt;
&lt;p&gt;窗户推开了一条缝，十一月夜里的凉风带着楼下树叶的味道吹进来，桌上的纸页轻轻动了一下。屋子已经收拾利索了，灯也亮着，接下来只管安安心心地写字就好。&lt;/p&gt;
&lt;h3&gt;权威文献与工程规范引证&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Astro Docs&lt;/strong&gt; · &lt;a href=&quot;https://docs.astro.build/en/guides/view-transitions/&quot;&gt;Astro 5 Content Collections &amp;amp; ClientRouter View Transitions Architecture&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Cloudflare&lt;/strong&gt; · &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/&quot;&gt;Cloudflare for SaaS — Custom Hostnames &amp;amp; Fallback Origin Architecture&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;MarSeventh&lt;/strong&gt; · &lt;a href=&quot;https://github.com/MarSeventh/CloudFlare-ImgBed&quot;&gt;CloudFlare-ImgBed Open-Source Serverless Image Hosting&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;hr/&gt;&lt;p&gt;本文永久数字短链：&lt;a href=&quot;https://halfair.top/posts/72940&quot;&gt;https://halfair.top/posts/72940&lt;/a&gt; · 作者：半团空气 (HalfAir)&lt;/p&gt;</content:encoded><dc:creator>半团空气</dc:creator><dc:date>2026-11-07 · 3.6k 字 · 9 min</dc:date><category>技术折腾</category><category>建站折腾</category><category>边缘架构</category><category>Astro</category><author>7780102@qq.com (半团空气)</author><comments>https://halfair.top/posts/72940#comments</comments></item><item><title>末日求生指南（下卷）：极端环境适应、零和博弈防线与离线文明火种库</title><link>https://halfair.top/posts/51691</link><guid isPermaLink="true">https://halfair.top/posts/51691</guid><description>活着不是为了永远在泥泞里刨食，而是为了有一天能重新仰望星空。作为《超硬核版末日求生指南》三部曲终章下卷，本文推演湿球温度极限与核沉降“7-10 衰减法则”、阳台微农业与太阳能蒸馏阱、四人战术单元与双人管钥博弈，以及抗 EMP 法拉第笼内的 Kiwix 离线人类文明火种库。</description><pubDate>Tue, 28 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;在核沉降与酷暑极寒中榨取生机，用一张 256GB 存储卡留存人类图纸&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;活着不是为了永远在泥泞里刨食，而是为了有一天能重新仰望星空。作为《超硬核版末日求生指南》三部曲终章下卷，本文推演湿球温度极限与核沉降“7-10 衰减法则”、阳台微农业与太阳能蒸馏阱、四人战术单元与双人管钥博弈，以及抗 EMP 法拉第笼内的 Kiwix 离线人类文明火种库。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;一、 湿球温度 35°C 极限、核沉降“7-10 法则”与微农业自给&lt;/h2&gt;
&lt;p&gt;当工业时代的罐头终于消耗殆尽，环境本身的残酷才真正显露。在无空调的极端热浪中，一旦**湿球温度（Wet-Bulb Temperature）**突破 35°C，汗液蒸发散热机制即告失效，必须转入地下或背阴底层实行“昼伏夜出”；而在核事故或核打击次生的**放射性尘埃沉降（Fallout）**中，裂变产物衰变严格遵循 **“7-10 法则”**：爆炸后时间每增加 7 倍，环境辐射剂量率便衰减至原来的十分之一（7 小时降至 1/10，49 小时降至 1/100，两周降至 1/1000）。最初四十八小时内严禁外出，躲进 20 厘米厚钢筋混凝土墙体后方封死窗缝，即可削减 90% 以上的伽马射线穿透。&lt;/p&gt;
&lt;p&gt;为跨越存粮见底的死线，必须在阳台或暗室启动三类高容错微农业：一是无需阳光土壤、五天即可收获并预防败血病的**绿豆/黄豆芽苗菜**；二是耐贫瘠、单位面积卡路里极高的**马铃薯与红薯块茎**；三是利用腐殖质培育的平菇菌包与黄粉虫蛋白。遇地表水污染时，则在向阳地面开挖浅坑、铺设湿土绿叶并蒙上聚乙烯薄膜压石，利用**太阳能蒸馏阱**每日制取纯净冷凝水。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;[ERROR] 碘化钾（KI）片剂的医学窗口与红黄绿三区生物隔离&lt;/strong&gt;&lt;br/&gt;稳定性碘化钾片仅用于阻断放射性碘-131 被甲状腺吸收，必须在暴露前 24 小时至暴露后 4 小时内服用方有效，对外部伽马射线完全无效。若遇未知高致死率烈性传染病，避难所入口必须设立 1000mg/L 含氯消毒“黄区洗消缓冲间”与下风向“红区隔离室”，阻断病原体进入生活绿区。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;二、 四人战术单元、止损撤退红线与“一报还一报”博弈防线&lt;/h2&gt;
&lt;p&gt;在灾变末期，任何独行侠的寿命都不会超过一次高烧。最紧凑高效的防御单元是**四人制互助组**（侦察哨、工程防卫、医疗净水、后勤通联），夜间实行双班轮岗；同时永远把 **“何时放弃堡垒”** 写在预案第一页——一旦遭遇不可抗天灾或数倍于己的武装围攻，三分钟内果断携 72h BOB 从二号通道撤往五公里外预埋了 PVC 密封物资筒的二级汇合点（Rally Point）。&lt;/p&gt;
&lt;p&gt;而在团队内部与外部聚落交涉中，千万别拿最后一块压缩饼干去考验人性。内部必须推行 **“双人管钥制”**：核心粮仓与药柜挂设两把不同钥匙的机械挂锁，由防卫与后勤分持，取粮须三人见证并公示于黑板；对外部聚落则践行博弈论学者阿克塞尔罗德证明的最优策略—— **“一报还一报（Tit-for-Tat）”**：首次接触抱持善意但全副武装在中立开阔地小额易货，一旦遭遇欺诈立刻对等反击，只要对方守信则保持透明互利。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;好的生存制度从不假设成员全是圣徒，而是通过精巧的物理制衡，让“背叛团队”的代价永远高于“遵守契约”的收益。&lt;/p&gt;&lt;footer&gt;— 罗伯特·阿克塞尔罗德 · 《合作的进化》推演批注&lt;/footer&gt;&lt;/blockquote&gt;
&lt;h2&gt;三、 硅基火种与终章结语：愿备而不用，愿永远热泪盈眶&lt;/h2&gt;
&lt;p&gt;在这套指南里，我们计算了无数卡路里、净水片、止血带与磷酸铁锂电芯。但在全书的终章，我想聊聊比罐头更重要的东西——**记忆与秩序**。在我的防水电磁屏蔽盒（由多层铝箔与密封马口铁盒构成的简易**法拉第笼**，可抵御核电磁脉冲 EMP 或极强太阳风暴）里，始终躺着一台低功耗电子墨水屏阅读器与两张 256GB 工业级存储卡。里面通过开源项目 `Kiwix` 完整封装了无需联网即可检索的**中英文维基百科全量镜像、默克诊疗手册、战伤外科图谱、开源农学与基础冶金化工手册**。只要那块太阳能板还能晒到太阳，人类几千年攒下的科学火种就不会熄灭。&lt;/p&gt;
&lt;p&gt;写下这三卷长文的初衷，从来不是为了宣扬末日宿命论。恰恰相反，正是因为我们如此深爱着这个拧开水龙头就有清泉、深夜推开窗能看到万家灯火、耳机里流淌着音乐的平凡世界，我们才愿意在床底下塞进那几包压缩饼干与净水片。愿这套指南里的所有硬核技巧，你一辈子都只当作茶余饭后的谈资；但如果那个万分之一的黑天鹅真的敲响房门——不要惊慌，去关掉自来水总阀，拧亮你的手电，我们废土之上见。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Code · civilization-seed-ark.yml (yaml)&lt;/em&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;# 离线人类文明火种库 (256GB MicroSD × 2 异地冗余封装清单)
kiwix_zim_archives:
  encyclopedia: &amp;quot;wikipedia_zh_all_maxi.zim + wikipedia_en_medicine.zim (约 48GB)&amp;quot;
  medical_compendium: &amp;quot;默克家庭诊疗手册 + 战伤外科救治图谱 + 常见植物图鉴 (约 12GB)&amp;quot;
  engineering_and_agri: &amp;quot;CD3WD (第三世界发展离线工程库: 农学/水力/简易冶金/砖窑建造)&amp;quot;
  literature_and_music: &amp;quot;古腾堡计划经典文学库 + 巴赫/坂本龙一/古典精选无损音频 (精神锚点)&amp;quot;

hardware_emp_shielding:
  container: &amp;quot;三层铝箔包裹 + 密封马口铁盒 (简易法拉第笼抗 EMP 冲击)&amp;quot;
  reader_device: &amp;quot;低功耗 E-Ink 电纸书 + 旧安卓备用机 (满电待机可达数周)&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;权威文献与工程规范引证&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;IAEA / WHO&lt;/strong&gt; · &lt;a href=&quot;https://www.iaea.org/publications/8505/criteria-for-use-in-preparedness-and-response-for-a-nuclear-or-radiological-emergency&quot;&gt;Criteria for Use in Preparedness and Response for a Nuclear or Radiological Emergency&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Science / Axelrod&lt;/strong&gt; · &lt;a href=&quot;https://www.science.org/doi/10.1126/science.7466396&quot;&gt;The Evolution of Cooperation (Robert Axelrod &amp;amp; William D. Hamilton, Science Vol. 211)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Kiwix Open Source&lt;/strong&gt; · &lt;a href=&quot;https://kiwix.org/en/&quot;&gt;Kiwix Offline Knowledge Repository — Wikipedia &amp;amp; Medical Library Without Internet&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;hr/&gt;&lt;p&gt;本文永久数字短链：&lt;a href=&quot;https://halfair.top/posts/51691&quot;&gt;https://halfair.top/posts/51691&lt;/a&gt; · 作者：半团空气 (HalfAir)&lt;/p&gt;</content:encoded><dc:creator>半团空气</dc:creator><dc:date>2025-01-28 · 12.4k 字 · 25 min</dc:date><category>末日求生</category><category>末日生存</category><category>应急工程</category><author>7780102@qq.com (半团空气)</author><comments>https://halfair.top/posts/51691#comments</comments></item><item><title>末日求生指南（中卷）：废土搜寻盲区、热力学账本、纵深工事与离网无线电</title><link>https://halfair.top/posts/51685</link><guid isPermaLink="true">https://halfair.top/posts/51685</guid><description>挺过最初七十二小时只是幸存的开始。作为三部曲中卷，本文聚焦灾变第 2 周至第 3 个月的维生攻坚：剖析城市高价值搜寻盲区与能量收支比（EROI）、光声味三态静默与三层纵深防御改造，以及 12V 磷酸铁锂光伏微网和短波/UV 段无线电通联保密准则。</description><pubDate>Tue, 10 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;当超市货架归零、互联网彻底沉寂，用卡路里算术与单晶硅光伏重建秩序&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;挺过最初七十二小时只是幸存的开始。作为三部曲中卷，本文聚焦灾变第 2 周至第 3 个月的维生攻坚：剖析城市高价值搜寻盲区与能量收支比（EROI）、光声味三态静默与三层纵深防御改造，以及 12V 磷酸铁锂光伏微网和短波/UV 段无线电通联保密准则。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;一、 混凝土矿场的盲区与热力学死线：能量收支比（EROI）&lt;/h2&gt;
&lt;p&gt;当灾变跨入第二周，城市便退化为一座正在缓慢腐败的混凝土矿场。此时绝对不要去碰大型商超或临街药店——那些地方在头四十八小时内就已经经历了三轮以上的暴力洗劫。真正高价值的物资盲区藏在现代产业链的毛细血管里：第一处是写字楼消防通道尽头的自动售货机储料仓与茶水间；第二处是社区连锁宠物医院与兽医站——那里的阿莫西林克拉维酸钾、头孢曲松钠、生理盐水与外科缝合线，在分子结构与无菌标准上与人用救命药毫无二致；第三处则是高层写字楼未被冲刷的马桶储水箱与桶装饮水机。&lt;/p&gt;
&lt;p&gt;回到避难所后，比饥饿更难熬的是算账。人体是一台无法关机的热机：成年男性静息状态下每天至少消耗 1600 千卡热量，一旦背负十五公斤装备在废墟攀爬四小时，能耗会飙升至 2800 千卡以上。如果一次外出搜寻带回的总热量低于为此多消耗热量的 1.5 倍（`EROI &amp;lt; 1.5`），那么这次外出在物理学上就是慢性自杀。所有存粮必须用电子秤与记号笔按克分装，严格执行先进先出（FIFO）与灰水二次循环，连午餐肉罐头底部的凝固油脂也必须保留用于补充热值或制作无烟棉线油灯。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;在复杂系统崩溃之后，一切宏大的叙事都会剥落，最终坍缩为卡路里摄入量与基础代谢率之间的冷酷不等式。&lt;/p&gt;&lt;footer&gt;— 《超硬核版末日求生指南》· 中卷热力学定律&lt;/footer&gt;&lt;/blockquote&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;目标场所类型&lt;/th&gt;&lt;th&gt;核心可获物资&lt;/th&gt;&lt;th&gt;初期被洗劫概率&lt;/th&gt;&lt;th&gt;推荐搜寻窗口与战术要点&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;大型连锁超市 / 临街药房&lt;/td&gt;&lt;td&gt;米面粮油、常规非处方药&lt;/td&gt;&lt;td&gt;99%（极高危陷阱）&lt;/td&gt;&lt;td&gt;严禁中期前往；极易遭遇武装火并或感染&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;社区宠物医院 / 畜牧兽医站&lt;/td&gt;&lt;td&gt;广谱抗生素、聚维酮碘、缝合包&lt;/td&gt;&lt;td&gt;25%（大众认知盲区）&lt;/td&gt;&lt;td&gt;破晓前双人快进快出，重点搜寻手术耗材柜&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;封闭园区写字楼 / 自动售货机&lt;/td&gt;&lt;td&gt;高糖罐装饮品、能量棒、桶装水&lt;/td&gt;&lt;td&gt;35%（门禁阻隔）&lt;/td&gt;&lt;td&gt;携带撬棍开启售货机侧锁，收集茶水间储备&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;五金机电城 / 汽车修理厂&lt;/td&gt;&lt;td&gt;12V 蓄电池、逆变器、防毒面具&lt;/td&gt;&lt;td&gt;40%（中期渐热）&lt;/td&gt;&lt;td&gt;重点收集磷酸铁锂/铅酸电瓶及高标号密封胶带&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;二、 光、声、味三态静默与三层纵深防御工程&lt;/h2&gt;
&lt;p&gt;当夜晚整座城市陷入漆黑，五百米外一扇透出烛光的窗户就像黑夜里的灯塔一样刺眼。中期避难所改造的第一要务是**信号特征抹除（Signature Management）**：外窗内侧贴满黑色塑料膜与瓦楞纸板，玄关挂设双层遮光帘构成“光闸（Light Lock）”；一切热食烹饪改在密闭室内利用无烟酒精炉小火慢焖，阻断油脂香气外溢。&lt;/p&gt;
&lt;p&gt;在结构工程上，必须构建完整的三层纵深：外围是**物理迟滞带**，利用废弃大件家具、扭曲车架与碎石封堵一至三层楼梯通道，强制将外部接近路线收束至单一窄道；中层是**门窗硬化层**，入户门加装横跨两侧承重墙的粗方钢插销，窗户内钉 18mm 建筑模板并预留观察孔；内层则是无外窗的**核心安全室（Safe Room）**，集中存放核心水源、电台与高空缓降绳。&lt;/p&gt;
&lt;h2&gt;三、 磷酸铁锂微型光储闭环与电离层无线电静默守则&lt;/h2&gt;
&lt;p&gt;高达 85 分贝的柴油发电机在废土中期是招引掠夺者的催命符。真正安静且免维护的能源解药是**单晶硅光伏 + 磷酸铁锂（LiFePO4）直流微网**：磷酸铁锂电芯拥有超过 3000 次循环寿命，将两块 100W 折叠太阳能板挂在向阳阳台内侧，经 MPPT 控制器接入 12V/50Ah 电池组，不经过高损耗 220V 逆变，直接通过 Type-C PD 与 12V 接口即可无限期喂饱对讲机、短波收音机与存满离线知识库的旧手机。&lt;/p&gt;
&lt;p&gt;当光纤与基站彻底熄灭，巴掌大的全波段短波收音机配合十米软铜线天线，即可借助距地面 60~1000 公里的电离层天波反射接收数千公里外的应急广播；而 UV 双段手台则是半径五公里内小队协同的神经中枢。但必须严守**电磁静默法则（COMSEC）**：99% 时间只听不发、仅在整点窗口用 0.5W 低功率与数字简语通联，单次按下 PTT 绝不超过 5 秒，严防三角测向定位。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Code · offgrid-power-budget.yml (yaml)&lt;/em&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;# 100W 单晶硅折叠光伏 + 640Wh 磷酸铁锂储能每日能量配平表
daily_generation_estimate:
  sunny_day_4h_peak: &amp;quot;100W × 4h × 0.78(系统效率) ≈ 312 Wh/day&amp;quot;
  cloudy_day_fallback: &amp;quot;100W × 1.5h × 0.65 ≈ 97 Wh/day&amp;quot;

essential_dc_loads:
  shortwave_receiver: &amp;quot;德生 PL-330 短波监听 (2h/day) ≈ 3 Wh&amp;quot;
  vhf_uhf_transceiver: &amp;quot;UV-K5 对讲机守听 + 简短通联 ≈ 8 Wh&amp;quot;
  offline_knowledge_terminal: &amp;quot;旧手机运行 Kiwix 离线维基/医学库 ≈ 12 Wh&amp;quot;
  low_lumen_led: &amp;quot;1W 暖光值班微光照明 (5h/night) ≈ 5 Wh&amp;quot;
  total_daily_consumption: &amp;quot;≈ 28 Wh/day (阴雨天亦具备 20 天以上冗余自持力)&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;权威文献与工程规范引证&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;FAO / WHO / UNU&lt;/strong&gt; · &lt;a href=&quot;https://www.fao.org/3/y5686e/y5686e00.htm&quot;&gt;Human Energy Requirements — Report of a Joint FAO/WHO/UNU Expert Consultation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;FEMA P-361&lt;/strong&gt; · &lt;a href=&quot;https://www.fema.gov/emergency-managers/risk-management/safe-rooms&quot;&gt;Safe Rooms for Tornadoes and Hurricanes — Residential Safe Room Guidance&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ITU / NREL&lt;/strong&gt; · &lt;a href=&quot;https://www.itu.int/en/ITU-D/Emergency-Telecommunications/&quot;&gt;ITU Emergency Radiocommunications &amp;amp; NREL Off-Grid Photovoltaic Sizing Guide&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;hr/&gt;&lt;p&gt;本文永久数字短链：&lt;a href=&quot;https://halfair.top/posts/51685&quot;&gt;https://halfair.top/posts/51685&lt;/a&gt; · 作者：半团空气 (HalfAir)&lt;/p&gt;</content:encoded><dc:creator>半团空气</dc:creator><dc:date>2024-12-10 · 11.8k 字 · 24 min</dc:date><category>末日求生</category><category>末日生存</category><category>应急工程</category><author>7780102@qq.com (半团空气)</author><comments>https://halfair.top/posts/51685#comments</comments></item><item><title>折腾笔记 | 我的 Hexo + Butterfly 博客优化全记录</title><link>https://halfair.top/posts/51683</link><guid isPermaLink="true">https://halfair.top/posts/51683</guid><description>最近闲来无事（或者说有点闲得蛋疼），又开始折腾我的博客了。作为一个对“卡一下”都忍不了的人，总感觉博客访问起来不够顺畅，特别是国内用户，有时候加载个图片、拉个 JS 都得等半天。所以，干脆一不做二不休，来一次彻头彻尾的优化升级！从访问速度到功能体验，从国内到国外，全都给我安排上！这篇笔记就来记录下这次“魔改”的全过程，给同样爱折腾的兄弟们踩踩坑。</description><pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;从卡顿到丝滑，CDN、插件与主题的深度调优实战&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;最近闲来无事（或者说有点闲得蛋疼），又开始折腾我的博客了。作为一个对“卡一下”都忍不了的人，总感觉博客访问起来不够顺畅，特别是国内用户，有时候加载个图片、拉个 JS 都得等半天。所以，干脆一不做二不休，来一次彻头彻尾的优化升级！从访问速度到功能体验，从国内到国外，全都给我安排上！这篇笔记就来记录下这次“魔改”的全过程，给同样爱折腾的兄弟们踩踩坑。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;前言：为啥又双叒叕开始折腾了？ (๐_๐)&lt;/h2&gt;
&lt;p&gt;我的博客虽然就几篇文章，但访问起来总感觉“慢半拍”。尤其是国内用户，有时候点开一篇文章，图片半天出不来，JS/CSS 也磨磨蹭蹭的。作为一个对“丝滑”体验有执念（或者说有点小强迫症）的人，这种感觉真的很难受。所以，这次下定决心，必须把速度、稳定性和功能都给它搞上去！&lt;/p&gt;
&lt;h2&gt;核心优化点概览 (๐_๐)&lt;/h2&gt;
&lt;p&gt;这次优化主要围绕以下几个方面展开：&lt;/p&gt;
&lt;p&gt;1. **CDN 策略升级：** 为核心静态资源选择更快的 CDN，并实现**国内/国际智能回退**。&lt;/p&gt;
&lt;p&gt;2. **插件配置调优：** 确保所有插件（评论、搜索、统计等）高效、稳定运行。&lt;/p&gt;
&lt;p&gt;3. **主题细节打磨：** 调整 Butterfly 主题配置，优化视觉效果和交互体验。&lt;/p&gt;
&lt;p&gt;4. **SEO 与可访问性：** 完善站点地图、结构化数据，提升搜索引擎友好度。&lt;/p&gt;
&lt;h2&gt;CDN 优化：让全球用户都能丝滑访问 (๐_๐)&lt;/h2&gt;
&lt;p&gt;这是本次优化的重头戏。默认的 jsDelivr 在国内某些地区或网络环境下表现不稳定，甚至会出现资源 404 的情况。我的目标是：**国内用户访问快，国外用户访问稳**。&lt;/p&gt;
&lt;p&gt;### 1. 选择合适的主 CDN&lt;/p&gt;
&lt;p&gt;经过一番调研和测试，我决定将主要的第三方库（如 Twikoo、APlayer、Fancybox 等）的 CDN 切换到在国内访问速度更快的提供商，例如 `s4.zstatic.net` 或 `cdn.bootcdn.net`。这些 CDN 在国内有较好的节点分布。&lt;/p&gt;
&lt;p&gt;### 2. 实现 JS/CSS 资源的智能回退加载&lt;/p&gt;
&lt;p&gt;光换 CDN 还不够，万一主 CDN 挂了怎么办？为了极致的稳定性，我编写了一段自定义的 JavaScript 脚本，实现了资源的**主备 CDN 自动切换**。&lt;/p&gt;
&lt;p&gt;• **原理：** 动态创建 `&amp;lt;script&amp;gt;` 和 `&amp;lt;link&amp;gt;` 标签，先尝试从主 CDN 加载资源。如果加载失败（`onerror` 事件触发），则自动切换到备用 CDN（如 jsDelivr）重新加载。&lt;/p&gt;
&lt;p&gt;• **实现：** 这段脚本被注入到 `_config.butterfly.yml` 的 `inject.bottom` 配置项中。它会按顺序加载所有需要回退的关键资源。&lt;/p&gt;
&lt;p&gt;• **效果：** 极大提升了资源加载的成功率和速度，即使某个 CDN 出现问题，用户也能平滑地加载到所需资源。&lt;/p&gt;
&lt;p&gt;### 3. 图片资源的 CDN 加速&lt;/p&gt;
&lt;p&gt;对于博客中的图片，特别是 `source` 目录下的图片，我也考虑过使用图床或对象存储（如阿里云 OSS、腾讯云 COS）配合 CDN 来加速。但由于目前图片量不大，且存储在 GitHub 仓库中，暂时沿用现有方案，但保留了未来迁移的选项。&lt;/p&gt;
&lt;h2&gt;插件配置调优：稳定是第一要务 (๐_๐)&lt;/h2&gt;
&lt;p&gt;一个博客的功能很大程度上依赖于各种插件。确保它们稳定、高效地运行至关重要。&lt;/p&gt;
&lt;p&gt;### 1. 评论系统 (Twikoo) 优化&lt;/p&gt;
&lt;p&gt;Twikoo 是一个部署在 Vercel 上的轻量级评论系统，国内访问友好。&lt;/p&gt;
&lt;p&gt;• **CDN 加速：** 将 Twikoo 的 JS 文件也纳入了上述的自定义 CDN 回退加载脚本中。&lt;/p&gt;
&lt;p&gt;• **配置检查：** 确认 `_config.butterfly.yml` 和 `_config.yml` 中的 Twikoo 配置（如 `envId`）正确无误。&lt;/p&gt;
&lt;p&gt;• **性能监控：** 通过浏览器开发者工具观察 Twikoo 脚本的加载时间和对页面性能的影响。&lt;/p&gt;
&lt;p&gt;### 2. 搜索功能 (Algolia) 优化&lt;/p&gt;
&lt;p&gt;Algolia 提供了强大的站内搜索能力。&lt;/p&gt;
&lt;p&gt;• **索引更新：** 确保在每次部署前都运行 `hexo algolia` 命令，将最新的文章内容索引到 Algolia。&lt;/p&gt;
&lt;p&gt;• **搜索体验：** 调整了搜索结果的显示样式和数量，使其更符合博客的整体风格。&lt;/p&gt;
&lt;p&gt;### 3. 统计与分析 (不蒜子/Umami/Google Analytics)&lt;/p&gt;
&lt;p&gt;• **不蒜子 (Busuanzi)：** 简单易用的页面计数器，继续保留。&lt;/p&gt;
&lt;p&gt;• **Umami (自建)：** 更注重隐私的网站分析工具。确认其部署状态稳定，数据收集正常。&lt;/p&gt;
&lt;p&gt;• **Google Analytics：** 用于获取更详细的用户行为数据。检查了跟踪代码的加载情况和配置。&lt;/p&gt;
&lt;h2&gt;主题细节打磨：颜值与体验并重 (๐_๐)&lt;/h2&gt;
&lt;p&gt;Butterfly 主题本身已经非常优秀，但仍有一些细节可以打磨。&lt;/p&gt;
&lt;p&gt;### 1. 代码块与高亮&lt;/p&gt;
&lt;p&gt;• 选择了更护眼的 `light` 代码高亮主题。&lt;/p&gt;
&lt;p&gt;• 启用了代码复制按钮，方便读者复制代码片段。&lt;/p&gt;
&lt;p&gt;### 2. 图片灯箱与懒加载&lt;/p&gt;
&lt;p&gt;• 启用了 `fancybox` 作为图片灯箱，提升图片浏览体验。&lt;/p&gt;
&lt;p&gt;• 考虑到对 SEO 的潜在影响，暂时未启用全局图片懒加载，但保留了该选项。&lt;/p&gt;
&lt;p&gt;### 3. 自定义样式与脚本&lt;/p&gt;
&lt;p&gt;• 通过 `inject.head` 和 `inject.bottom` 注入了一些自定义的 CSS 和 JS，用于微调样式和添加一些小功能（如右键菜单）。&lt;/p&gt;
&lt;p&gt;• 确保自定义代码不会与主题核心功能冲突。&lt;/p&gt;
&lt;p&gt;### 4. 响应式与移动端优化&lt;/p&gt;
&lt;p&gt;• 测试了博客在不同尺寸设备上的显示效果，确保移动端体验良好。&lt;/p&gt;
&lt;p&gt;• 启用了移动端的点击特效（`clickShowText`）。&lt;/p&gt;
&lt;h2&gt;SEO 与可访问性提升 (๐_๐)&lt;/h2&gt;
&lt;p&gt;一个优秀的博客不仅要好看好用，还要让搜索引擎“看得见、看得懂”。&lt;/p&gt;
&lt;p&gt;### 1. 站点地图 (Sitemap)&lt;/p&gt;
&lt;p&gt;• 同时生成了标准的 `sitemap.xml` 和百度专用的 `baidusitemap.xml`。&lt;/p&gt;
&lt;p&gt;• 确保这些文件能被搜索引擎正确抓取。&lt;/p&gt;
&lt;p&gt;### 2. 结构化数据 (Structured Data)&lt;/p&gt;
&lt;p&gt;• 启用了主题自带的结构化数据支持，帮助搜索引擎更好地理解页面内容。&lt;/p&gt;
&lt;p&gt;### 3. 关键词与描述&lt;/p&gt;
&lt;p&gt;• 在 `_config.yml` 中设置了全局的 `keywords` 和 `description`，并在每篇文章的 Front-matter 中进行了细化。&lt;/p&gt;
&lt;h2&gt;总结与反思 (๐_๐)&lt;/h2&gt;
&lt;p&gt;经过这一轮深度优化，我的博客在访问速度、稳定性和功能完善度上都有了显著提升。通过自定义 CDN 回退脚本，实现了资源加载的高可用性；通过对插件和主题的细致调优，确保了各项功能的顺畅运行；通过 SEO 方面的加强，为博客的长期发展打下了基础。&lt;/p&gt;
&lt;p&gt;当然，优化是一个持续的过程。技术在发展，需求在变化，未来可能还需要根据实际情况进行调整。例如，随着图片数量的增加，可能会考虑专业的图床方案；随着访问量的增长，可能会进一步优化性能或考虑静态资源的进一步压缩。&lt;/p&gt;
&lt;p&gt;这次折腾让我对 Hexo 和 Butterfly 的运作机制有了更深入的理解，也收获了满满的成就感。希望这篇记录能给正在优化自己博客的你带来一些启发。Keep hacking, keep blogging! (๑•̀ㅂ•́)و✧&lt;/p&gt;
&lt;hr/&gt;&lt;p&gt;本文永久数字短链：&lt;a href=&quot;https://halfair.top/posts/51683&quot;&gt;https://halfair.top/posts/51683&lt;/a&gt; · 作者：半团空气 (HalfAir)&lt;/p&gt;</content:encoded><dc:creator>半团空气</dc:creator><dc:date>2024-11-15 · 2.6k 字 · 7 min</dc:date><category>技术折腾</category><category>Hexo</category><category>Butterfly</category><category>博客优化</category><category>CDN</category><category>性能调优</category><author>7780102@qq.com (半团空气)</author><comments>https://halfair.top/posts/51683#comments</comments></item><item><title>末日求生指南（上卷）：灾变预兆、居家堡垒化与前 72 小时生存铁律</title><link>https://halfair.top/posts/51681</link><guid isPermaLink="true">https://halfair.top/posts/51681</guid><description>现代文明是一座建立在极窄冗余带上的精密钟表。作为《超硬核版末日求生指南》三部曲上卷，本文系统拆解灾变前兆信号判读、72h BOB 与 30 天床底储备清单、高层锁水与四级净水工艺、CAT 旋压止血急救以及“灰色人”防卫铁律。</description><pubDate>Tue, 12 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;现代精密钟表的停摆、床底三级储备清单、四级净水消杀与灰色人法则&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;现代文明是一座建立在极窄冗余带上的精密钟表。作为《超硬核版末日求生指南》三部曲上卷，本文系统拆解灾变前兆信号判读、72h BOB 与 30 天床底储备清单、高层锁水与四级净水工艺、CAT 旋压止血急救以及“灰色人”防卫铁律。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;一、 精密钟表的停摆：72 小时冗余极限与临界预兆判读&lt;/h2&gt;
&lt;p&gt;现代文明是一座建立在极窄冗余带上的精密钟表。我们习惯了拧开水龙头就有加压自来水，习惯了插座里永远维持着 220 伏特、50 赫兹的交流电，以至于忘记了这套系统在热力学上的脆弱性——只需要一次持续四十八小时的极寒电网解列，或者一场里氏七级以上的浅源直下型地震，几百万人赖以维系的现代物流与市政管网就会像断电后的全息投影一样，在三天之内彻底消散。&lt;/p&gt;
&lt;p&gt;任何复杂系统的崩溃都不是在某一秒钟凭空发生的，它在失稳前往往会释放出密集的低频噪声。第一类是地球物理与大气环流的硬指标：深井水位的异常骤降与浑浊冒泡、近地面高频电磁噪声激增、或是气象雷达图上静止不动的极端冷涡与阻塞高压；第二类则是更为隐蔽的社会毛细血管收缩：当大宗粮油与抗生素原料药出现区域性限购、港口集装箱周转率断崖式下跌、或是世界卫生组织（WHO）将某种不明原因呼吸系统综合征的预警级别悄然上调时，明智的人已经推着购物车走出了批发市场。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;在和平年代被视作“杞人忧天”的冗余储备，在电网解列后的第四十八小时，就是隔开文明体面与原始丛林的唯一一道物理防线。&lt;/p&gt;&lt;footer&gt;— 《超硬核版末日求生指南》· 上卷序章定律&lt;/footer&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;[WARNING] 反恐慌黄金准则：静默观察，果断行动&lt;/strong&gt;&lt;br/&gt;应急预判的核心目的不是制造焦虑或散播谣言，而是通过交叉比对权威机构（USGS、IPCC、WHO、国家突发事件预警信息发布网）的一手遥测数据，在群体性羊群效应爆发前完成家庭静默备货。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;二、 我床底下的底牌：72 小时 BOB 与 30 天居家储备清单&lt;/h2&gt;
&lt;p&gt;在我的储物间里，应急物资从不杂乱堆放，而是按照响应半径严格划分为两个物理层级：一只是随时可以拎起冲下楼梯的 **72 小时随身撤离包（Bug-Out Bag, BOB）**，另一组则是锁在避光防潮箱里的 **30 天居家静默维生储备**。&lt;/p&gt;
&lt;p&gt;水是所有算术的第一项。人体在断水七十二小时后肾脏就会进入不可逆的衰竭期。除了常备两箱定期轮换的瓶装饮用水外，压箱底的武器是 0.1 微米孔径的中空纤维物理滤水器，配合三百片独立铝箔包装的二氧化氯净水片。食物则完全抛弃对烹饪条件的依赖：高密度军用压缩干粮、梅林午餐肉罐头、高纯度黑巧克力与复合维生素片构成了热量基底；药品箱里最核心的则是 CAT 旋压式止血带、足量的口服补液盐（ORS III）与广谱抗生素——在缺医少药的灾后环境里，一场普通的急性肠胃炎脱水就足以夺走一条壮年性命。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Code · survival-tier1-manifest.yml (yaml)&lt;/em&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;# HalfAir 三级应急物资定量配置清单 (单人 72h BOB + 14d 居家基准)
hydration_system:
  bottled_reserve: &amp;quot;28L 密封矿泉水 (按 2L/人/日 饮用 + 卫生底线核算)&amp;quot;
  filtration: &amp;quot;Sawyer Mini 0.1μm 中空纤维滤芯 (理论寿命 37万升)&amp;quot;
  chemical_purification: &amp;quot;二氧化氯净水片 x100片 (每片消杀 1L 原水, 静置30分钟)&amp;quot;

caloric_ration:
  high_density: &amp;quot;90式/09式压缩干粮 x6块 (每块 250g ≈ 1150 kcal)&amp;quot;
  protein_and_fat: &amp;quot;梅林午餐肉罐头 x8 + 豆豉鲮鱼罐头 x6 + 坚果能量棒&amp;quot;
  electrolytes: &amp;quot;博益德口服补液盐散(III) x20袋 + 复合维生素片 x1瓶&amp;quot;

medical_and_comms:
  trauma_kit: &amp;quot;CAT 旋压式止血带 + 急救创伤敷料 + 聚维酮碘棉球 + 布洛芬&amp;quot;
  off_grid_comms: &amp;quot;Quansheng UV-K5 全段收发机 + 德生 PL-330 短波收音机&amp;quot;
  power_and_light: &amp;quot;18650 双燃料战术手电 + 20W 单晶硅折叠太阳能板&amp;quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;三、 黄金三三法则、室中室保温与四级净水消杀链&lt;/h2&gt;
&lt;p&gt;灾难降临的最初几个小时里，只要你所在的钢筋混凝土建筑没有发生结构性垮塌或被毒气火海包围，**原地固守（Shelter-in-Place）**永远是存活率最高的选择。原因藏在严苛的生存“三三法则”里：人类断绝氧气只能撑三分钟，暴露在严寒风雨中失温只能撑三小时，没有饮用水只能撑三天，而没有食物反而能熬过三周。一旦遇冬季断暖，直接在客厅或无外窗的内卫支起一顶双层帐篷，铺上气垫与铝箔保温毯——用“室中室”结构将人体散发的微弱热量死死锁在两立方米的微气候热岛里。&lt;/p&gt;
&lt;p&gt;当家里最后一瓶矿泉水见底，不得不去接屋檐雨水或景观湖浑水时，必须分步执行四级净水：先将原水静置沉淀两小时，用三层棉布加上洗净的细沙、碎木炭与鹅卵石完成**粗过滤**；接着通过 0.1 微米中空纤维滤芯去除细菌与寄生虫；最后执行**持续沸腾一分钟以上**或投入一片二氧化氯净水片避光静置三十分钟。同时备好高纯度镁棒（Ferrocerium Rod）与浸透凡士林的脱脂棉球作为全天候火种，并牢记四肢动脉喷射出血时在近心端 5~8 厘米处扎紧 CAT 止血带并标注精确分钟数。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;[ERROR] 高层建筑初期锁水铁律&lt;/strong&gt;&lt;br/&gt;一旦确认市政停水，立刻关闭家中自来水总阀门（防止管网负压倒吸抽干你家热水器与管道里的存水），随后用洁净容器接满马桶储水箱（非马桶底座）及电热水器内胆中的数十升清洁存水。&lt;/p&gt;&lt;/blockquote&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;净水工艺&lt;/th&gt;&lt;th&gt;去除泥沙/悬浮物&lt;/th&gt;&lt;th&gt;杀灭细菌/原虫包囊&lt;/th&gt;&lt;th&gt;灭活病毒 (小粒径)&lt;/th&gt;&lt;th&gt;燃料/耗材依赖度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;三层沙炭物理粗滤&lt;/td&gt;&lt;td&gt;★★★ 极佳（降低浊度）&lt;/td&gt;&lt;td&gt;✕ 无效（仅作预处理）&lt;/td&gt;&lt;td&gt;✕ 无效&lt;/td&gt;&lt;td&gt;零耗材（就地取材）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0.1μm 中空纤维超滤&lt;/td&gt;&lt;td&gt;★★☆ 良好（需先澄清水体）&lt;/td&gt;&lt;td&gt;★★★ 99.99% 截留&lt;/td&gt;&lt;td&gt;✕ 无法截留微小病毒&lt;/td&gt;&lt;td&gt;滤芯寿命极长，无需电力&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;二氧化氯化学消毒&lt;/td&gt;&lt;td&gt;✕ 无效（浑水消耗有效氯）&lt;/td&gt;&lt;td&gt;★★★ 强效杀灭&lt;/td&gt;&lt;td&gt;★★★ 强效灭活&lt;/td&gt;&lt;td&gt;依赖密封药片，静置 30 分钟&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;持续沸腾 (100°C ≥ 1min)&lt;/td&gt;&lt;td&gt;✕ 无效&lt;/td&gt;&lt;td&gt;★★★ 彻底杀灭&lt;/td&gt;&lt;td&gt;★★★ 彻底灭活&lt;/td&gt;&lt;td&gt;极高（消耗宝贵燃料且产烟）&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;四、 灰色人法则与无源听觉防线：不发生接触是最高级的防卫&lt;/h2&gt;
&lt;p&gt;在秩序刚刚溃散的城市里，穿一身全地形迷彩服、挂满 MOLLE 战术副包走上街头，无异于举着大喇叭向所有饥肠辘辘的暴徒广播“快来抢我”。真正的生存老手奉行的是 **“灰色人法则（Gray Man Theory）”**：穿一件洗得发白的深灰色旧工装外套，背一只最普通的黑色旧双肩包，目光扫视四周却绝不与任何人产生超过一秒的对视。在没有抗生素和外科手术室的世界里，任何一次近身搏斗只要划破三厘米口子，七天后的破伤风或败血症依然会把你带走。&lt;/p&gt;
&lt;p&gt;万一退无可退，器械选择的唯一指标是**安全物理距离**：一段一米二长的复合钢管、射程 4 米的高浓度射流型防狼喷雾（OC 辣椒水），以及一把 2000 流明高频爆闪战术手电，能在暗适应楼道里瞬间令入侵者致盲眩晕十秒。夜间守备时，在楼梯转角与窗台内侧用深色钓鱼线拉设紧贴地面十厘米的绊线并连接装有碎玻璃的空易拉罐，门后铺设干燥碎蛋壳，用两块钱的机械物理预警网替代断电失效的电子监控。&lt;/p&gt;
&lt;h3&gt;权威文献与工程规范引证&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;FEMA / Ready.gov&lt;/strong&gt; · &lt;a href=&quot;https://www.ready.gov/kit&quot;&gt;Build A Kit — Federal Emergency Supply List &amp;amp; 72-Hour Preparedness Standard&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;WHO / CDC&lt;/strong&gt; · &lt;a href=&quot;https://www.who.int/publications/i/item/9789241549950&quot;&gt;Guidelines for Drinking-water Quality &amp;amp; Emergency Water Disinfection Protocols&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ICRC&lt;/strong&gt; · &lt;a href=&quot;https://www.icrc.org/en/publication/0870-first-aid-armed-conflicts-and-other-situations-violence&quot;&gt;International Committee of the Red Cross — First Aid in Armed Conflicts&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;hr/&gt;&lt;p&gt;本文永久数字短链：&lt;a href=&quot;https://halfair.top/posts/51681&quot;&gt;https://halfair.top/posts/51681&lt;/a&gt; · 作者：半团空气 (HalfAir)&lt;/p&gt;</content:encoded><dc:creator>半团空气</dc:creator><dc:date>2024-11-12 · 11.2k 字 · 22 min</dc:date><category>末日求生</category><category>末日生存</category><category>应急工程</category><author>7780102@qq.com (半团空气)</author><comments>https://halfair.top/posts/51681#comments</comments></item><item><title>垃圾佬的逆袭：双网口 J1900 软路由主路接管实录</title><link>https://halfair.top/posts/47291</link><guid isPermaLink="true">https://halfair.top/posts/47291</guid><description>当单网口旁路由已无法满足多拨、精细化 QoS 与全屋设备统一管控的胃口，我在角落里翻出了一台四核 J1900 双千兆老古董主机。本文记录从 mSATA 物理写盘、WAN/LAN 物理链路分离到主路由切换的全流程。</description><pubDate>Tue, 05 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;从“寄人篱下”的旁路小弟，到独当一面的家庭网络中枢&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;当单网口旁路由已无法满足多拨、精细化 QoS 与全屋设备统一管控的胃口，我在角落里翻出了一台四核 J1900 双千兆老古董主机。本文记录从 mSATA 物理写盘、WAN/LAN 物理链路分离到主路由切换的全流程。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;一、 告别“寄人篱下”：单臂旁路与双口主路的物理分野&lt;/h2&gt;
&lt;p&gt;把闲置主机改成单网口旁路由用了一周后，人性的贪婪便开始作祟了。旁路由虽然安全省心，但在拓扑结构上终究是个“寄人篱下”的兼职顾问——所有的外网 NAT 转换与 PPPoE 拨号会话依然攥在那台羸弱的老旧硬路由手里。一旦家里有人开启 BT 满速下载，主路由的硬件 NAT 表项瞬间溢出，旁路由算力再强也只能跟着干瞪眼。&lt;/p&gt;
&lt;p&gt;本着“垃圾佬绝不买新”的铁律，我在储物间最底层的纸箱里翻出了一台满身灰尘的工控小主机：Intel Celeron J1900 四核四线程处理器、板载 4GB DDR3L 内存、一块 16GB 的 mSATA 固态硬盘，最关键的是——它的铝合金背板上并排焊着两个独立的千兆 RJ45 网口。&lt;/p&gt;
&lt;p&gt;多出来的这一个物理网口，在拓扑学上意味着彻底的权力交接：从此 `eth0` 与 `eth1` 各司其职，一条专职对内分发局域网 IP，一条专职对外拨号直面公网洪流，再也不必在同一根网线上做憋屈的双向折返跑。&lt;/p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;对比维度&lt;/th&gt;&lt;th&gt;单网口软路由（旁路由 / 单臂网关）&lt;/th&gt;&lt;th&gt;双网口软路由（主路由 / 核心网关）&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;物理接线拓扑&lt;/td&gt;&lt;td&gt;单根网线接入原主路由 LAN 口，处于同一广播域&lt;/td&gt;&lt;td&gt;WAN 口直连光猫桥接，LAN 口下联交换机与无线 AP&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;核心职责范围&lt;/td&gt;&lt;td&gt;仅接管指定终端的透明代理、DNS 清洗与去广告&lt;/td&gt;&lt;td&gt;全权接管 PPPoE 拨号、DHCP 分发、NAT 转发、QoS 流控与防火墙&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;链路吞吐损耗&lt;/td&gt;&lt;td&gt;同一网口双向收发，存在理论折返开销与非对称路由问题&lt;/td&gt;&lt;td&gt;WAN / LAN 物理隔离，全双工线速转发零折返&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;容灾与家庭风险&lt;/td&gt;&lt;td&gt;极低（宕机后仅需将网关指回主路由即可恢复）&lt;/td&gt;&lt;td&gt;高（一旦系统崩溃全屋断网，需严格做好配置备份）&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;二、 老兵复活：J1900 硬件清灰与 mSATA 裸金属写盘&lt;/h2&gt;
&lt;p&gt;这台 J1900 发布于十多年前的 22 纳米时代，TDP 热设计功耗仅有 10 瓦。拆开塞满柳絮的被动散热机箱，用毛刷扫去主板上的陈年积灰，换上一抹新鲜的导热硅脂，通电瞬间指示灯依然清脆地亮起。&lt;/p&gt;
&lt;p&gt;为了让老硬件榨出最纯粹的包转发性能，这次我放弃了虚拟化嵌套，选择直接在裸机（Bare-Metal）上刷入 x86_64 固件。拆下那块拇指大小的 16GB mSATA SSD，插上 USB 转接板连入电脑，用写盘工具直接将 `.img` 镜像扇区级烧录进固态硬盘，再装回主板拧紧螺丝。整个过程像给一柄老步枪重新擦亮枪管、压满弹夹。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Code · /etc/config/network (Dual-NIC Primary Router) (bash)&lt;/em&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;# 1. 内网交换局域网接口 (eth0 -&amp;gt; br-lan)
config interface &amp;#39;lan&amp;#39;
    option device &amp;#39;br-lan&amp;#39;
    option proto &amp;#39;static&amp;#39;
    option ipaddr &amp;#39;192.168.2.1&amp;#39;
    option netmask &amp;#39;255.255.255.0&amp;#39;

# 2. 外网广域网拨号接口 (eth1 -&amp;gt; wan)
config interface &amp;#39;wan&amp;#39;
    option device &amp;#39;eth1&amp;#39;
    option proto &amp;#39;pppoe&amp;#39;
    option username &amp;#39;your_isp_account&amp;#39;
    option password &amp;#39;your_isp_secret&amp;#39;
    option ipv6 &amp;#39;auto&amp;#39;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;三、 主路由的生存纪律：TCP BBR 拥塞控制与救命备份&lt;/h2&gt;
&lt;p&gt;当软路由坐上“一把手”的位置后，克制折腾欲就成了最高准则。在插件编排上，我只保留了最核心的黄金三角：用 `MosDNS` 配合 `AdGuardHome` 接管内网 DNS 分流与广告过滤，用轻量级透明代理处理跨境流量，其余花哨的 Docker 容器与下载服务一律剥离给专门的 NAS 承担——让路由器的归路由器，存储的归存储。&lt;/p&gt;
&lt;p&gt;在内核调优层面，开启 Linux 内核原生的 `TCP BBR` 拥塞控制算法与网卡多队列中断负载均衡（Packet Steering），能让这颗老旧的四核处理器在跑满千兆宽带时 CPU 占用率依然维持在 30% 以下。而在每次动手修改任何防火墙规则之前，去【系统 → 备份与升级】里点一下“生成备份压缩包”，则是每一位软路由玩家免于跪搓衣板的最后护身符。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;[TIP] 原硬路由的体面退居：有线 AP 模式&lt;/strong&gt;&lt;br/&gt;双网口软路由接管拨号后，原本的小米硬路由千万别扔——进入其后台将其切换为“有线中继 / AP 模式”（关闭其自身 DHCP 与 NAT，网线从软路由 LAN 口插入硬路由 LAN 口）。这样它就变成了一台纯粹的无线发射器，继续发挥余热覆盖全屋 Wi-Fi。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3&gt;权威文献与工程规范引证&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;OpenWrt Docs&lt;/strong&gt; · &lt;a href=&quot;https://openwrt.org/docs/guide-user/installation/openwrt_x86&quot;&gt;OpenWrt on x86 Hardware — Installation &amp;amp; Disk Image Flashing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Linux Kernel&lt;/strong&gt; · &lt;a href=&quot;https://queue.acm.org/detail.cfm?id=3022184&quot;&gt;TCP BBR Congestion Control Algorithm Specification (ACM Queue)&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;hr/&gt;&lt;p&gt;本文永久数字短链：&lt;a href=&quot;https://halfair.top/posts/47291&quot;&gt;https://halfair.top/posts/47291&lt;/a&gt; · 作者：半团空气 (HalfAir)&lt;/p&gt;</content:encoded><dc:creator>半团空气</dc:creator><dc:date>2024-11-05 · 1.6k 字 · 4 min</dc:date><category>硬核硬件</category><category>OpenWrt</category><category>家庭网络</category><author>7780102@qq.com (半团空气)</author><comments>https://halfair.top/posts/47291#comments</comments></item><item><title>垃圾佬的逆袭：单网口 OpenWrt 旁路由搭建与防断网指南</title><link>https://halfair.top/posts/6460</link><guid isPermaLink="true">https://halfair.top/posts/6460</guid><description>家里的老旧主路由在多设备并发下频频卡顿，直接替换又面临“全家断网”的家庭矛盾风险。本文从单臂路由（Single-Arm Router）包转发原理出发，完整还原群晖 VMM / 飞牛 OS 虚拟机导入 OpenWrt、终端静态跃点、LuCI 取消桥接与忽略 DHCP 等全套 14 步实操图解。</description><pubDate>Tue, 29 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;当百元闲置盒子与 NAS 虚拟机化身单臂网关，在不惊动家人的前提下接管家庭网络流量&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;家里的老旧主路由在多设备并发下频频卡顿，直接替换又面临“全家断网”的家庭矛盾风险。本文从单臂路由（Single-Arm Router）包转发原理出发，完整还原群晖 VMM / 飞牛 OS 虚拟机导入 OpenWrt、终端静态跃点、LuCI 取消桥接与忽略 DHCP 等全套 14 步实操图解。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;一、 闷热傍晚的加载圆圈与“单臂路由”的妥协艺术&lt;/h2&gt;
&lt;p&gt;那台服役多年的普通家用主路由，是在一个闷热的周日傍晚彻底败下阵来的。羸弱的双核处理器在同时应付客厅电视、两台电脑和五部手机的并发连接后，外壳烫得像一块刚出锅的烙铁。母亲坐在沙发上盯着平板里不停旋转的爱奇艺加载圆圈念叨：“买这么多盒子回来到底在弄啥？现在连看个高清视频都卡了！”&lt;/p&gt;
&lt;p&gt;对于手头预算常年不超过两百块钱的“垃圾佬”而言，专门花高价买双网口软路由显然违背祖训；但如果直接拔掉主路由换上自己瞎折腾的实验固件，一旦半夜内核抽风，第二天一早就会演变成严重的家庭外交事故。&lt;/p&gt;
&lt;p&gt;于是，我盯上了角落里那台性能过剩的黑群晖 NAS（同理适用于飞牛 fnOS 或闲置单网口小主机）。它虽然只有一个千兆 RJ45 网口，却拥有充裕的 x86 算力。在不改动主路由拨号与 Wi-Fi 拓扑的前提下，开一台虚拟机充当“旁路由”，成了兼顾家庭和睦与极客折腾的最优解。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;所谓“旁路由”，在正统网络工程里的学名叫单臂路由（Single-Arm Router）。它像一位隐居在局域网支流里的摆渡人：平时不争主路由的拨号大权，却在数据包流经的咽喉处悄然完成清洗与分流。&lt;/p&gt;&lt;footer&gt;— HalfAir · 家庭实验室手记&lt;/footer&gt;&lt;/blockquote&gt;
&lt;h2&gt;二、 独木桥上的双向行车：单网口旁路由网络拓扑&lt;/h2&gt;
&lt;p&gt;要让只有一个物理网口（`eth0`）的设备承担网关职责，首先必须在物理层看清主路由与旁路由的分工：光猫处于桥接模式连入华为主路由（如 `192.168.3.1`），由硬路由稳妥承担 PPPoE 拨号、Wi-Fi 发射与基础 DHCP 分配；而宿主机通过单根网线接入主路由 LAN 口，内部的 OpenWrt 旁路由固定在同网段的 `192.168.3.99`。&lt;/p&gt;
&lt;p&gt;当我们将手机或电脑的默认网关与 DNS 指向旁路由（`192.168.3.99`）时，一次完整的外网请求会经历“进站解包—去广告/科学分流—出站重封装”的折返跑，处理完毕后再通过同一个虚拟网口交还给真正掌握公网出口的主路由（`192.168.3.1`）。&lt;/p&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015518080_openwrt-01.webp&quot; alt=&quot;旁路由网络拓扑示意图，展示光猫、主路由与单网口旁路由的连接位置&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;光猫桥接 → 主路由 (192.168.3.1 负责拨号与 DHCP) → 旁路由宿主接入 LAN 口 (192.168.3.99 接管特定流量)&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2&gt;三、 虚拟机硬盘映像导入与 `/etc/config/network` 终端首刀&lt;/h2&gt;
&lt;p&gt;以群晖 Virtual Machine Manager (VMM) 搭配社区 x86_64 固件（如 bleach1991 6.6 内核版）为例：首先在 VMM【映像 → 硬盘映像】中从本地电脑上传解压好的 OpenWrt 固件镜像并命名（如 `OpenWrt-Proxy`）；随后切回【虚拟机 → 新增旁小三角 → 导入】，选择“从硬盘映像导入”并指定存储空间。&lt;/p&gt;
&lt;p&gt;资源分配遵循勤俭持家原则：对于纯转发与轻量插件场景，**1 核 CPU + 512MB~1GB 内存**绰绰有余。最关键的一步是在虚拟盘设置中务必挂载刚刚上传的 OpenWrt 硬盘映像作为第一启动盘！开机后点击【连接】打开 VNC 黑框控制台，敲下回车唤醒提示符，执行 `vi /etc/config/network` 完成“门牌号”改造，保存（`:wq`）并 `reboot` 重启。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Code · /etc/config/network (bash)&lt;/em&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;config interface &amp;#39;lan&amp;#39;
    option device &amp;#39;br-lan&amp;#39;
    option proto &amp;#39;static&amp;#39;
    option ipaddr &amp;#39;192.168.3.99&amp;#39;      # 改成规划给旁路由的同网段固定静态 IP
    option netmask &amp;#39;255.255.255.0&amp;#39;
    option gateway &amp;#39;192.168.3.1&amp;#39;      # 必须指向家里主路由的 LAN 口 IP
    list dns &amp;#39;192.168.3.1&amp;#39;            # 基础解析交由主路由或 223.5.5.5
    option ipv6 &amp;#39;0&amp;#39;&lt;/code&gt;&lt;/pre&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015523192_openwrt-02.webp&quot; alt=&quot;上传 OpenWrt 硬盘映像到群晖 VMM&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;进入 VMM【硬盘映像】上传 OpenWrt 固件镜像并命名识别&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015519430_openwrt-03.webp&quot; alt=&quot;从硬盘映像导入虚拟机选项&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;在【虚拟机 → 新增 → 导入】中选择“从硬盘映像导入”&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015523406_openwrt-04.webp&quot; alt=&quot;选择虚拟机存储空间&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;按 NAS 实际情况选择存放虚拟机文件的存储池空间&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015521301_openwrt-05.webp&quot; alt=&quot;配置虚拟机的 CPU 和内存资源&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;按需分配算力：旁路由分配 1 核 CPU、512MB 内存即可轻快运行&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015520032_openwrt-06.webp&quot; alt=&quot;选择虚拟机启动硬盘映像文件&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;关键步骤：虚拟盘务必选中刚上传的 OpenWrt 映像作为启动盘&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015527188_openwrt-07.webp&quot; alt=&quot;连接到 OpenWrt 虚拟机控制台&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;启动虚拟机后点击【连接】唤起 VNC 终端控制台窗口&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015529013_openwrt-08.webp&quot; alt=&quot;OpenWrt 命令行提示符&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;等待内核日志滚动完毕后按回车，出现 OpenWrt 根命令提示符&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015522663_openwrt-09.webp&quot; alt=&quot;查看并编辑 OpenWrt /etc/config/network 网络配置文件&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;执行 vi /etc/config/network 修改 lan 口 ipaddr 与 gateway 后 :wq 保存重启&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2&gt;四、 LuCI Web 后台点亮技能树：解绑桥接、忽略 DHCP 与动态伪装&lt;/h2&gt;
&lt;p&gt;虚拟机重启完毕后，在浏览器输入 `192.168.3.99` 即可进入久违的 OpenWrt LuCI 图形管理后台。定位到【网络 → 接口 → LAN → 修改】，这里是决定旁路由能否“安分守己、不断内网”的核心战场：&lt;/p&gt;
&lt;p&gt;在基本设置中确认静态 IPv4 地址、主路由网关与自定义 DNS；切换到【物理设置】**取消勾选“桥接接口”**并仅绑定真实虚拟网卡；切换到【DHCP 服务器】务必**勾选“忽略此接口”**并彻底禁用 IPv6 路由通告服务，将局域网发牌权完整交还给主路由。保存并应用后，即可前往【服务】菜单按需开启去广告与透明分流插件。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;[WARNING] 非对称路由丢包与 NAT 动态伪装（Masquerading）&lt;/strong&gt;&lt;br/&gt;当流量采用“终端 → 旁路由 → 主路由 → 终端”非对称路径时，部分主路由的状态防火墙会将回程 TCP ACK 误判为 INVALID 丢弃。若遇国内网页偶发断流，请在【网络 → 防火墙】中勾选 LAN 区域的“IP 动态伪装”与“MSS 钳制”。&lt;/p&gt;&lt;/blockquote&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015530779_openwrt-10.webp&quot; alt=&quot;OpenWrt Web 界面 - 网络接口列表&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;登录后台进入【网络 → 接口】，点击 LAN 口右侧的“修改”&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015529223_openwrt-11.webp&quot; alt=&quot;OpenWrt Web 界面 - LAN 口基本设置截图&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;基本设置：核对静态 IPv4 地址、主路由网关与自定义上游 DNS&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015531414_openwrt-12.webp&quot; alt=&quot;OpenWrt Web 界面 - LAN 口物理设置截图&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;物理设置：取消勾选“桥接接口”，仅绑定单一虚拟以太网适配器&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015525647_openwrt-13.webp&quot; alt=&quot;OpenWrt Web 界面 - LAN 口 DHCP 设置截图&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;DHCP 服务器：务必勾选“忽略此接口”并关闭 IPv6 服务，杜绝双 DHCP 冲突&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;img src=&quot;https://img.halfair.top/file/blog/1794015529836_openwrt-14.webp&quot; alt=&quot;OpenWrt Web 界面 - 服务菜单插件列表&quot; loading=&quot;lazy&quot; /&gt;&lt;figcaption&gt;基础网络收敛完成后，在【服务】菜单中按需配置分流、去广告与内网穿透插件&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2&gt;五、 几款常用 OpenWrt 固件的实测对比&lt;/h2&gt;
&lt;p&gt;软路由圈子里流传着一句话：“硬件决定下限，固件决定血压。”对于不想从零交叉编译源码的玩家，直接选用成熟稳定的社区固件能省下无数排错的深夜。以下是我实测整理的选型对照表：&lt;/p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;固件名称&lt;/th&gt;&lt;th&gt;核心定位与优势&lt;/th&gt;&lt;th&gt;局限与注意点&lt;/th&gt;&lt;th&gt;官方构建 / 项目地址&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;OpenWrt Official&lt;/td&gt;&lt;td&gt;官方主线源码，纯净度与长期稳定性天花板，安全补丁最及时&lt;/td&gt;&lt;td&gt;默认无中文与第三方分流插件，需手动通过 opkg / apk 加装&lt;/td&gt;&lt;td&gt;https://firmware-selector.openwrt.org/&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;iStoreOS (KoolCenter)&lt;/td&gt;&lt;td&gt;搭载现代化向导 UI 与 iStore 软件商店，兼顾路由与轻量 NAS 体验&lt;/td&gt;&lt;td&gt;系统镜像体积略大，适合新手开箱即用&lt;/td&gt;&lt;td&gt;https://www.istoreos.com/&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Kwrt 在线定制编译&lt;/td&gt;&lt;td&gt;支持网页端按设备型号勾选所需插件，几分钟自动云编译专属固件&lt;/td&gt;&lt;td&gt;勾选过多冗余插件易引发依赖冲突，建议遵循最小够用原则&lt;/td&gt;&lt;td&gt;https://openwrt.ai/&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ImmortalWrt / 社区精编&lt;/td&gt;&lt;td&gt;针对中文社区深度优化（含 bleach1991、DHDAXCW、X-WRT 等分支）&lt;/td&gt;&lt;td&gt;需结合自身内核偏好与网卡驱动按需挑选稳定版&lt;/td&gt;&lt;td&gt;https://firmware-selector.immortalwrt.org/&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;权威文献与工程规范引证&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;OpenWrt Docs&lt;/strong&gt; · &lt;a href=&quot;https://openwrt.org/docs/guide-user/network/openwrt_as_clientdevice&quot;&gt;OpenWrt as a Client Device / Gateway on a Stick Configuration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;OpenWrt Firewall&lt;/strong&gt; · &lt;a href=&quot;https://openwrt.org/docs/guide-user/firewall/firewall_configuration&quot;&gt;Firewall Configuration — Masquerading &amp;amp; MSS Clamping (`/etc/config/firewall`)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;IETF RFC 792&lt;/strong&gt; · &lt;a href=&quot;https://datatracker.ietf.org/doc/html/rfc792&quot;&gt;Internet Control Message Protocol (ICMP Redirect Message Specification)&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;hr/&gt;&lt;p&gt;本文永久数字短链：&lt;a href=&quot;https://halfair.top/posts/6460&quot;&gt;https://halfair.top/posts/6460&lt;/a&gt; · 作者：半团空气 (HalfAir)&lt;/p&gt;</content:encoded><dc:creator>半团空气</dc:creator><dc:date>2024-10-29 · 2.8k 字 · 7 min</dc:date><category>硬核硬件</category><category>OpenWrt</category><category>家庭网络</category><author>7780102@qq.com (半团空气)</author><comments>https://halfair.top/posts/6460#comments</comments></item><item><title>Hello World：阴差阳错搭起来的个人小站</title><link>https://halfair.top/posts/16107</link><guid isPermaLink="true">https://halfair.top/posts/16107</guid><description>原本只是想写个顺眼的浏览器起始页，结果一路折腾下来，在公网上搭起了一座独立博客。</description><pubDate>Sun, 27 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;源于一次偏航的念头，写给这间小屋的开篇随笔&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;原本只是想写个顺眼的浏览器起始页，结果一路折腾下来，在公网上搭起了一座独立博客。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2&gt;一、 一次偏航的“美丽误会”&lt;/h2&gt;
&lt;p&gt;这座博客的诞生，说来更像是一场偏离了既定航向的意外。最初打开编辑器的时候，我其实只是想给自己写一个干净的浏览器起始页——放几个常用的书签，配一张顺眼的壁纸，仅此而已。&lt;/p&gt;
&lt;p&gt;但折腾代码的人总有一种停不下来的惯性。在翻阅各种开源项目的过程里，我鬼使神差地闯进了独立博客的世界。从配置 Node.js 环境、拉取静态生成框架，到在终端里敲下第一行初始化指令，等我回过神来时，屏幕上已经不再是一个单薄的导航页，而是一座有归档、有目录、有评论区的完整站点。&lt;/p&gt;
&lt;p&gt;既然命运把脚手架推到了面前，那索性就在这片喧嚣的互联网荒原上，认真地立一块属于自己的界碑。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;在算法信息流把所有人的注意力切割成十五秒碎片的时代，拥有一处完全由自己掌控源代码的角落，本身就是一种温和的抵抗。&lt;/p&gt;&lt;footer&gt;— HalfAir · 建站手记 (2024.10.27)&lt;/footer&gt;&lt;/blockquote&gt;
&lt;h2&gt;二、 这只容器用来装载什么？&lt;/h2&gt;
&lt;p&gt;人的记忆是靠不住的。很多当时觉得刻骨铭心的情绪，或者花了整整一个通宵才排查出来的网络故障，只要过上三五个月，就会在脑海里风化成模糊的影子。我需要一个足够坚固的容器，把这些正在流逝的东西固定下来：&lt;/p&gt;
&lt;p&gt;首先是生活里的日常片段。夜里煮的一碗热汤面、下午自习时突然袭来的困意，或者放学路上抬头撞见的晚霞，这些平淡甚至有些琐碎的瞬间，顺手记下来就有了温度。&lt;/p&gt;
&lt;p&gt;其次是脑海里偶尔冒出来的奇怪念头。有时候看着窗外发呆，会突然去想“要是哪天停水停电好几天该怎么办”，索性顺着念头查资料、列清单，当成一场认真的纸上推演。&lt;/p&gt;
&lt;p&gt;最后则是折腾硬件和代码的备忘录。百元淘来的旧主机怎么刷 OpenWrt、旁路由怎么配才不会让家里断网、前端框架迁移时踩了哪些坑——趁着记忆还热乎写成文档，以后自己翻找起来方便，说不定也能帮同样在排错的朋友省下半宿功夫。&lt;/p&gt;
&lt;h2&gt;三、 最初那四行终端命令&lt;/h2&gt;
&lt;p&gt;最开始的那批文章，就是靠下面这四行简简单单的命令，从本地的 Markdown 草稿生成静态页面推上去的。&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;[TIP] 致路过的朋友&lt;/strong&gt;&lt;br/&gt;很高兴你顺着搜索词或者隔壁友链逛到这里。要是有哪篇文字刚好对上你的胃口，欢迎在底下评论区留句话打个招呼。&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Code · genesis-workflow.sh (bash)&lt;/em&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;# 1. 创建新文稿草稿
$ npx hexo new &amp;quot;Hello World&amp;quot;

# 2. 清理缓存并编译静态产物
$ npx hexo clean &amp;amp;&amp;amp; npx hexo generate

# 3. 启动本地预览服务器与远端部署
$ npx hexo server
$ npx hexo deploy&lt;/code&gt;&lt;/pre&gt;
&lt;hr/&gt;&lt;p&gt;本文永久数字短链：&lt;a href=&quot;https://halfair.top/posts/16107&quot;&gt;https://halfair.top/posts/16107&lt;/a&gt; · 作者：半团空气 (HalfAir)&lt;/p&gt;</content:encoded><dc:creator>半团空气</dc:creator><dc:date>2024-10-27 · 1.1k 字 · 3 min</dc:date><category>生活随笔</category><category>生活随笔</category><category>建站折腾</category><author>7780102@qq.com (半团空气)</author><comments>https://halfair.top/posts/16107#comments</comments></item></channel></rss>