Signal 桥接 #

基于 mautrix-signal。作为 Signal 的"关联设备"配对——和 Signal Desktop 使用的机制相同——从而把你的 Signal 身份、群组和联系人同步到 Matrix,同时 Signal 协议的 E2EE 在 Signal 侧完整保留。

前置条件 #

  • Meldry 套餐: Business
  • 手机上的 Signal 账户(必须——Signal 不支持主桌面账户)
  • 首次配对时手机有网

启用桥接 #

  1. 仪表板 → 服务器 → 桥接 → Signal → 启用
  2. 等约 10 秒。机器人出现在 @signalbot:<你的名称>.meldry.com

关联 Signal 账户 #

Signal 的关联设备流程基于二维码,和 WhatsApp 类似。

  1. 在 Matrix 客户端给 @signalbot:<你的名称>.meldry.com 发私聊。
  2. 发送 link
  3. 机器人回复一张 二维码
  4. 手机操作:Signal → 设置 → 关联设备 → 关联新设备,扫描二维码。
  5. 手机确认新设备已添加。机器人回复 Successfully linked as +8613912345678
  6. Signal 会在一分钟内把你最近的 1 对 1 聊天和群组回填为 Matrix 房间。

会被桥接什么 #

  • 1 对 1 聊天 → Matrix DM 房间,联系人头像被傀儡化。
  • 群组 → Matrix 房间。
  • 阅后即焚 —— Signal 的计时器会同步到 Matrix 的保留策略,Matrix 房间若有保留策略也会到期清除。
  • 表情反应 → 双向。
  • 附件 —— 图片、视频、语音消息、文件。跨桥接重新加密。
  • 已读回执、输入指示 → 双向(遵循 Signal 隐私设置)。
  • 动态(Stories) → 不桥接(Signal Stories 使用独立 API)。
  • 通话 → 不桥接(Signal 语音/视频是 Signal 专属)。

Signal 协议限制 #

Signal 的 E2EE 非常严格,并不会把消息历史交给关联设备。桥接只能从配对那一刻开始收消息——没有历史回填。手机离线期间发的消息在重新连网后会送达。

命令列表 #

命令作用
link启动二维码关联流程
unlink解绑(同时从手机"关联设备"列表中移除)
status查看关联状态
list-contacts列出 Signal 联系人
pm <+国家代码号码>给某个 Signal 号码发 DM
sync-contacts强制同步联系人
help完整命令列表

身份验证(安全号码) #

Signal 用 安全号码(Safety Number) 来识别联系人——一串指纹,用于当面核对确认对方身份。桥接也暴露了这一机制:

  • 在桥接私聊里发 safety <matrix-user-id> 可查看某个联系人的安全号码。
  • 当安全号码变更时(对方重装了 Signal),桥接会在房间里以系统消息形式提示。

故障排查 #

二维码过期——大约每 30 秒刷新一次。重新发 link 获取新的。

"主设备已消失"——如果你把手机恢复出厂设置或在手机上删除了 Signal,所有关联设备(含桥接)都会被踢掉。手机上重新装好 Signal,然后再 link

手机收得到消息但 Matrix 侧没有——在桥接私聊里发 status 查看。如果显示 registration lock,说明你设置了 Signal PIN,重新跑 link

群组变更不同步——大群的成员变更事件是批量的;等 30 秒后运行 sync-contacts

媒体解密失败——极罕见的情况是 Signal 的附件 cipher 轮转导致老链接失效。在原聊天里重新发一次图片。

隐私提示 #

  • 你的手机号保存在桥接数据库中。
  • Signal 消息会在桥接进程中解密以便重新加密给 Matrix。Meldry 不记录消息正文。
  • 解除关联会移除桥接的 Signal 会话并关闭所有傀儡房间。

下一步 #