1、什么是QSign
QSign 是一个用于加密和解密消息的签名服务器,可以与 Go-CQHTTP 搭配使用,以提供更安全的消息传输。
前段时间由于腾讯更改协议,Go-CQHTTP 等框架大规模失效、被风控,甚至导致许多机器人账号被冻结,出现code:45
报错,签名服务器目前是唯一的解决方法,不保证不失效。
2、搭建方法
2.1、Docker命令行部署
首先,确保你已经安装了Docker,并且能够在命令行中使用docker命令。
执行以下命令下载QSign镜像:
Text 1
docker pull xzhouqd/qsign:core-{version}
注意,这里的
{version}
表示QSign的版本号,例如1.1.3
。- 准备txlib文件。你需要根据fuqiuluo/unidbg-fetch-qsign教程下载或导出txlib文件,并将其放在宿主机上的一个目录中。
执行以下命令启动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服务的版本号
注意替换以上命令中的参数为实际的值。
- 完成以上步骤后,QSign服务器将会在Docker容器中运行,并通过指定的端口对外提供服务。
2.2、Docker Compose部署
首先,确保你已经安装了Docker Compose,并且能够在命令行中使用docker-compose命令。
在项目的根目录下创建一个名为
docker-compose.yml
的文件,内容如下:Text 1
2
3
4
5
6
7
8
9
10
11
12version: "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服务的版本号
注意替换以上命令中的参数为实际的值。
执行以下命令启动QSign容器:
Text 1
docker-compose up -d
完成以上步骤后,QSign服务器将会在Docker容器中运行,并通过指定的端口对外提供服务。
3、Go-CQHTTP对接方法
使用QSign签名服务器对接Go-CQHTTP,需要在config.yml文件中进行相应配置。
在config.yml文件的Account.SignServer
字段配置项中添加以下内容:
1 | 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 消息风控
评论