使用 QSign 签名服务器解决 Go-CQHTTP 消息风控

1、什么是QSign

QSign 是一个用于加密和解密消息的签名服务器,可以与 Go-CQHTTP 搭配使用,以提供更安全的消息传输。

前段时间由于腾讯更改协议,Go-CQHTTP 等框架大规模失效、被风控,甚至导致许多机器人账号被冻结,出现code:45报错,签名服务器目前是唯一的解决方法,不保证不失效。

2、搭建方法

2.1、Docker命令行部署

首先,确保你已经安装了Docker,并且能够在命令行中使用docker命令。

  1. 执行以下命令下载QSign镜像:

    Text
    1
    docker pull xzhouqd/qsign:core-{version}

    注意,这里的{version}表示QSign的版本号,例如1.1.3

  2. 准备txlib文件。你需要根据fuqiuluo/unidbg-fetch-qsign教程下载或导出txlib文件,并将其放在宿主机上的一个目录中。
  3. 执行以下命令启动QSign容器:

    Text
    1
    docker run -d --restart=always --name qsign -p {host_port}:{internal_port} -e BASE_PATH={internal_abs_base_path} -v {host_abs_txlib_path}:{internal_abs_base_path} xzhouqd/qsign:core-{version}

    参数解析:

    • {host_port}:宿主机侧访问的端口
    • {internal_port}:容器内服务端口,在config.json中配置
    • {internal_abs_base_path}:容器内txlib具体所在目录的绝对路径
    • {host_abs_txlib_path}:宿主机侧txlib所在目录的绝对路径
    • {version}:QSign服务的版本号

    注意替换以上命令中的参数为实际的值。

  4. 完成以上步骤后,QSign服务器将会在Docker容器中运行,并通过指定的端口对外提供服务。

2.2、Docker Compose部署

首先,确保你已经安装了Docker Compose,并且能够在命令行中使用docker-compose命令。

  1. 在项目的根目录下创建一个名为docker-compose.yml的文件,内容如下:

    Text
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    version: "3.0"
    services:
      qsign:
        image: xzhouqd/qsign:core-{version}
        ports:
          - "{host_port}:{internal_port}"
        volumes:
          - "{host_abs_txlib_path}:{internal_abs_base_path}"
        environment:
          - "BASE_PATH={internal_abs_base_path}/"
        container_name: qsign-core
        restart: always

    参数解析:

    • {host_port}:宿主机侧访问的端口
    • {internal_port}:容器内服务端口,在config.json中配置
    • {host_abs_txlib_path}:宿主机侧txlib所在目录的绝对路径
    • {internal_abs_base_path}:容器内txlib具体所在目录的绝对路径
    • {version}:QSign服务的版本号

    注意替换以上命令中的参数为实际的值。

  2. 执行以下命令启动QSign容器:

    Text
    1
    docker-compose up -d

    完成以上步骤后,QSign服务器将会在Docker容器中运行,并通过指定的端口对外提供服务。

3、Go-CQHTTP对接方法

使用QSign签名服务器对接Go-CQHTTP,需要在config.yml文件中进行相应配置。

在config.yml文件的Account.SignServer字段配置项中添加以下内容:

yaml
1
2
account:
    sign-server: [http/https]://{server}:{port}

可以使用公共签名服务器:

https://qsign.loli.vet/
https://qq.avocado.wiki/63/
https://qsign.yubao.moe/
http://qsign.yslsy.top/
https://qqsign.hamusuta.xyz/

但是强烈建议自建。

配置完成后,保存config.yml文件并重新启动Go-CQHTTP服务。

现在,Go-CQHTTP将会使用QSign签名服务器对消息进行加密和解密。

希望这个教程可以帮助到你!如果还有其他问题,请随时告诉我。

使用 QSign 签名服务器解决 Go-CQHTTP 消息风控

https://blog.tsinbei.com/archives/1339/

文章作者
Hsukqi Lee
发布于

2023-07-12

修改于

2023-11-19

许可协议

CC BY-NC-ND 4.0

评论

昵称
邮箱
网址
2 条

那年夏天

请问和这个qisign 版本号 具体是有什么来决定的?

  回复

Hsukqi Lee

Hsukqi Lee 作者

qsign好像寄了,目前QQ机器人只有官方频道协议最稳

  回复

大木

大木

很喜欢作者的写作风格,语言简练没有废话

  回复