系列
共 9 条故事线 · 41 篇文章
网络与组网 (9)
- 1.用 Docker Compose 自建 Headscale,并接入手机和电脑
在 VPS 上部署 Headscale 0.29.3 和 Caddy,创建用户与一次性密钥,再让 Android、iPad、Linux 和 macOS 加入自己的 Tailnet。
- 2.自建 Tailscale DERP 中继节点(Docker Compose)
在 VPS 上用 Docker Compose 部署 Tailscale DERP,固定 derper 与 tailscaled 的源码版本,并处理 tailscaled 重启后 Unix socket 挂载失效的问题。
- 3.VS Code 远程开发链路优化:Tailscale SOCKS5 代理 + SSH 连接复用
跨国 SSH 延迟 250ms 的场景下,从 Tailscale DERP 直连到 OpenWrt 路由器 SOCKS5 代理,再到 SSH 配置调优的完整演进过程。
- 4.Selfnet 宿舍网 SSH / RDP 端口转发:从公网访问 Windows 主机
在 Selfnet 门户上配置端口转发规则,让外部设备通过 IPv4/IPv6 以 SSH 和 RDP 连接宿舍内的 Windows 主机。
- 5.Tailscale + ZeroTier + FRP:11 台跨国设备三种组网工具的分工
曾经同时使用 Tailscale、ZeroTier 和 FRP 管理 11 台跨国设备,以及后来为什么把日常连接改到 Tailscale。
- 6.SSH 密钥网格:per-device 密钥交换与 dropbear 兼容
设备间互访不用共享 mesh key(一台被攻破等于全沦陷),而是每台设备用自己的 ed25519 密钥两两交换。dropbear authorized_keys 路径陷阱、n1-sd 上 ed25519 未生效改用 ECDSA、known_hosts 清理。
- 7.多设备命名统一:从一机多名到全局一致
同一台设备在 Tailscale/SSH/xray/sub2api/监控里各有不同名字,排障时要先猜名字。一次全链路命名统一:物理设备去位置、VPS 保留位置、xray outbound 用 @ 规范。
- 8.ping 通了但 SSH 连不上:一次 Tailscale SSH 超时排查
一次 Tailscale SSH 超时的检查记录:端口能连接,SSH 却停在密钥交换;最后让有公网地址的 VPS 改走公网 SSH。
- 9.把手机服务器接入 Tailscale、SSH 和监控
Tailscale 安装在 Android,其他设备通过一个 SSH Host 连接手机,再用 Uptime Kuma 检查 22 端口,用 Beszel 查看 CPU、内存和磁盘。
事故复盘 (4)
- 1.git filter-repo --force 误操作:未提交代码丢失与 VS Code Local History 恢复
在大量未提交改动的工作区上执行 git filter-repo --force 导致代码被覆盖,最终通过 VS Code 的 Local History 功能逐文件恢复。
- 2.Gemini CLI 误删 Home 目录:cd 失败 + find -delete 的事故与恢复
Gemini CLI 生成的命令因 cd 目标不存在而从 ~/ 执行 find -delete,导致 Home 目录大面积删除。记录根因链条、受损范围和逐项恢复过程。
- 3.macOS 灾后状态恢复:Keychain 重建、Syncthing 重配对、OneDrive 冲突处理
Home 目录被删后,配置文件可以 git clone 拉回来,但 Keychain 登录态、Syncthing 设备证书和 OneDrive 冲突副本只能手动修复。
- 4.一次 Android chroot 递归挂载事故
手机使用清理功能后,多个 App 和 SSH 同时失效。这里记录安全模式恢复、目录权限检查、递归挂载来源和启动脚本修改。
硬件折腾 (4)
- 1.Cudy TR3000 256MB 刷机:过渡包→解锁 FIP→U-Boot→maximum-240m 布局
在 Cudy TR3000 256MB v1(MT7981)上从原厂固件刷入过渡包、写入第三方 U-Boot、切换 maximum-240m 布局的完整流程与校验点。
- 2.破解移动定制光猫 H60G:telnet 提权、禁 TR069 与 Padavan 桥接拨号
一台中兴方案的移动定制光猫 H60G 完整破解记录:reset 打破密码死锁、双网卡问题、sidbg 改配置、注册下发,以及 Padavan 接管 PPPoE 的桥接验证。
- 3.把闲置小米手机改成 Ubuntu 服务器
在已 Root 的 Android 13 手机上安装 Ubuntu 24.04,配置 22/8022 两个 SSH 端口、ACC 充电限制和开机脚本。
- 4.把 USB 打印机改成全屋无线打印机:斐讯 N1 + CUPS + brlaser
在斐讯 N1(Armbian/Debian 12)上用 CUPS、Avahi 和源码编译的 brlaser 6.2.8,把只有 USB 口的 Brother HL-2240D 发布成局域网 IPP 打印机,Windows、Android、MacBook 和 Tailscale 设备都能打。
代理与出口 (4)
- 1.我的代理出口层是怎么搭的:集中生成配置、语义 selector 和运行时验证🔒
配置怎么生成和下发,selector 为什么管出口语义而 urltest 只在等价入口内工作,以及为什么禁止手改生成配置。
- 2.Sub2API 频繁 503:ping 正常时的一次分段排障记录🔒
客户端频繁 503、ping 却正常。逐段排查后把流停滞的位置定在德国 VPS 到家庭节点 SOCKS 之间,并确认 503 由 Sub2API 本地熔断产生。家庭设备为何无响应未查明。
- 3.香港 VPS 到底是不是 CN2:把营销标签拆成可验证的路由证据🔒
同一台香港 VPS,电信路径能看到 59.43 和 CTCN2,联通走 4837,移动走 CMI。如何用分运营商 traceroute、BGP 视图和证据边界判断它是选择性 CN2,而不是笼统的 CN2 GIA。
- 4.代理出口间歇性卡顿排障:从 IPv6 怀疑追到 DNS 解析差异🔒
出口间歇性卡到 1.2 秒,IPv6 和代理实现两个假设先后被自己的数据推翻。最后观察到两台同架构设备解析同一域名拿到不同 IP,改 DNS 上游后短期恢复正常。但差异由哪家上游返回、差异如何产生,都没有记录和证明。
自托管服务 (6)
- 1.OpenClaw (Clawdbot) 多端部署:Gateway + Tailscale Serve + Node 配对
在服务器上部署 OpenClaw Gateway,通过 Tailscale Serve 暴露到 Tailnet,再将桌面端 Node 配对接入,实现 Tailnet 内远程管理。
- 2.OpenClaw Cron 监控:QQ Bot 通知链路排障与 Prompt 调优
2026 年 3 月的历史记录:用当时 OpenClaw 的 cron 任务监控实验室 Linux 工作站的 GPU/磁盘/负载,排查 QQ Bot delivered:false 的投递问题,调整 Jarvis 日报 prompt 减少机器味。
- 3.OpenClaw 多节点运维:Token 持久化、Gateway 冲突排障
2026 年 3 月的历史记录:Mac mini Gateway + Linux 工作站/VPS Node 架构下,排查 token_mismatch 掉线、LaunchAgent 重复实例、Clash Verge 截断 Tailscale 流量等问题。
- 4.1C1G VPS 服务编排:MetAPI 网关 + Nanobot + DERP 的资源取舍
在 1 核 1G 香港 VPS 上同时跑 MetAPI 模型网关、Nanobot 聊天机器人和 Tailscale DERP 中继,模型路由规范化、OOM 排查和服务拆分决策。
- 5.Beszel 轻量监控:N1 作 Hub 的家庭设备资源监控
用 Beszel 给家庭基础设施补一层系统资源监控:Hub 部署在斐讯 N1(Armbian/aarch64),Agent 覆盖 Linux 与 OpenWrt 设备,记录 procd init 脚本的适配和 universal token 批量注册。
- 6.服务器报警了不用我爬起来查,一个 Hermes 应用案例
让 Hermes 这个 AI agent 替我值夜班:告警进来后它自己 SSH 进设备查 sshd、负载和登录日志,分清真故障和探针抖动,再把结论发到 Telegram。记录 webhook、签名、诊断、投递这条链路是怎么搭起来的。
开发环境 (5)
- 1.VS Code 与 Insiders 双版本共存:远程开发和本地工作的配置拆分
稳定版跑 Remote SSH 远程开发,Insiders 做本地 LaTeX 和 Jupyter——两套配置如何隔离和同步。
- 2.Fixing Empty Copilot Model List in VS Code Remote SSH (macOS Host)
An empty GitHub Copilot model selection dropdown when connecting to a remote Mac via SSH, traced to an SSL certificate error and fixed with a shell environment variable.
- 3.Linux Mint 工作站搭建:SSH 加固、Conda/Docker/uv 共享环境
Dell Precision 7920 + RTX 4090 上搭 Linux Mint 22.1,配 SSH key-only 登录、公共 Conda、NVIDIA Container Toolkit 和 uv,以及远程安全升级策略。
- 4.Dotfiles 统一管理:symlink + Git 方案(2026 年 3 月记录)
2026 年 3 月的方案:Git 仓库加 symlink 管理 7 台开发设备的 .zshrc、.gitconfig、starship.toml、SSH config、wezterm.lua 和 VS Code settings.json;同年 8 月迁到 chezmoi,正文按当时方案保留。
- 5.Claude Code / Codex / OpenCode / Gemini CLI 共存方案
四个 AI CLI 的配置隔离、CC-Switch 统一管理、MetAPI 本地代理集中管理模型入口,以及各工具的分工边界。
输入法 (2)
- 1.macOS 鼠须管配置:雾凇拼音安装、Git 词库管理与 WezTerm 兼容
在 macOS 上安装鼠须管 + 雾凇拼音,用 Git 管理词库更新,解决 WezTerm 中 Shift 切换残留、终端默认英文和小键盘回车三个兼容问题。
- 2.Rime 跨平台迁移:macOS 鼠须管到 Windows 小狼毫 + OneDrive 词库同步
将 macOS 鼠须管的雾凇拼音配置迁移到 Windows 小狼毫,用 OneDrive 实现多端词库同步,处理 weasel.custom.yaml 差异和皮肤适配。
DNS 与去广告 (4)
- 1.OpenWrt 全屋去广告尝试:AdGuard Home + IPv6 Relay 的失败与退回
在红米 AX6(AE86Wrt)上尝试路由模式 + AdGuard Home + IPv6 Relay 做全屋去广告,因闪存空间和 IPv6 兼容问题退回 AP 模式 + 终端去广告。
- 2.OpenWrt 旁路由部署 AdGuard Home:手动 DNS 实现局域网去广告
在不开启 DHCP 的 OpenWrt 旁路由上部署 AdGuard Home,通过手动配置终端 DNS 指向旁路由,实现局域网内广告拦截。
- 3.OpenWrt + AdGuard Home + Tailscale Exit Node:2026 年 1 月的去广告部署记录
一篇历史部署记录:在旁路由手动 DNS、路由器全包两次尝试之后,2026 年 1 月改为 OpenWrt 负责 DNS、Windows PC 做 Tailscale Exit Node 的分工方案。当前网络拓扑可能已有变化。
- 4.红米 AX6 改桥接 AP:Selfnet 宿舍网下保留 IPv6 与 ZeroTier
在 Selfnet CGNAT 宿舍网中,将刷入 OpenWrt 的红米 AX6 从路由模式改为 Dumb AP / 桥接模式,让终端直接获取公网 IPv6,同时保留 ZeroTier 远程管理。
德国生活 (2)
- 1.在德国补交银行税号(Steuer-ID):Deutsche Bank 回邮信封使用指南
收到 Deutsche Bank 要求补交 Steuer-ID 的信件后,如何识别信封内容物、填写表格并使用预付回邮信封寄回。
- 2.德国垃圾分类实测:无押金玻璃瓶(non-Pfand)的正确投放流程
在斯图加特学生宿舍,如何区分 Pfand 和非 Pfand 玻璃瓶,找到 Altglascontainer 并按颜色分类投放。
其他 (1)
- 我为什么要写博客?
把问题、过程和结论写下来,减少重复犯错,让工作有可追溯的记录。