Skip to content
广告 · 本站推荐广告

Signal - 隐私优先通讯接入

Signal 是以隐私和安全著称的即时通讯应用,所有消息均采用 End-to-End Encryption(端到端加密)。OpenClaw 通过 signal-cli 工具实现与 Signal 的对接。

前置要求

  • Java Runtime 17+ 环境
  • 一个可用的手机号(或已有 Signal 账号)
  • OpenClaw Gateway(网关)已安装并运行

安装 signal-cli

bash
wget https://github.com/AsamK/signal-cli/releases/latest/download/signal-cli-Linux.tar.gz
tar xf signal-cli-Linux.tar.gz -C /opt/
ln -s /opt/signal-cli-*/bin/signal-cli /usr/local/bin/
bash
brew install signal-cli
bash
scoop install signal-cli

验证:signal-cli --version

注册 Signal 账号

方式 A:关联已有账号(推荐)

将 signal-cli 作为 Linked Device(关联设备)连接:

bash
signal-cli link -n "OpenClaw Bot"

终端显示 tsdevice:/ 链接后,在 Signal App 中操作:Settings > Linked Devices > Link New Device,扫描二维码完成关联。

生成二维码

bash
signal-cli link -n "OpenClaw Bot" | head -1 | qrencode -t ANSI

方式 B:注册新号码

bash
signal-cli -a +1234567890 register
signal-cli -a +1234567890 verify 123-456

注意

注册新号码会注销该号码的原 Signal 账号。如果号码已在使用中,请选择方式 A。

配置 OpenClaw

json5
{
  channels: {
    signal: {
      enabled: true,
      account: "+1234567890",       // Signal 注册的手机号
      cliPath: "signal-cli",        // signal-cli 可执行文件路径
      dmPolicy: "pairing"           // DM Policy(私信策略)
    }
  }
}

启动与验证

bash
openclaw gateway restart

在 Signal App 中向机器人号码发送消息,然后批准配对:

bash
openclaw pairing approve signal <pairing-code>

群组支持

json5
{
  channels: {
    signal: {
      groups: {
        allowAll: false,
        allowGroups: ["group-id-xxx"],     // 允许的群组 ID
        requireMention: true
      }
    }
  }
}

获取群组 ID

群组 ID 在 Gateway 日志中显示,或通过命令查看:signal-cli -a +1234567890 listGroups

Daemon(守护进程)模式

建议以 Daemon 模式运行以获得更好性能:

bash
signal-cli -a +1234567890 daemon --socket /tmp/signal-cli.sock

在 OpenClaw 配置中指定 Socket 路径:

json5
{
  channels: {
    signal: {
      daemonSocket: "/tmp/signal-cli.sock"
    }
  }
}

常见问题

Daemon 连接失败

  1. 确认 Daemon 进程正在运行:ps aux | grep signal-cli
  2. 检查 Socket 文件权限和路径是否与配置一致

版本兼容问题

更新 signal-cli 前备份数据目录 ~/.local/share/signal-cli/,更新后可能需要重新关联设备。

消息延迟

确认使用 Daemon 模式而非逐次调用模式,检查服务器网络和 Java 进程内存。

🇨🇳 中国用户须知

Signal 在中国大陆已被完全封锁,包括服务器和官网均无法直接访问。

不推荐在国内使用:注册、登录、收发消息全程需要代理,连接不稳定会导致消息丢失。

如需使用:必须为 signal-cli 配置代理:

bash
export HTTP_PROXY="http://your-proxy:port"
export HTTPS_PROXY="http://your-proxy:port"
signal-cli -a +1234567890 daemon --socket /tmp/signal-cli.sock

替代方案:对隐私有较高要求时,可考虑自建 Matrix 服务器。

基于MIT协议开源 | 内容翻译自 官方文档,同步更新