大家好,

我想与大家分享一篇我找来没能在文档中看到的设置:用一台 Raspberry Pi 作为 Apple Time Capsule(仅 AFP)与 macOS Time Machine(正逐渐改为 SMB)之间的桥梁。


问题

苹果在2018年停止生产Time Capsule。未来的macOS版本(27+)将完全抛弃AFP功能。你的完好运行的2TB Time Capsule变成了废品。


解决方案

一台 Raspberry Pi 4作为中继:

- 挂载 Time Capsule 硬盘通过 AFP(使用afpfs-ng编译 + libgcrypt + allow\\\_other)

- 经过 Samba 重复分享它至 SMB(时间机器兼容性),并配置fruit配置来实现此功能

- macOS 正常备份至 SMB

体系结构:Mac(SMB)> Raspberry Pi(Samba)> Time Capsule(AFP)


硬件步骤

- afpfs-ng 无法在现代系统编译:使用 Docker 构建 rc2dev/afpfs-ng-deb repo + libgcrypt 补丁

- 构建的包缺乏DHX2 UAMS,用于 Time Capsule 的认证:必须在 Dockerfile 中添加 libgcrypt20-dev

- 通过重写 source code 更改 uid = 1 和命令.c 中 if(1)

- Samba 的内核 opplock 会 crash FUSE 挂载:在 smb.conf 中配置 kernel opplock = no + kernel share modes = no

- FUSE 中不支持 AFP的属性: streams\\\_depot 代替 streams\\\_xattr

- 通过 cron 脚本的 watch dog 设计 AFP 挂载:每 12 小时会自动反挂载

- 不使用 Time Capsule 卷名中的空白来避免 afpfs-ng crash:使用 AirPort Utility 在 AirPort 设置时


全步骤指南

我编写了一个 pdf 指南详细教程(FR + EN )全命令,配置 Avahi systemd,配置手册和 watch dog 脚本。注明详细链接在评论中。

详细的pdf 指南中还包括:Pihole(广告拦截器)、WireGuard VPN、DuckDNS、AnyDesk(远程 Mac 控制)、Wake-on-LAN, 和 SSH 证书。


测试设备

- Raspberry Pi 4(2 GB RAM)

- Raspberry Pi OS Lite 64(Debian Trixie)

- macOS Tahoe

- Apple Time Capsule 802.11ac(固件 7.9.1)

- 必须配置以太网接口(稳定性很重要)


了解点数

- 首次备份非常缓慢(几天)因为数据通过 AFP / FUSE 桥

- 后续的增量备份快速完成(几分钟)

- Pi 设备上,使用 Ethernet + Samba 套接字选项(TCP\\\_NODELAY,SO\\\_KEEPALIVE)非常重要

-watchdog脚本:当 AFP 连接丢失时会自动再挂载卷


如果你还有一个 Time Capsule 没有使用,你可以重新利用它。如果你有任何问题,都尽管说声谢谢。

如果指南复杂,这个pdf可以提供给你的 AI (Claude, ChatGPT 或等),并要求它一步步导游。如果你确认需要这些信息,一定要记下密码和名字,并不需要传送给 AI,用户手填信息。安全性在于不应该用 AI 插入的。