Reading view
只有一台笔记本电脑,真的可以长时间编程吗?(无外接显示器)
在工位上长期使用两台 27 寸显示器干活,各种复制/粘贴+AI 打辅助,搬砖基本上还可以。
最近出差多的时候,外面就没有大屏显示器,只能在一台笔记本上干活,发现基本上干不动了。因为我平时习惯了开好多个窗口、浏览器也开很多标签查资料,14 寸的笔记本屏幕要非常频繁的切换窗口,现在全寄到一个小屏幕上了,一屏显示的内容也小,感觉脑子就卡住了,没有多屏大显示器,基本上就废了。
我看网上一些高手经常抱着一台笔记本,坐在沙发上、咖啡馆里都 Code 敲得飞起,这是装 B ?还是真有生产力?
V 站大佬多,只一台笔记本电脑也能长时间编程吗?真有这么神吗?
给正在相亲或谈恋爱的 V 友们一些建议
73 法则
3 次主动发消息,没有积极回应,结束
3 次主动约见面,没有见面成功,结束
3 次约见面成功,没有确定关系,结束
3 次见面有花费,没有主动 1 次,结束
3 周内见面 3 次,没有肢体接触,结束
3 个月确定关系,没有抱/牵/吻,结束
3 个月情侣相处,没有互见父母,结束
这 7 条层层递进,满足一条进入下一条对比,一条不满足立即结束,推翻前面所有满足条件
(以下用词都是看不上的放屁借口:
慢热/矜持/眼缘/考验/态度/诚意/没感觉/不懂我/不上心/不会哄/怕受伤/安全感/上进心/再试试/情绪价值/经济适用男/一眼看到头)
不要做舔狗,感情一定是双向付出的。
捏麻麻的😡😡😡为什么很简单的前端问题网上搜到的答案质量居然这么差劲
事情的起因很简单,在我运行一个老的 vue 项目时候出现了报错:
error:0308010c:digital envelope routines::unsupported
经过简单的查询,我马上找到了根本原因:
我本地安装的 nodejs 版本太高了,在使用 OpenSSL 相关功能的时候有兼容性问题。 为此,nodejs 专门提供了一个命令行参数--openssl-legacy-provider , 只要启用了这个参数就没问题了。
重点来了,只要你在网上搜索error:0308010c:digital envelope routines::unsupported
这个异常信息,
无论是 google 的还是百度的,给的解决方案都十分逆天,归类如下:
1.把高版本卸载掉,装低版本。简直是神仙的不能在神仙的解决方案。
如果回答者提了一嘴 nvm 还能算个正经方案。
以我多年的经验,不知道 nvm 的草台前端开发多的是。
2.在原始的启动命令 npm run dev 前面补充参数设置:
set NODE_OPTIONS=--openssl-legacy-provider && npm run dev
你要是觉得这个答案有简单又完美,我 TM 直接化身户晨风,安卓人安卓思维是吧,这是 window 的命令行才能用,你让苹果设备的同事怎么办??
ok,ok ,你继续搜索发现有质量更高的回答说,
Unix-like 系统在运行 npm run dev 之前执行 export NODE_OPTIONS=--openssl-legacy-provider
Windows 系统则先执行 set NODE_OPTIONS=--openssl-legacy-provider
哇哦,太棒了,简直完美,个屁。你让我每次运行项目之前都额外敲命令行吗??
这种不能配置化、代码化的解决方案,我要是明天来了十个新同事,
有用苹果的有用微软的,我是不是还得一个口头传授这个宝贵经验吗?
哎,其实写到这里我自己都心累了,有兴趣的 bro 你可以自己搜索试试。
我把我自己觉得最简单直接的解决方案写在这个帖子的最后面,欢迎交流。
我专门发这个帖子还有个目的,我在搜索的时候谷歌的 AI 也给了答案,
明显是参考了大量网络上的回答,都是我总结所述的方案,我实在是觉得,
AI 已经不知道烧掉了人类多少亿的资金了,这么小一个问题依然没有给出优质回答。
所以对 AI 感到焦虑的程序员朋友们,不必在意,AI 和我们一样有够草台的。
最后附上我觉得合理的解决方案:
我认为正确处理问题的思路应该是,既然这是 nodejs 的配置问题,
那我在运行这个项目启动 nodejs 的时候给增加所需要的参数就好了。
那我是怎么启动 nodejs 的?通过 npm ,那么 npm 执行 script 的时候,
有没有办法给 node 传参?顺着这个思路,查询 npm 的文档,
最终我认为最简单、最直接、而且能够配置化的解决方案是:
在你项目的.npmrc 文件中增加一行配置:
node-options=--openssl-legacy-provider
(什么?你说你的前端项目从来没用过.npmrc 配置文件,那这是另外一个值得吐槽的草台故事了)
有多少人不贴膜 不装手机壳的
不过有一点 打游戏的时候硬邦邦的裸机确实不太舒服 而且摔了是会有损伤的
V 站有多少男同胞能 在生日/节日 收到女票/老婆的礼物呢?
https://v2ex.com/t/1160034#reply38
这个女生给她老公考虑了那么多选项,着实是少有的,用心的。V 站男同胞们你们在节假日或者生日能收到女票或者老婆的礼物吗?
“小金豆编织进 aw 的表带(但看着超级不舒服,我老公感觉不会喜欢);
爱马仕 aw 表带(小超预算,而且好像找不到靠谱的购买渠道)
湿刮套装(刮胡子和须后水一套)七夕买过了;
游戏机和游戏盘几乎都有;
飞行员墨镜(国庆去日本准备看看)
新秀丽和 coach 的卡包(感觉挺好的)。
不过看来看去都是女孩能想到的。我老公不抽烟不喝酒,比较 typcial 的技术男,喜欢实用的东西,预算 2k 以下都能接”
有没有前端大佬,帮我看一下这个网站底部的粒子动画怎么做的。
https://lusion.co/projects/ 我想做一个差不多,threejs 有没有 demo
年度程序员笑话
打字一指禅;
做 c++开发没听过 sql;
没用过 cmake ;
不会用 git ;
.......等等不一一列举,我觉得上面这些看了就已经够让人高血压了。
最近给他的任务是做一个 WebRTC 的组件用于录播 or 直播业务需求,让他从网上找开源项目自己编一个出来,再整合到目前的项目中,做个可以展示的 demo 。
此人接到任务后从 git 上找了个 1.2k star 的项目开始弄,第一周就跟 leader 说编译不过,leader 把 git 链接发我让我看一下,看了一眼 cmake 都写好的,安装一下依赖库直接编译就行;弄好之后 leader 让我转成 sln 发给他,我直接 cmake 转成 sln 打包丢给他,总不可能缺依赖都要同事手把手教吧,谁知此人仍然编译不过;(没帮他看过,叫我我就说不清楚,实在是懒得帮蠢,自己任务也很饱和)
接下来两周此人就每天编译,实在不知道怎么弄了就去烦 leader ,leader 也逐渐懒得理他。
直到昨天,此人有了一个惊天结论:
他说 GIT 开源故意针对中国的 IP ,让他下载的源文件不齐全,导致无法编译。
他说找了个国外的朋友晚上帮他下一个,看一下什么结果。
实在是太逆天了,看到上面的结论那一刻人在工位上止不住的笑。
AI 银弹,领导的最终幻想和程序员不得不承受的痛
最近领导突发奇想,派我去用 AI 工具把一个数万行的.net 遗留项目转换成 JAVA 项目,还要适配公司私有的 JAVA 库。
当时我就说不行,奈何领导直接说了技术路径:“你给咱们的代码和框架的代码啥的全喂进去然后让它生成就完了呗,什么 Agent ,Manus ,MCP ,RAG 用用“
大概转了两下看了下效果奇差,写了个报告交上去意思是不能做,最好的方法是辅助生成代码。主要设计由程序员进行。
今天领导说不行,必须做到 AI 一键转换,如果转换不了必须出一个详尽的分析报告,哪个模块能转哪个模块不行,转换率多少,BUG 率多少,测试成本怎么样之类。
听起来很合理,但是需求早就没了,这里也只有我一个人。拿出 TRAE 的 builder 对着它 vibe 了半天,trae 上下文过载了开始重复生成代码了,就像我的生命一样无趣且无用。虽然,可我还没有任何思路怎么去写这个报告。
其实领导对 AI 幻想也不是一天两天的事了,包括但不限于写工具让 AI 连接数据库,然后在没有文档的情况下自己从数据库整理业务,生成报表,图表,分析。还要仅通过无需技术背景的对话就能满足业务人员的查询需求;用 CV 在浩如烟海的视频中自动把一个车间工人的动作根据文档拆分成一个又一个微小动作并分析标不标准,统计工时。
这些要求或多或少可能存在合理之处吧?但是没有设备 u ,没有经费,甚至没有人,就是在某一个风和日丽的下午,领导找到我,然后许下一个千年的约定。
我自己在工作中也经常用 AI ,AI 解放了我很多的时间,让我能做更多的事
但是
在企业管理培训里鼓吹 AI 是银弹的只会用 AI 生成狗屁小作文的狗屎讲师,还有那些认为科技公司 60%代码是 AI 生成就意味着 AI 把什么都全自动的弱智领导,我 X 你们 M
打赏前 20 回复的朋友一人 20V 币
把晚餐钱打赏给大家,小小惩罚一下自己
当你压力大但又不会抽烟的时候,你会干吗?
压力大又不会抽烟,咋弄。兄弟你会做些什么东西呢?实不相瞒我一般这个会来个没苦硬吃大蜜丸,这酸爽跟槟榔差不多,偶尔吃吃,补充补充能力,晚上好交作业。
今天三十而立了,好奇 v 友们在这天有什么特别的感悟吗?
关于我买和卖 v 币的说明
已经被抓出来要游街了感觉😂
说明一下我买和卖 vb 的过程。
本人是币圈小散。主要玩合约。玩数字货币有 10 年了。
当时我在 x 上看到 v 币毕业的消息,作为一个很少说话,但是很早就注册 V2EX 的水友,看到这个消息非常激动。
Meme 币那么多,终于有老子认识的了!
而且互联网圈,v 站知名度大家应该都是有共识的。
总之,我觉得 v 币有搞头。
我是一个现实主义者,情怀和喜欢 v 站,当然不可否认,但是买 v 币最主要还是觉得可以赚钱。
相信大家应该都一样吧。
最近这段时间,美联储降息,我觉得市场会发生突变,所以在币安开了一点合约。
接下来就是来回被打脸了。
合约仓位岌岌可危,不得已只能卖币补保证金,希望能保住自己的仓位。😂(苟延残喘)
给大家造成的不愉快表示抱歉,也希望大家理解。我属实也是忍痛割肉,毕竟我还是很看好 v 币的。
这次卖货不是什么大佬砸盘,只是一个币圈小散断尾求生的挣扎。以后好起来一定还会继续回来。
话分两头,很多 v 站好友还没买入,我这把割肉也算是帮大家收集廉价筹码了吧啊😂
大家轻拍吧😂❤️
今天起三日内所有评论,我打赏 100v 币以表歉意。
最后,我胡汉三还会回来的!
面试题:为什么 MySQL 不要使用 Docker 部署。。。。
如果你去找工作,遇到我问你以下几个问题如何回答:
- 在大厂 MySQL 是不能用 Docker 的,为什么?
- 今天业务被 DDoS 了,你如何在 10 分钟内解决问题?
- 如果被爬虫爬了,你应该如何解决?
- RAG 和 Agent RAG 有什么区别?
iPhone14pro Max 有必要换 iPhone17 吗?
1.如果 14pm 换电池的话体验如何?官方换电池也不便宜,大概 800¥。之前用的 iPhone8plus 换过电池,续航还是一般,在授权服务商换的,不知道和直营店换的有没有区别。换过电池的朋友可以分享一下使用体验。
2.17 只考虑基础版,感觉普通人用基础版足够了,pro 也不是买不起,只不过觉得花差不多一万块买一部手机不是很有必要。因为用过 14pm 之后喜欢大屏,17 有 plus 的话就不纠结了,直接换。
3.14pm 目前的回收价大概是 3000 元,手机用了三年,就这样回收了感觉还没发挥它最大的价值。
17pro 的续航好像拉跨了
看影视飓风测评 17pro 的续航比 17 少了半个多小时啊
本来定了 17pro 的 这下纠结了
相亲遇到的一些问题,希望大家指点迷津
相亲认识的女生,因为家里都是单亲,所以想着可能某些方面会感同身受,就一直相处下来了。但是目前相处下来感觉好累,老哥们帮忙出出意见。 目前一共接触四个多月了,确认关系一个多月。刚认识的时候,和女生聊天就各种暗示饿了、累了啥的,我想这也就花点小钱点点外卖也就算了。期间出去约会吃饭、奶茶、电影都是我出,女生只买过两次奶茶,并且见面邀约都是我提起的,如果我没有约见,这个星期可能就不会见面了。我认为感情里付出都是相互的,女生生日我送了手链,女生回赠了价值一半的礼物,这后面我的付出就没看到回馈了。确认关系送了一千多的化妆品,七夕节发了 520 红包。确认关系后,女生聊天的时候经常说闺蜜男朋友给她闺蜜在节日里会买礼物、首饰之类的话,还发一些金首饰、包包照片说好看,很喜欢,我能看出这是暗示我花钱了,但是我感觉这些都是需要感情基础才会赠送的礼物。 因此这些问题我们发生过矛盾,我说感情应该是双向付出的,目前的相处让我感觉像是单向追求。女生回应说同意双向付出,但需要我告诉她应该怎么付出。另一个问题是发昂贵金首饰和包包照片,我说我的家庭可能不能支持这么贵的礼物,女生说只是分享下自己喜欢的东西,说我太敏感了? 自己是单亲家庭,家里剩余的继续勉强支持结婚和买房,感觉和女生消费观不大一致,女生的爱好是穿搭和化妆,平时穿戴首饰也很多。目前选择推出会感觉如释重负,但也会有点可惜,恋爱经验不是很丰富,也不是很愿意做舔狗,老哥们能否指点下迷津。
大家消费降级到什么程度了?
这两年的钱不好挣,花钱的时候也就想着能省则省,以前换季的时候还会想着给自己买两件新衣服,今年却是完全没有这方面的想法了。
说来也奇了,十年前觉得三百块一件的衣服都不贵,现在就连 50 块钱一件的衣服都舍不得买,再就是以前基本上一年多就要换新手机用,可现在这个手机用了两三年都没有想换掉它的念头。
这年头钱不好赚,辛辛苦苦赚的钱更要用在刀刃上才行,所以说在购买商品时,优先考虑的应该是这件商品的实用性,而不是它品牌 logo 。
那么,现如今你有没有开始消费降级,如果有,又是通过什么方式?
哎,税务局打电话给公司财务,让我去税务局说境外所得的事

深圳坂田税务所
几个月前就打过电话,我随便申报了,结果今天直接打到公司财务座机上,让我过去一趟。
之前一直没通知,等到现在才通知,还要交滞纳金,执行的具体法规都没有,感觉太不公正了。
请问有已经去过的老哥吗?该怎么说呢?那些盈利的还好,顶多是少赚点,但我们这种亏的还要交,实在憋屈,能否多年合并计算?查了一下,其他国家资本亏损可以结转,天朝是否可行?
我的情况是:
- 21/22 年炒中概大亏,23 靠美股回血 24 万,24 年靠美股回血 12 万,24 年底玩牛熊证又亏回去了,富途总盈亏-9 万。
- 交易太频繁了,月结单根本算不过来。
- 目前已换到盈透,不知道是否还会不会被税。
- 应该是去年玩牛熊证触发的?交易额有 1000 多万港币
哎
在当前的就业环境下,我刚毕业找到的这份工作算什么水平
如题,我的学历是专升本,22 岁,还是普通学院本,目前工作在贵州贵阳,本人也是贵州人,目前实习找到了一个 8k 双休五险一金的工作,全栈开发,公司主业务是拍摄加无人机,最近需要招开发弄自己的无人机控制平台,顺利进来了,想问问 v 友们后续是苟住还是继续跳,我目前的想法是往公司主业务学习,不想在开发上吊死了
国行 Watch 开通房颤和睡眠呼吸暂停
1 、要么是尾插+魔法,
2 、要么是肉身带设备能接入 HK 信号,
3 、要么是登录别人 ID 或者把自己 ID 给别人帮忙开通
经过实践,结果使用某款 xxxgo 软件( xxx 等于名称不是真的 xxx ,我不知道是否违规,所以用 xxx 代替了),配合魔法,全软环境成功开通。
我的环境,iphone 15 Pro +ios26+apple watch s10+watchOS 26+魔法全局 HK,macOS 安装 xxxgo ,全程没有更换 ID 什么的。
1 、全程关闭了 apple watch ;根据提示关闭定位服务;
2 、使用 xxxgo 蓝牙模式连接 iphone ,根据提示该关闭关闭,该打开打开。
3 、手机上全局魔法 HK ,用百度地图或者高德验证定位是否完成修改;
4 、注意看 xxxgo 软件的提示,可能需要在手机上安装辅助软件,我开通第二个功能的时候用到了辅助;
5 、最后房颤历史开不了,是因为和 ECG App 只能二选一。
在全部恢复到正常环境后,“房颤历史”的提示从二选一变成了所在地区不可用。
最后,信息差是存在的,万能某宝有付费,不想麻烦的可以万能宝,注意 ID 安全即可。
小米这改名 17 真的是 low 到家了
之前买个小米觉得只会被黑是“系统垃圾”,只会搞营销。
这改名 17 后,这不自己给自己贴了个“买不起苹果 17 的穷屌丝只能买小米 17 了”。搞得想买小米 17 的也不好意思买了。
我家里一堆米家设备,这下看来主力机要换其他品牌了。
不知道是哪个蠢材给小米出的“好主意”。
家庭网络设计方案:从理想到实践的两年演进
原文发布在我的博客
前言
早在毕业后的租房时期,我就时常期待拥有自己的家后要如何改造家庭网络。每次看到网上博主分享内网万兆传输、服务器机柜、NAS 阵列等内容,都不禁心生羡慕。2023 年新家入住后,我对家庭网络的改造断断续续持续了两年。到了 2025 年,终于是时候对这段历程做一些总结了。
这篇文章将重点回顾这两年来家庭网络结构的演进过程及背后的思考。
房屋结构和网络需求
房屋为精装交付,出于成本考虑,入住时未对结构进行大幅改造。简略结构如下:
入住前暴露的主要问题有以下几点:
- 弱电箱嵌入在进门鞋柜内,空间非常有限,难以容纳较多设备,散热也较差。
- 网口数量不足,无线 AP 只能放置在客厅,书房存在 WiFi 死角。
- 预埋网线为超五类,虽然短距离可支持万兆,但稳定性不佳。
我对家庭网络能力的主要需求如下:
需求 | 必要性 | 备注 |
---|---|---|
全屋透明代理 | ⭐⭐⭐⭐⭐ | 满足全屋代理的同时,需要过滤 PT 流量/大陆域名请求等 |
内网 2.5G 速率 | ⭐⭐⭐⭐⭐ | 综合考虑,部署万兆的成本过高,日常使用 2.5G 已够使用 |
内网穿透 | ⭐⭐⭐⭐ | 游戏联机/家庭相册共享需要 |
支持内网私有域名 | ⭐⭐⭐⭐ | 简化日常内网部署应用的使用 |
网络监控/恢复能力 | ⭐⭐⭐ | 提升故障问题发现率 |
智能家居内网部署 | ⭐⭐ | 提升响应速度并支持离线使用 |
隐私设备子网隔离 | ⭐⭐ | 摄像头、传感器类 iot 设备屏蔽公网 |
容灾能力 | ⭐ | 减少故障发生后的恢复时间 |
基于以上的需求,得到以下的初步结论
- 由于需要全屋透明代理,故需要使用软路由做主路由的方案,这里我选用 OpenWrt 作为我的软路由系统。
- 由于需要全屋 2.5G 速率,硬件上交换机/AP/设备网口均需要支持 2.5G 协商速率。(被只支持 1G 和 10G 的万兆卡坑过)
- 由于需要内网穿透+私有域名等需求,需要软路由系统有相关的功能支持.(关注版本功能)
- 由于需要智能家居内网部署,购买设备时需要关注是否支持 Zigbee / Matter 等协议。
2023 年:从零搭建,先跑起来
物理拓扑
2023 年的主题是建设,在入住后不久,我便设计了如下的网络拓扑:
可以看到这里用了不太常见的单臂路由作为主路由连接方案,并不是因为软路由只有一个网口,纯粹是当时考虑如果软路由放在弱电箱内散热不太好。
我的主要网络设备如下:
- 软路由:零刻 EQ12(n100/16G)
- 交换机:TP-LINK 网管交换机 + 水星非网管交换机
- 无线 ap:小米 AX7000
- 服务器:X11SCA-F + E2144G + 64G ECC
硬件配置上普普通通,甚至有些富裕。当然,在闲鱼淘的交换机还是带起了后续的一些变化(笑
系统架构
系统架构如下图所示
软路由
我在 ESXi 上虚拟化运行 OpenWrt ,主要出于以下考虑:
- 部署便利:套一层虚拟机便于在更改网络配置时不需要进行物理空间内的布线调整。
- 容灾能力:ESXi 有完善的备份还原机制,通过备份可以快速恢复网络配置。
- 性能考虑:觉得软路由性能过剩,除了 OpenWrt 还可以安装其他的系统(这点后来证明并不现实)。
- 熟悉程度:相比 PVE 来说对 ESXi 更熟悉一些
OpenWrt 使用了来自恩山的“高大全”版本,后来发现其中大部分功能并未用到,反而偶尔引发卡顿。
HomeAssistant 直接部署在软路由中,主要原因一是软路由设备先于服务器购买,出于调教智能家居设备的原因先安装在软路由内。二是 HA 需要安装 HAOS 才能安装插件(即必须是虚拟机版本,不能部署在容器内),当时认为 TrueNAS 的虚拟机能力并没有 ESXi 好,所以服务器买来后也没有进行迁移(后来发现 N100 性能根本无法与 E-2144G 相比😅)
服务器
2023 年 618 ,我筹备组建第一台服务器,当时我对服务器的主要需求是以下几点:
- 是一台偏存储的服务器,多盘位存储且支持 SAS 硬盘。
- 支持 ecc 内存。
- 带核显,支持视频硬解。
- 支持 RAID 。
- 可以装虚拟机/容器。
在淘了比较久的垃圾后,最终选用的配置如下:
- 主板: 超微 X11SCA-F
- CPU: Intel E-2144G
- 内存: 三星 DDR4 2666 ECC 32G*2
- 硬盘: 希捷酷鹰 4T*4
- 网卡: 迈络思 MCX311A
- 机箱: 半人马座
- 电源: 海韵 SGX500
这套配置里,最先选择的是机箱,因为家里没有位置放置机柜,想要多盘位又不想装较大的塔式机箱,最终入了半人马的机箱,颜值和扩展相对不错。
CPU 上,2144g 的性能和能耗较为平衡,且核显有 QSV 能力,能加速视频编解码,主频 3.6 睿频 4.5 也能较好的应付日常的计算工作。
内存上由于心心念念一直想要搞一套 ecc 内存,这次选用了三星的 ddr4 2666 的纯 ecc 内存条(24 年还坏了一根😭)。
这套配置有几个小插曲,一是网卡一开始买的浪潮电口 X540, 没想到居然不支持 2.5G 协商速率,害的我又重新买了一块。二是由于机箱比较小,虽然能装 atx 板,但硬盘接口的位置都被挡住了,没办法后续加装了一块 SAS 直通卡解决。
在系统上,由于是偏存储的服务器,系统更偏向选择一些具备 nas 功能的系统,在 Unraid/TrueNAS 等一众 nas 系统及 linux 原生/虚拟机系统的抉择下,我最终选择了以 TrueNAS 作为我的服务器系统,理由主要是以下几点:
- 相比 Unraid 等 NAS 系统,TrueNAS 使用 ZFS 文件系统,有完善的数据验证、快照、恢复等机制。
- 相比直接部署 linux 系统, TrueNAS 上有更易上手的 RAID 管理/监控等能力。
- 相比部署虚拟机系统,如 ESXi 或 proxmox ,由于 TrueNAS scale 已经支持了虚拟机和容器,我不需要再加一层套娃。
RAID 方面,我的 4 块 4T 酷鹰组了 RAIDZ1(类似 RAID5),实际容量在 10T 左右,确保在一块坏了的时候能够不丢失数据恢复。
软件服务方面,我部署了以下的服务:
- qBittorrent:PT 下载。
- Homepage: 家庭服务仪表盘。
- icloudpd: 同步 iCloud 照片
- Jellyfin: 媒体服务器。
- TinyMediaManager: 影视元数据刮削。
- PhotoPrism: 照片管理
智能家居
作为 ios 用户,加上购买了 AppleTv 、HomePod 等一些设备,智能家居生态自然选择了 Apple 的 HomeKit 。主要设备有:
- 网关: Aqara M1S/HomePod
- 开关: Aqara D1
- 空调控制: 郎宁 VRF
- 窗帘电机: Aqara
- 传感器: 小米人体传感器
- 门锁: 小米智能门锁
- 电视: AppleTv
Aqara 设备通过网关直接接入 HomeKit ,小米设备则通过 HomeAssistant 桥接接入。
2024 年: 问题浮现与系统优化
遇到的问题
2023 年的架构基本稳定运行至 2024 上半年,期间虽然偶尔出现 PT 流量误走代理、OpenClash 卡死等问题,但尚可接受。
然而以上的拓扑存在一个致命的缺陷: 弱电箱中的网管交换机成为单点故障。一旦损坏,替换过程极为繁琐,需重新配置 VLAN ,且端口顺序必须与原配置一致。
而就在 2024 年的 5 月某天,那台网管交换机突然宕机了,我在重新下单等了 2 天收到货后开始配置,才发现完全不记得之前的 VLAN 设置了。当时正值 618 之际,在每天晚上下班仅有的 2 个小时内,花了 2 天才将家庭网络恢复如初。这促使我决心进行网络改造,重点是稳定性和容灾能力
链路可用性分析
既然要增强系统稳定性及容灾能力,那么首先需要梳理一下目前的网络链路以及相关的可用性需求。
链路 | 可用性需求 | 达到可用时的最少设备 | 达到可用时的最少系统组件 |
---|---|---|---|
国内访问(部分设备) | ⭐⭐⭐⭐⭐ | 路由器 | 无 |
无线连接 | ⭐⭐⭐⭐ | 路由器、AP | 无 |
书房有线连接 | ⭐⭐⭐⭐ | 路由器、弱电箱到书房网线 | 无 |
客厅有线连接 | ⭐⭐⭐⭐ | 路由器、弱电箱到客厅网线 | 无 |
国际访问(部分设备) | ⭐⭐⭐ | 路由器 | OpenClash |
PC 网络 | ⭐⭐⭐ | 路由器、PC | 无 |
服务器网络 | ⭐⭐ | 路由器、服务器 | 无 |
智能家居可用 | ⭐⭐ | 路由器、交换机、智能家居网关 | HomeAssistant |
全设备国内访问 | ⭐⭐ | 路由器、交换机、AP | 无 |
全设备国际访问 | ⭐⭐ | 软路由设备、交换机、AP | OpenClash |
内网穿透 | ⭐ | 软路由设备 | 阿里 DDNS 、域名服务 |
其次,需要梳理一下网络中可能故障的节点以及其挂了后的影响面。对影响面的评估我分了以下几级:
- 致命: 对网络可用性或完整性产生重大影响,且无法通过备用设备进行快恢。
- 严重: 对网络可用性或完整性产生较大影响,但可以通过备用设备或降级部分功能完成核心功能恢复。
- 一般: 对网络可用性或完整性产生影响,但有备用链路可以使用,或允许接受功能降级的情况。
- 轻微: 有轻微体验影响的情况
先列举一下物理设备可能的故障:
故障节点 | 故障影响 | 应急措施 | 监测手段 |
---|---|---|---|
书房至弱电箱网线故障 | 致命 | 书房的有线网络失效,需要额外引入书房 ap 连入客厅 ap 进行上网 | 无有效手段 |
客厅至弱电箱网线故障 | 致命 | 无线 ap 迁移至弱电箱内或书房,无线信号会受影响 | 无有效手段 |
软路由设备故障 | 严重 | 软路由设备临时替换为普通路由器拨号上网 | 通过 ESXi 和 OpenWrt 探活可知,但实际确认需要线下 |
弱电箱内交换机故障 | 严重 | 替换备用交换机 | 无有效手段(原网管交换机有后台可以探活,但非网管的一般没有) |
书房交换机故障 | 严重 | 替换备用交换机 | 无有效手段(同上) |
服务器设备故障 | 严重 | 无通用方案,根据故障情况处理 | 软路由内部署脚本进行探活 |
智能家居网关故障 | 严重 | 无应急方案 | HA 主动进行的设备探活 |
无线 AP 故障 | 严重 | 替换备用 ap | 通过无线 ap 的端口探活 |
然后是系统组件的可能的故障:
故障节点 | 故障影响 | 应急措施 | 监测手段 |
---|---|---|---|
ESXi 故障 | 严重 | 若重启无法失效需要替换为普通路由器拨号上网 | 通过 ESXi 管理端口探活 |
OpenWrt 故障 | 严重 | exsi 内通过备份快照快速恢复即可 | 通过 OpenWrt 管理端口探活 |
TrueNAS 故障 | 严重 | 需要重装系统,管理配置通过备份恢复 | 软路由内部署脚本进行探活 |
OpenClash 故障 | 一般 | 重启或降级 | 通过 OpenClash 端口探活 |
HomeAssistant 故障 | 一般 | exsi 内通过备份快照快速恢复即可 | 通过 HA 端口探活 |
DDNS 故障 | 轻微 | 重启/手动更新 IP | 无有效手段 |
物理拓扑的调整
根据上述的可用性优先级,我将物理拓扑图变成了这样:
从物理拓扑上来看,改变不算特别大,仅是将路由器从书房移回了弱电箱,但从稳定性的角度考虑,这一项调整让家庭减少了 2 个强依赖项,一个就是网管交换机,就算挂了我也可以替换为普通交换机,甚至不用交换机直连客厅 AP,也能保证局部的网络可用。另一个就是去除了弱电箱到书房的网线这个强依赖,一旦网线出问题,仅需降级书房的有线网络即可保障部分可用性。
至于软路由的散热问题,一来在这一年的使用过程中,温度还算可控。二来我买了一个 usb 温控风扇贴着吹进行散热,整体评估放在弱电箱内问题不大。(是吗=。=)
系统架构的升级
在系统拓扑方面,改造的东西就相对较多一些了,在聊改造细节之前,我们还是先来看看当下遇到的问题有哪些:
- 由于 OpenClash 的性能问题,导致间歇性的断网。
- 当 OpenClash 的目标节点异常时没有主动感知,在连不上外网或者速度很慢时才能发现进行切换。
- PT 流量会经过代理服务器导致流量耗尽。
- 所有数据共用一个磁盘组,PT 和重要数据的区分不够,有数据丢失风险,重要数据没有备份机制。
- 网络的整体监控能力较弱,出现问题无法溯源。
- 缺少各关键节点的容灾能力。
为了解决以上的问题,系统的拓扑变成了这样:
软路由内的调整
由上图所示,软路由内最大的一个改变,就是将 OpenClash 从拨号的 OpenWrt 内剥离了出去,并将拨号用的 OpenWrt 更改为了自编译的精简版本,插件只包含了阿里 ddns 和 mosdns ,其中阿里 ddns 用于内网穿透,而 mosdns 用做代理分流使用。
首先需要说明一下这样调整后的网络请求顺序,为方便说明,拨号用的 OpenWrt 简称为 A ,OpenClash 所在的 OpenWrt 简称 B:
如图所示,在这种网络链路下,国内请求不会经过 OpenClash ,同时为了控制 OpenClash 影响的 CPU 和内存范围,我选择在 ESXi 内单独起了一个虚拟机,用 ESXi 进行最大 CPU 和内存的限制,尽可能做到在 OpenClash 异常时不会耗尽整个路由器资源。至于为什么要再套一层 OpenWrt 而不是直接部署 OpenClash ,那是为了后续有其他插件需要安装时也可以从主链路中剥离开。
而在 2024 年,为什么我还将 HomeAssistant 部署在软路由内,原因是当时高估了软路由的性能,并且因为担心服务器挂了可能会影响智能家居设备=.=
服务器的调整
首先提一下硬件上的调整(上图中没展示出来),由于需要按资料重要性进行资源隔离,我新增了 2 块二手 12T 的氦气盘组了 RAID 1 阵列,高频读写的 PT 、影音等数据存在这个阵列内,原先的阵列用来存放家庭照片、数据备份、文档备份等。
然后是服务器内部署的一些应用进行了调整:
- 移除 Jellyfin:由于我没有在外看视频的需求,在家的话不需要在服务器上进行解码,直接传流手机解码即可,最终方案是在手机和电视上安装了 infuse 作为媒体观看软件。
- PhotoPrism 替换为 MTPhotos: PhotoPrism 属实难用。
- 新增 Alist (网盘管理)、Calibre (电子书管理)。
- 部署 Ubuntu 虚拟机: 用来部署相关的监控脚本。
- 计划上会添加上 prometheus+grafana 作为监控套件,但实际 2024 年并未添加
在增强稳定性方面,服务器上的脚本担任了绝大多数的任务需求,整个监控体系如下图所示:
其中的脚本都是非常简单的 shell 脚本,通过 http 请求对应服务的管理接口,有数据就当有心跳。这里可以看出当时的一个观点:只要不挂都不是大问题(笑)。但这套体系还是有不少的监控盲区和问题,最显而易见的,就是当 OpenWrt 或者 ESXi 挂了的时候,push 消息根本发不出来(这个问题居然一直到了 25 年才被反应过来)
2025 年: 体系化与稳定性建设
发现问题
上述调整后的架构完美运行了很长时间,期间没有发生任何大问题,偶尔的 clash 异常也能在重启后恢复。但没出大问题也就意味着上述的降级容灾措施并没有被实际验证过。
时间来到 2025 年的夏天,某个周末开始网络会时不时出现卡顿,一开始还以为是 PT 下载的缘故,由于持续时间不长就没太关注。但慢慢的卡顿频率越来越多,有时候 OpenWrt 的 CPU 占用会飙升到 100%,排查发现 OpenWrt 内 CPU 占用最高的线程是 ksoftirqd ,ksoftirqd 是一个处理软中断的线程,它占 CPU 高往往是结果而不是原因。深入排查发现在弱电箱内的软路由在正常情况下就烫的厉害,那会不会是因为软路由散热不好导致 CPU 降频或网卡异常进而触发了软中断爆炸呢,在换了一个更大的散热风扇后,这个情况再没有发生。
这个事件让我看到了 2 个问题:
- 现有监控无法捕捉瞬时异常,缺乏历史数据追踪。
- 软路由的负载过高,需进一步划清设备职责。
这样下来,2025 年的改造目标,重点就是:
建设体系化监控+设备能力单一化
监控体系升级
其实在 2024 年的规划中,就已经画出了 grafana+prometheus 的套件组合,但由于 prometheus 过于原始的配置方式,加上当时认为脚本探活就可以完成家庭网络的监控工作,这 2 者并没有被使用起来。
回到现在,监控体系还是选择使用 grafana+prometheus 的组合,毕竟开源解决方案很多。安装后的效果如下。
关于 prometheus exporter 的选择,目前是这样的:
监控节点 | 拉取速度 | 核心关注指标 | exporter 来源 |
---|---|---|---|
OpenWrt | 5s | CPU 使用率、内存使用率、load 、网络 io 、活跃连接数 | OpenWrt 软件包内自带 |
HomeAssistant | 30s | 设备电池电量、空调使用时间 | HA 插件 |
TrueNAS | 5s | CPU 使用率、内存使用率、load 、磁盘 io 、网络 io | https://github.com/Supporterino/TrueNAS-graphite-to-prometheus |
qBittorrent | 60s | 下载/上传速度、做种数 | 自建 |
OpenClash | 20s | 下载/上传速度、流量使用量、活跃连接数、国内/国际 ping 延时 | 自建 |
需要提的是为什么没有 ESXi 的 exporter ,原因是不想为了监控再装一个 vCenter 了=。=
日志
日志及下述单一化的部分在这篇文章写作之时并没有完全调整完成,这里主要说一下我的方案。
既然监控使用了 grafana ,日志当然使用 promtail+loki 的配套搭配,但看了文档发现 promtail 目前已经被弃用了,替代者是 alloy ,所以整个的日志方案就变成了 alloy(日志采集)+loki(日志存储)+grafana(日志看板)的组合拳。
TrueNAS 内的日志采集直接部署 alloy 应用即可,日志基本集中在/var/log 目录下,我目前是采集了/var/log/containers/*和/var/log/syslog.log 用以监控应用和系统的关键日志。
OpenWrt 的日志采集,我决定参考 github 的方案在 OpenWrt 内直接部署日志上报的功能。
ESXi 和 HomeAssistant 暂不接入。
设备职责单一化
在软件工程里,KISS 原则是一个非常重要的工程实践方法。回看前两年迭代的结构演进,有哪些地方违法了 KISS 原则呢?
- 为了减少 OpenClash 对系统的影响,引入了 mosdns 进入主链路。
- 软路由内部署了 HomeAssistant 。
- 存储服务器承担了越来越多的计算工作。
要如何解决这 3 个问题呢,我目前的方案如下:
关于问题 1, 当我在 2025 年再次审视 clash 的配置时,发现其实 clash 本身就支持 dns 分流及按配置绕过内核,引入 mosdns 似乎并不需要,于是我将 2 个 OpenWrt 再次删减为一个,仅使用 OpenClash 的规则配置进行流量分流,这个方案带来的唯一问题可能 CPU 会被 clash 吃满,但这通过监控也可以完成 clash 自动启停。关于 clash 的配置,github 上的这个仓库有非常详尽的教学,可以参考。
关于问题 2, 很好解决,我将 HomeAssistant 从软路由迁移至服务器。
关于问题 3 ,这实际是个成本问题(哈哈)。随着监控和日志系统的完善,我计划观察一段时间服务器使用,如果确实日常计算量很高,可能会考虑增加一台专用计算的设备保障存储设备的稳定性。(比如 mac mini )
最后
家庭网络的建设是一个持续迭代的过程,从最初的“能用到”到“稳定用”,再到“高效与可观测”,每一个阶段都伴随着新的挑战与解决方案。本文重点分享了设计思路与架构演进,具体技术细节将在后续文章展开。如果你也正在构建家庭网络,希望本文能为你提供一些参考。
讲清城乡居民养老保险
最近在帮爸爸买城乡居民养老保险,咨询了人社局,也查询了很多资料,给需要的朋友理清一下思路
目前国内政府类养老保险主要有两套制度:
- 职工养老保险(城镇职工 + 灵活就业)
- 城乡居民养老保险(没工作单位的农村/城镇居民)
我这里买的是 城乡居保,就是当年新农保 + 城居保,2014 年并轨后的产物
城乡居保的养老金由四部分组成:(每个区县级别具体金额都不一样,但是计算公式是一样)
- 基础养老金:我所在的区是 367 元/月
- 缴费年限加发:每缴 1 年加 2 元(超过 15 年部分 3 元)
- 政府当年补贴:当年缴纳会有一定的补贴,从基数决定,最低档补贴几十元,进入个人账户养老金
- 个人账户养老金:账户总额 ÷ 139
在 60 岁之前可以缴纳,补缴,缴纳 15 年以上才可以在 60 岁后领取养老金,不满 15 年是不可以领取基础养老金的
有一个视同缴纳,是现在 80 岁老人在领钱给你的错觉,2010 年 10 月 1 日 实施之前 年满 60 年 不用交也会有基础养老,但是之后的人,不缴纳是不会有钱领取的!
最终领到的钱 = 基础养老金 + 年限加发 + 个人账户养老金
这个政策感觉大部分都知道,但是容易陷入了每年买多少基数的漩涡中,其实这个事情只用纠结个人账户养老金的总额,因为每个月领取的钱都是÷139 的,只和总额有关,按我当前的区域计算金额如下
账户总额 | 月养老金(含基础+加发) | 65 岁净赚 | 70 岁净赚 | 80 岁净赚 | 85 岁净赚 |
---|---|---|---|---|---|
9,000 | ≈ 446 元 | +17,800 | +44,600 | +98,200 | +125,000 |
30,000 | ≈ 597 元 | +5,800 | +41,600 | +113,200 | +149,000 |
50,000 | ≈ 741 元 | −500 | +39,100 | +128,200 | +172,700 |
70,000 | ≈ 885 元 | −16,900 | +36,300 | +142,600 | +195,800 |
100,000 | ≈ 1,101 元 | −33,900 | +32,200 | +164,500 | +230,600 |
PS: 只是从金融角度来计算净赚,看清产品的回本周期,实际在不考虑通胀的情况下是不存在亏损的,在 139 个月之前死亡的,会退还个人账户养老金的金额
总结: 在我理清了城乡居民养老保险以后,我认为这是一项福利制度
政策一切以当地为准,很多地方都有基于此政策因地施政,很多事情不绝对(比如有些地方允许退往年重新缴纳基数),但是大体设计不会改变
当然也有人不看好社保池子,这种就是见仁见智的事情,我单纯分享我了解的知识给需要的朋友
苹果为啥不增加主题商店?
每个人的审美都不一样,ios 26 在我看来有点丑。苹果是出于什么原因不肯增加主题商店的?类似安卓主题商店一样,允许用户下载和使用别人设计的主题。以苹果的全球占有率和用户的付费意愿来讲,主题商店这块能给苹果和设计师们带来不少收益。或许有可能成为苹果下一个 app store 。