signal-cli 是 Signal Messenger 的命令行界面。它支持注册、验证、发送和接收消息。 signal-cli 使用已修补的 libsignal-service-java,从 Signal-Android 源代码中提取。注册时,您需要一个可以接收短信或来电的电话号码。
signal-cli 主要用于服务器上,以通知管理员重要事件。对于此用例,它具有带有 JSON-RPC 接口(手册页)和 D-BUS 接口(手册页)的守护程序模式。对于 JSON-RPC 接口,还有一个用 Rust 编写的简单示例客户端。
您可以自己构建 signal-cli 或使用提供的二进制文件,它应该适用于 Linux、macOS 和 Windows。还有社区提供的 docker 镜像和一些 Linux 软件包。
系统要求:
至少 Java 运行时环境 (JRE) 21
本机库:libsignal-client
本机库捆绑用于 x86_64 Linux(带有最新的 glibc)、Windows 和 MacOS。对于其他系统/架构,请参阅:为 libsignal 提供本机库
查看最新版本。
export VERSION= < latest version, format " x.y.z " >
wget https://github.com/AsamK/signal-cli/releases/download/v " ${VERSION} " /signal-cli- " ${VERSION} " .tar.gz
sudo tar xf signal-cli- " ${VERSION} " .tar.gz -C /opt
sudo ln -sf /opt/signal-cli- " ${VERSION} " /bin/signal-cli /usr/local/bin/
您可以在 Wiki 上找到更多说明:
有关完整的使用概述,请阅读手册页和 wiki。
重要提示:帐户是您的国际格式的电话号码,并且必须包含国家/地区电话代码。因此它应该以“+”号开头。 (有关所有国家/地区代码的列表,请参阅维基百科。)
注册号码(短信验证)
signal-cli -a ACCOUNT register
您可以使用固定电话号码注册 Signal。在这种情况下,您可以通过在上述注册命令末尾添加--voice
开关来跳过短信验证过程并直接跳转到语音通话验证。
注册可能需要解决验证码挑战:使用验证码注册
使用通过短信或语音收到的代码验证号码,如果您已向帐户添加了 PIN 码,则可以选择添加--pin PIN_CODE
signal-cli -a ACCOUNT verify CODE
发送消息
signal-cli -a ACCOUNT send -m " This is a message " RECIPIENT
通过管道传输来自另一个进程的消息内容。
uname -a | signal-cli -a ACCOUNT send --message-from-stdin RECIPIENT
接收消息
signal-cli -a ACCOUNT receive
提示:信号协议期望定期接收传入消息(使用daemon
或receive
命令)。这是加密有效工作以及获取组更新、过期计时器和其他功能所必需的。
密码和密钥在注册时创建并存储在当前用户主目录中:
$XDG_DATA_HOME/signal-cli/data/
$HOME/.local/share/signal-cli/data/
该项目使用 Gradle 来构建和维护依赖项。如果您安装了最新的 gradle 版本,则可以按照以下步骤将./gradlew
替换为gradle
。
使用以下命令检查文件系统上某处的源代码
git clone https://github.com/AsamK/signal-cli.git
执行摇篮:
./gradlew build
2a.在build/install/signal-cli/bin中创建 shell 包装器:
./gradlew installDist
2b.在build/distributions中创建 tar 文件:
./gradlew distTar
2c.在build/libs/signal-cli-fat中创建一个 fat tar 文件:
./gradlew fatJar
2d.编译并运行 signal-cli:
./gradlew run --args= " --help "
可以使用 GraalVM 构建本机二进制文件。这仍然是实验性的,并不适用于所有情况。
安装GraalVM并设置环境
执行摇篮:
./gradlew nativeCompile
该二进制文件位于build/native/nativeCompile/signal-cli
对于常见问题和问题,请查看 wiki。
该项目使用 Open Whisper Systems 的 libsignal-service-java:
https://github.com/WhisperSystems/libsignal-service-java
根据 GPLv3 许可:http://www.gnu.org/licenses/gpl-3.0.html