# Tether: iMessage, SMS, etc. on Linux

> 来源：[HackerNews](https://zackbartel.com/blog/2026/08/tether/)

## Tether: 让 iMessage 与 SMS 原生运行在 Linux 上

### 背景与概述

对于同时使用 Linux 桌面和 iPhone 的开发者来说，跨平台消息同步一直是令人头疼的难题。苹果生态以其封闭性著称，iMessage 作为其核心通讯服务，长期以来仅局限于 macOS、iOS 和 watchOS 设备。尽管社区曾出现过 BlueBubbles、weMessage 等间接解决方案，但它们大多依赖 macOS 作为中间桥梁，或采用 Web 端转发的方式，体验始终不够原生。

Tether 的出现改变了这一局面。这是一个全新的开源项目，旨在让 Linux 用户无需借助 macOS 虚拟机或额外的苹果硬件，即可在本地桌面环境中直接收发 iMessage 和 SMS 消息。通过逆向工程苹果的私有通信协议，Tether 实现了与 Apple ID 的深度集成，让 Linux 桌面终于获得了与 macOS 相当的消息体验。这不仅填补了跨平台生态的空白，也为那些因工作需要使用 Linux 开发环境、但生活中依赖苹果移动设备的用户提供了完美的折中方案。

### 核心内容

**1. 原生 iMessage 协议支持**
Tether 并非简单的消息转发工具，而是直接实现了苹果的 Identity Services (IDS) 协议。用户可以使用自己的 Apple ID 登录，自动同步所有的 iMessage 对话历史、已读状态和消息特效。支持文本、图片、视频、语音消息以及 Tapback 表情回复，体验与 macOS 上的 Messages 应用几乎一致。

**2. SMS 与 RCS 双模融合**
除了 iMessage，Tether 还支持 SMS 和新兴的 RCS (Rich Communication Services) 标准。通过 Wi-Fi 或蓝牙与 iPhone 配对，Linux 桌面可以接管手机的短信功能，实现"短信转发"（Text Message Forwarding）。这意味着即使对方不使用苹果设备，你也能在电脑上无缝收发普通短信，无需频繁拿起手机。

**3. 端到端加密安全保持**
安全性是 Tether 设计的核心考量。项目采用了与苹果官方相同的加密机制，所有消息在传输过程中保持端到端加密（E2EE）。私钥管理完全本地化，不会上传至任何第三方服务器，确保即使是开发者也无法访问用户的通讯内容。

**4. 系统级通知集成**
Tether 深度集成了 Linux 的桌面通知系统（如 GNOME 的 Notification Center 或 KDE 的 Plasma Notifications）。新消息会以原生系统通知的形式弹出，支持快捷回复、标记已读等操作。同时，项目还提供了 D-Bus 接口，方便与其他生产力工具（如 Rofi、Albert 启动器）集成。

**5. 文件传输与 Continuity 功能**
除了文字通讯，Tether 还支持苹果生态的 AirDrop 替代方案。用户可以直接在 Linux 和 iPhone 之间拖拽传输文件，或利用 Universal Clipboard 功能实现跨设备剪贴板同步。这些原本仅限于苹果设备间的 Continuity 功能，现在终于向 Linux 开放。

### 技术分析

Tether 的技术架构主要基于对苹果私有协议的逆向工程实现。其核心组件分为三层：

**协议层**：通过分析 macOS 和 iOS 的系统流量，开发者重构了 IDS (Identity Services Daemon) 的通信协议。这包括与苹果认证服务器的握手流程、密钥交换机制（基于 ECC 加密）以及消息推送服务 (APNs) 的长连接维护。

**桥接层**：对于 SMS 功能，Tether 利用的是苹果官方的"短信转发" API。它在 Linux 端模拟成一个已授权的 macOS 设备，通过本地网络与 iPhone 建立加密通道。这部分代码使用了 Swift 重写版的 `libimobiledevice` 库，实现了与 iOS 设备的配对和通信。

**UI 层**：前端采用 GTK4/libadwaita 构建，遵循 GNOME Human Interface Guidelines，确保与主流 Linux 桌面环境视觉统一。消息存储使用 SQLite 本地数据库，并支持 iCloud 消息同步的解密读取。

```bash
# 典型的 Tether 服务架构示意
tether-daemon          # 后台守护进程，处理协议通信
├── ids-client         # Apple ID 认证与密钥管理
├── aps-connection     # APNs 推送服务连接
└── sms-bridge         # iPhone 配对与短信转发

tether-ui              # GTK4 前端界面
├── conversation-view  # 对话界面
├── notification-dbus  # 系统通知集成
└── file-transfer      # 文件传输管理
```

值得注意的是，Tether 并不绕过苹果的双重认证 (2FA)，而是引导用户在首次设置时生成应用专用密码，这符合苹果的安全最佳实践。

### 实践建议

对于希望尝试 Tether 的开发者，以下是一些实用建议：

**环境准备**：目前 Tether 主要支持 Ubuntu 22.04+、Fedora 38+ 和 Arch Linux。确保系统已安装 `libimobiledevice` 和 ` usbmuxd` 依赖，这是与 iOS 设备通信的基础。

**Apple ID 配置**：由于苹果对非官方客户端的限制，建议在 Apple ID 设置中开启"允许 less secure apps"（如可用），或使用应用专用密码。首次登录时，Tether 会生成设备证书，此过程需要在受信任的苹果设备上确认登录请求。

**iPhone 配对**：在 iPhone 的"设置 > 信息 > 短信转发"中，你会看到 Tether 被识别为一台 macOS 设备。勾选后即可启用 SMS 功能。建议保持 iPhone 与 Linux 设备在同一 Wi-Fi 网络下，以获得最佳稳定性。

**安全提醒**：虽然 Tether 是开源项目，但使用第三方客户端登录 Apple ID 始终存在账户风险。建议：
- 使用独立的 Apple ID 或启用高级数据保护 (ADP)
- 定期检查 Apple ID 的登录设备列表
- 考虑在虚拟机或 Firejail 沙箱中运行 Tether

**性能优化**：如果遇到消息延迟，可以尝试修改 `~/.config/tether/config.toml` 中的 APNs 心跳间隔。对于 Wayland 用户，可能需要额外配置 `xdg-desktop-portal` 以实现文件拖拽功能。

### 总结

Tether 代表了开源社区对封闭生态的一次成功突破，它不仅为 Linux 用户提供了实用的消息工具，更证明了通过技术手段可以打破平台壁垒。尽管苹果可能会在未来更新中改变协议以阻断此类工具，但 Tether 的出现已经证明了跨平台互操作性的市场需求。对于广大 Linux 开发者而言，这不仅是通讯工具的补充，更是向"桌面 Linux 日常使用"目标迈出的重要一步。随着项目的成熟，我们有理由期待更多苹果生态的专属功能向开源世界开放。