换电脑后Claude Code数据丢失?多机同步方案
时间:2026-06-07 16:15
你的Claude Code配置,掉过一次就知道疼 周三晚上,翔宇在Mac mini上调通了一个新Skill。第二天出门带着MacBook,打开Claude Code——Skill不见了。CLAUDE md还是上周的版本。知识库少了将近一半。 这种感觉就像你花半年时间搭建的乐高城堡,一觉醒来发现有
# 你的Claude Code配置,掉过一次就知道疼
周三晚上,翔宇在Mac mini上调通了一个新Skill。第二天出门带着MacBook,打开Claude Code——Skill不见了。CLAUDE.md还是上周的版本。知识库少了将近一半。
这种感觉就像你花半年时间搭建的乐高城堡,一觉醒来发现有人抽走了地基。
Synology Drive用了半年,翔宇受够了。Claude Code一次编辑动辄要处理上百个文件,Synology Drive稍微有点网络迟疑,整个文件体系就崩了——不是丢一个文件,是一整片目录状态全部对不上。新设备打开,动不动因为网络问题不同步,光在这上面就纠结了不少时间。更要命的是,`~/.claude`是隐藏目录,Synology Drive压根不支持同步隐藏文件夹,翔宇只能自己写脚本绕过去。
一气之下,全换syncthing。为什么是它?因为syncthing的安装、配置、排错,Claude Code可以全权负责。这个时代,能交给Agent的事,就别自己干。
这篇把翔宇四台Mac的同步架构一次性讲透——从选型、架构到踩坑,一篇到底。
读完这篇,你将获得:
1. 一套经过验证的四机同步方案:syncthing Mesh topology,任何一台离线不影响其余
2. 一份排除规则设计思路:避免36万运行时文件扩散的灾难
3. 一个完整的新设备接入流程
目录
* 一、你的 ~/.claude 值多少钱?
* 二、syncthing 是什么?
* 三、翔宇为什么换掉了 Synology Drive?
* 四、四机全互连 Mesh 架构
* 五、安装与关键配置
* 六、排除规则——写错一条的代价
* 七、同步模式与新设备接入
* 八、翔宇踩过的四个坑
## 1. 你的 ~/.claude 值多少钱?
你用Claude Code越深,`~/.claude`目录就越值钱。
翔宇的`~/.claude`里有什么?知识库11个平台工具脚本、50多个Skills、自定义命令、Hooks脚本、Agent配置、全局CLAUDE.md记忆……这些东西加起来,是翔宇大半年的沉淀。
纳瓦尔说过一个概念叫“特定知识”——那些不能被培训、只能通过亲身实践积累的独特能力。你的`~/.claude`配置就是你的特定知识。它不是几个文件,它是你和AI协作半年的所有认知沉淀。丢了,重来一遍?不可能。
你有没有算过,你的`~/.claude`目录凝聚了多少小时的打磨?
问题来了:翔宇有四台Mac。
* home-server:权威源服务器,24小时在线
* dev-mini:主力开发机(Mac mini)
* air-MacBook:翔宇出门带的笔记本
* pro-MacBook:备用笔记本,专门跑长任务和测试
四台机器,一份配置。怎么办?
## 2. syncthing 是什么?
syncthing是一个开源的、去中心化的文件同步工具。GitHub上70000+ Star,Go语言编写,完全免费。
一句话定位:设备之间直接同步文件,不经过任何云服务器。
和Dropbox、iCloud Drive、Google Drive这些云同步的本质区别——你的数据只在你的设备之间流转,不会上传到任何第三方服务器。
开源免费——完全开源,社区驱动,没有“免费版限5GB,Pro版每月9.99美金”的套路。
点对点架构——每台设备既是客户端也是服务端,没有中心节点。
端到端加密——所有传输走加密通道,设备之间通过唯一ID互相认证。
实时同步——文件变更后5秒内自动触发同步,比定时轮询高效得多。
版本控制——内建简单版本控制,翔宇的配置是保留5个历史版本。

## 3. 翔宇为什么换掉了 Synology Drive?
翔宇也不是一开始就用syncthing。最早用的是Synology Drive——家里有NAS,装个客户端就能双向同步,看起来挺完美。
用了半年,翔宇换了。
说实话,那半年翔宇没少被Synology Drive折腾。
**Synology Drive本质是中心化架构**——NAS是中心节点。两台Mac之间的文件同步,要先上传到NAS,再从NAS下载。
NAS是瓶颈。翔宇的NAS是机械硬盘,知识库里有大量小文件——几千个脚本、文档、配置。机械硬盘的随机读写对小文件极不友好,每次全量同步像在等老爷爷上楼梯。
NAS离线即全停。NAS重启、硬盘休眠、网络抖动——同步直接中断。两台Mac都在线,但就是不能同步,因为中间人不在。
隐藏目录不支持。`~/.claude`是以点开头的隐藏目录,Synology Drive不支持同步隐藏文件夹。翔宇只能自己写脚本把隐藏目录“搬”到普通目录再同步,维护成本越来越高。
工作目录污染。Synology Drive会在同步目录里创建隐藏的工作目录,包含大量临时文件。这些文件混在`~/.claude`里,Claude Code可能会错误地索引它们。
那一刻翔宇才意识到:同步工具的选择不是功能问题,是架构问题。中心化方案天然有单点故障,去中心化才是正道。
## 4. 四机全互连 Mesh 架构
翔宇的四台Mac采用全互连Mesh topology——每台设备都和其他三台直连,总共6条连接。
容错极高——任意一台离线,剩下三台仍有3条连接互相同步。就算两台同时离线,剩下的两台之间还有直连。
速度极快——变更从最近的节点获取。翔宇在MacBook上改了文件,Mac mini不需要等服务器中转,直接从MacBook拉取。
代价很小——每台维护3条连接,局域网内完全无感。翔宇实测CPU占用小于1%,内存约30MB。
塔勒布有个概念叫“反脆弱”——系统在压力和冲击下不仅不崩溃,反而变得更强。Mesh拓扑就是反脆弱的。星型拓扑的中心挂了全完;Mesh拓扑每断一条线,其余线路照常工作。节点越多,冗余越强。

## 5. 安装与关键配置
macOS上用Homebrew一行命令装完,自动后台运行、开机自启,不用操心。
装完打开浏览器管理界面,第一件事:设密码。默认没有密码,局域网内谁都能访问你的管理页面。
翔宇的四台设备都在同一个局域网内,所以关闭了所有外网功能——全球设备发现、中继服务器、NAT穿透全部关掉,只保留局域网自动发现。这不只是省流量——关闭后syncthing不会尝试连接外网服务器,启动更快,日志更干净。
文件监控方面,翔宇开启了实时监控,设置5秒缓冲加60秒兜底全量扫描。
翔宇的经验是——参数调对了你就再也不用碰它了。这几个值翔宇从配好到现在一次都没改过。好的配置就像好的规则,设定一次,受益永远。
## 6. 排除规则——写错一条的代价
到这里,暂停一下。前5章完成了什么?选型讲完了,架构搭好了,安装配好了。但真正决定这套系统是“配完就忘”还是“天天救火”的,是接下来这一章。
syncthing有一个排除规则文件,决定哪些文件同步、哪些不同步。写错这个文件,后果很严重。
翔宇的血泪教训:第一次配syncthing的时候没写排除规则,`~/.claude`里36万个运行时文件——对话日志、调试数据、终端快照——全部开始同步。四台设备同时扫描36万个文件,CPU全部飙到100%,风扇呼呼响,扫了快50分钟,管理界面完全卡死。
那段时间翔宇真的有点崩溃。
策略很简单:默认同步所有文件,只排除不需要的。
排除规则有几个容易踩的坑。比如路径前缀写法不同,会影响排除的范围——可能只排除根目录的某个文件夹,也可能误杀所有层级的同名文件夹。翔宇第一版就写错了,Skills里有用的数据被意外排除,全丢了。
还有一个常见问题:两台机器的排除规则不一致。A忽略的文件B不忽略,就会出现“一边删了另一边又传回来”的死循环。所有机器必须使用完全相同的排除规则。
**同步的内容**:知识库、Skills源码、全局CLAUDE.md、设置文件、Hooks、Agent配置、自定义命令。
**不同步的内容**:运行时会话数据、对话历史、缓存文件、项目级记忆、虚拟环境、编译产物。
同步少比同步多更难——排除的艺术,才是这套系统的核心技能。
你的排除规则写了多少行?翔宇的是30行,管住了36万个不该同步的文件。

## 7. 同步模式与新设备接入
日常使用双向同步——任何一台设备的变更都会传播到其他设备。
但有个场景需要切换:**大规模重构后**。比方说翔宇在服务器上把知识库目录结构大改了一遍——几十个文件移动、重命名、删除。如果此时四台设备都是双向同步,服务器删了文件,Mac mini的旧版本又传回来。
解决方案:临时切换为单向推送。服务器设为仅发送,其他设备设为仅接收。推完再恢复双向。
### 新设备接入七步走
1. 安装并启动syncthing
2. 设置管理界面密码
3. **清空排除规则**:两边都清空,确保配置目录完整推送,没有遗漏
4. **仅与主力机互加设备**:关键——不要同时连所有设备
5. 单向全量推送:主力机仅发送,新设备仅接收
6. 恢复排除规则:全量推送完成后写回正式规则
7. 切回双向同步,接入Mesh
## 8. 翔宇踩过的四个坑
**坑1:没写排除规则直接同步。** 36万个运行时文件扩散到四台设备。四台机器同时扫描,CPU全满,管理界面完全卡死。解决:先停掉所有设备的syncthing,在主力机上写好排除规则,再逐台重启。
**坑2:Synology Drive和syncthing同时跑。** 翔宇从Synology Drive迁移时忘了关旧客户端。两个同步工具对同一个目录互相打架——一个写入文件,另一个检测到变更立刻同步,第一个又检测到变更再同步回来……无限循环。
**坑3:移动目录后旧目录残留。** 翔宇把知识库里一个子目录换了位置,其他设备上旧目录里的虚拟环境被排除规则忽略,syncthing无法删除整个目录。解决:调整排除规则的删除策略。
**坑4:冲突文件残留。** 新设备接入后产生大量冲突备份文件。解决:一行命令批量清理。
每一个坑都是真金白银的时间换来的。翔宇把它们写下来,就是为了让你少走弯路。
你踩过类似的坑吗?
这套同步方案用到现在,翔宇最大的感受是三个字:没感觉。
对,没感觉。配完之后,翔宇几个月没打开过syncthing的管理界面。在Mac mini上新写了一个Skill,MacBook上5秒后自动出现。备用MacBook跑着测试任务,用的是和主力机一模一样的知识库和Skills。四台机器,一份配置,实时同步。
同步工具理想的状态就是你完全感知不到它的存在。就像翔宇常说的——用系统打败重复劳动。花2小时配一次syncthing,省的是未来几百次手动复制文件的时间。这就是一次性投入和永久复利的区别。
三个核心洞见:
1. `~/.claude`是你的特定知识——不是几个文件,是你和AI协作的所有认知沉淀。丢了不可能重来。
2. 去中心化胜过中心化——Mesh拓扑没有单点故障,任何一台离线不影响其余同步。
3. 排除规则是同步健康的生命线——规则写对,30行管住36万文件;写错,四台机器一起瘫痪。
如果你也是那种有两台以上电脑、每台都在跑Claude Code的人——这套方案就是为你准备的。
来源:https://xiangyugongzuoliu.com/claude-code-syncthing-mesh/
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。