20年前Mac挂载现代NAS:AquaLink实现原生SMB3

20年前Mac挂载现代NAS:AquaLink实现原生SMB3

PowerPCSMB3复古计算AquaLink

数据源:Hackaday + GitHub

Apple 老款硬件 图:Apple 老款硬件。来源:Hackaday

协议断层:局域网关上 SMB1 的大门

2026 年 8 月 25 日,独立开发者 watermark_hd 在 GitHub 上开源了 AquaLink 项目。这是能在搭载 PowerPC 处理器的 Mac OS X(Tiger 与 Leopard)系统上运行的原生 SMB2/3 客户端,成功让一台生产于 20 年前的 iBook G4 重新挂载现代局域网 NAS。现代网络协议的更新换代往往会彻底孤立旧设备,而这个项目在老旧硬件与现代网络存储之间搭起了一座新的桥梁。

早在 2005 年发布的 Mac OS X Tiger (10.4) 系统中,内置的 Samba 协议栈仅支持 SMB1 协议。随着 WannaCry 等利用 SMB1 漏洞的勒索病毒肆虐,微软、Samba 团队与 Synology 等 NAS 厂商相继在 Windows 11 和现代操作系统中默认禁用了 SMB1 协议。这种安全防御策略直接切断了老旧 Mac 的局域网通信能力,导致硬件本身依然完好的机器无法与家中其他设备传输文件。

根据底层协议规范,SMB1 缺乏现代加密校验与多路复用能力,其安全隐患已被网络安全界证实。现代操作系统弃用 SMB1 规范避免了横向渗透攻击,但也封杀了老旧设备的网络挂载接口。这证明驱动老旧硬件退役的因素是软件生态的协议迁移,硅片本身的物理寿命并未终结。

移植硬碰撞:在 gcc 4.0 和 Tiger SDK 遗迹中凿坑

iBook G4 实机 图:iBook G4 实机照片,AquaLink 的目标硬件。来源:Wikimedia Commons, CC

为了让 PowerPC Mac 重新理解 SMB3 报文,开发者选择了 Ronnie Sahlberg 编写的 libsmb2 C 语言库作为底层引擎。libsmb2 是目前唯一能在该代 PowerPC 硬件和操作系统上成功编译的 SMB2/3 客户端轻量库。开发者需要在带有历史痕迹的 GCC 4.0.0 编译器与古老 SDK 下对现代代码进行适配。

在 iBook G4 运行的 Tiger 10.4.11 实机编译过程中,现代代码与古老构建工具链产生了多处严重碰撞。Tiger SDK 完全缺少 CommonCrypto 库,导致 libsmb2 源码中默认的 #ifdef __APPLE__ 预编译分支误选了 Apple 加密实现而直接报错。开发者必须修改预编译宏逻辑,显式指定 HAVE_COMMONCRYPTO_COMMONCRYPTO_H 标头条件才能绕过编译失败。

同时,GCC 4.0.0 的 -Wshadow 变量作用域警告机制远比现代 GCC 严苛,项目必须使用 --disable-werror 参数才能通过构建。由于 Tiger 系统缺失 GSS.frameworkkrb5.h 头文件,无法使用 Kerberos 票据认证,项目退而采用内置的 NTLMSSP 身份验证机制。在配置 ?vers=3 参数后,iBook G4 成功以 SMB3 协议挂载 Mac 母舰,日文文件名列表读取准确无乱码。

整个编译适配过程解决了多项构建工具链阻碍,才让现代网络库落地于 20 年前的系统环境。复古计算的软件移植实质上是一场逆向工程,必须在缺少现代加密框架的条件下完成协议降级与重构。

架构巧思:用 127.0.0.1 回环 WebDAV 欺骗 Finder

在解决协议库编译问题后,开发者面临着操作系统集成难题。Mac OS X Tiger 的 Finder 文件管理器与 VFS 挂载栈高度闭源,第三方开发者无法直接向内核注入新的 SMB3 挂载驱动。如何让系统 Finder 原生识别并操作 SMB3 共享目录,决定了软件能否实现无缝体验。

AquaLink 采用了一套精妙的用户态中继架构。应用内部基于原生 BSD Socket 实现了一个极小型的 HTTP/WebDAV 本地服务器,能够响应 OPTIONSPROPFINDGETPUT 等标准 HTTP 请求。启动时,AquaLink 在本地 127.0.0.1 回环地址开启监听服务,充当 SMB3 协议与本地系统之间的桥梁。

随后,AquaLink 调用 Tiger 系统自带的 mount_webdav 命令行工具,将本地回环端口挂载为常规网络卷标。Finder 将其识别为普通的 WebDAV 磁盘并显示在桌面上,用户可以直接拖拽复制文件,所有 I/O 操作均通过本地 WebDAV 翻译层转发至远端 SMB3 NAS。这种设计无需修改操作系统内核,就实现了系统级的原生挂载体验。

除挂载远端 NAS 之外,AquaLink 还支持反向发布功能,可将 PowerPC Mac 的本地文件夹发布为 WebDAV 服务。现代 Windows 或 macOS 设备可以直接挂载该服务,将 20 年前的老机器转变为家庭局域网中的微型存储节点。在无法更改系统级驱动的前提下,借由用户态回环服务完成协议转换是破解闭源操作系统限制的有效工程路径。

争议与现实:古董设备联网的安全与再利用权衡

AquaLink 的发布在 Hackaday 等技术社区引发了关于古董硬件使用价值的探讨。反对者认为,将早已停止安全更新的操作系统接入现代局域网存在明显安全风险,且单核 PowerPC 芯片的能效表现远落后于低功耗单板计算机。这类古董硬件继续运行在网络环境中,增加了局域网被攻击者作为跳板的潜在隐患。

支持者则强调数字保存与复古计算的独特价值。社区中已有玩家利用 FTP 服务与 Netscape 2 浏览器为 System 7 时代的 Macintosh 建立文件传输链路,或者把旧 Mac 改造成专用打印服务器与无损音乐播放器。对于复古计算爱好者而言,让硬件恢复网络通信功能是延续电子设备物理生命的重要方式。

受限于 PowerPC G4 处理器的运算能力,AquaLink 目前还无法开启 SMB3 的实时加密传输。加密报文对老芯片的算力消耗过大,强行开启会导致文件传输速率出现严重瓶颈。因此,开发者在工程实现中选择暂不启用加密层,并建议仅在受信任的家庭局域网环境内使用。

在老旧处理器的算力约束下,舍弃加密换取吞吐量的设计构成了典型的工程妥协。古董硬件的现代化改造必须在严苛的现代零信任安全要求与有限的硬件算力之间寻找可行平衡点。

延伸生机:为停更硬件重构软件桥梁

AquaLink 的成功落地证明了硬件淘汰机制并非不可逆转。在消费电子工业中,设备被推向废品堆往往源于上层协议规范的快速更迭,硅片本身并没有出现物理损坏。当全行业因为安全原因关上旧协议大门时,社区开发者的软件适配重新构筑了连接通道。

除了 AquaLink 项目外,开发者 watermark_hd 还维护着为 TenFourFox 浏览器提供日语支持的 Aquafox 项目。在缺少现代 Web 引擎支持的 G3 与 G4 硬件上,这类项目成为了老机器保持基本可用性的少数软件保障。这些持续更新的代码库展示了社区在延缓电子垃圾产生、维护硬件使用权方面的独特作用。

老旧设备的生命线不应仅仅取决于厂商的停更公告。当 SMB3 协议报文成功穿透 20 年的时光阻隔出现在 iBook G4 的 Finder 桌面时,代码的价值再次得到了验证。只要有开发者愿意为非主流硬件编写兼容层,20 年前的老机器就能在现代数字体系中继续发挥实际价值。

参考链接:

  • Hackaday:Native SMB3 Client Brings Modern NAS Access To 20-Year-Old PowerPC Macs
  • GitHub:watermark-hd/ppc-mac-modernization(AquaLink)
  • GitHub:sahlberg/libsmb2