不过,有一个非常重要的前提:酷Q官方已于2020年停止服务和维护,直接使用原版酷Q可能存在安全和法律风险,目前的主流做法是使用酷Q的替代方案,其中最流行、最稳定的是Mirai 和go-cqhttp。
下面我将以go-cqhttp (一个功能强大且易于使用的替代品)为例,为你详细讲解如何将QQ机器人部署到Linux云服务器上。
1、准备阶段:购买并配置一台云服务器。
2、部署阶段:在服务器上安装必要的环境,并配置 go-cqhttp。
3、运行阶段:启动机器人并使其在后台稳定运行。
4、连接应用:让你的机器人插件(例如基于NoneBot2、Koishi等框架开发的应用)连接到 go-cqhttp。
1、购买服务器:选择一家云服务商(如阿里云、腾讯云、华为云等),购买一台中国大陆地区的云服务器(非常重要,海外服务器登录QQ极易被风控),选择最基础的配置(1核1G或1核2G)就足够运行机器人了,系统选择Ubuntu 20.04/22.04 LTS 或CentOS 7/8(本文以 Ubuntu 为例)。
2、安全组设置:在云服务器的控制台,找到“安全组”配置,放行以下端口:
22
端口用于SSH连接。
8080
端口用于后续WebSocket通信(或其他你自定义的端口)。
5700
端口go-cqhttp的默认HTTP API端口。
6700
端口go-cqhttp的默认WebSocket端口。
* (建议)修改SSH默认端口,并设置只允许密钥登录,以提高安全性。
1、使用SSH连接服务器:
打开你本地电脑的终端(Windows可使用PowerShell或CMD,也可使用PuTTY、Xshell等工具),输入命令:
ssh root@你的服务器公网IP
然后输入密码登录。
2、更新系统并安装所需软件:
# Ubuntu/Debian apt update && apt upgrade -y apt install wget unzip screen -y # CentOS yum update -y yum install wget unzip screen -y
wget
,unzip
用于下载和解压文件。
screen
是一个终端复用工具,可以让你在断开SSH后程序依然运行。
1、下载 go-cqhttp:
前往 go-cqhttp 的 GitHub Release 页面:[https://github.com/Mrs4s/go-cqhttp/releases](https://github.com/Mrs4s/go-cqhttp/releases)
根据你的服务器架构选择最新版本,大多数云服务器是amd64
架构,选择类似go-cqhttp_linux_amd64.tar.gz
的文件。
在服务器上使用wget
下载:
# 进入一个工作目录,/opt cd /opt # 复制下载链接,使用 wget 下载 wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.0/go-cqhttp_linux_amd64.tar.gz # 解压 tar -xzvf go-cqhttp_linux_amd64.tar.gz # 进入解压后的目录 cd go-cqhttp
2、生成并编辑配置文件:
首次运行会生成默认配置文件。
# 给予执行权限 chmod +x go-cqhttp # 首次运行,生成配置文件 ./go-cqhttp
此时程序会退出,并生成config.yml
文件,使用文本编辑器(如vim
或nano
)来编辑它。
vim config.yml
找到并修改以下关键配置项:
account: uin: 1233456 # 填写机器人的QQ号 password: '' # 填写密码(为空时使用扫码登录) encrypt: false # 不建议开启,除非你明确知道后果 status: 0 # 在线状态 relogin: delay: 3 interval: 3 max-times: 0 ... # 连接服务列表 servers: - http: # HTTP 通信设置 host: 0.0.0.0 # 监听所有网络接口 port: 5700 # HTTP API 端口 timeout: 120 post-format: array secret: '' # HTTP API 访问密钥,建议设置一个复杂的密钥,‘YourSecretKeyHere' middlewares: <<: *default - ws: # 正向 Websocket 设置 host: 0.0.0.0 port: 6700 middlewares: <<: *default # 反向WS不需要,可以注释或删除 #- reverse: # universals: # - 'ws://127.0.0.1:8080/cqhttp/ws'
重点修改:
uin
和password
填写机器人的QQ号和密码。
http.host
和ws.host
确保是0.0.0.0
。
secret
强烈建议设置,这是你的应用连接API时的密码,防止他人恶意调用。
* 暂时不用反向WS,所以注释掉reverse
部分。
保存并退出编辑器(在vim中按ESC
,然后输入:wq
回车)。
1、使用 Screen 运行(防止SSH断开后进程终止):
# 创建一个新的 screen 会话,命名为 qqbot screen -S qqbot # 在 screen 会话中运行程序 ./go-cqhttp
2、登录:
* 如果是首次登录,并且配置文件中密码为空,程序会提示你扫码登录。
* 如果填写了密码,则会自动密码登录,有时需要处理滑块验证,根据终端提示完成即可。
3、后台运行:
登录成功后,你可以按Ctrl + A
,然后按D
,将当前 screen 会话 detached(放到后台),此时即使你关闭SSH窗口,go-cqhttp也会继续运行。
想重新连接回这个会话查看日志,只需执行screen -r qqbot
你的 go-cqhttp(相当于酷Q)已经在服务器上运行了,它提供了HTTP和WebSocket API。
你的机器人应用(例如用NoneBot2、Koishi等框架编写)需要配置连接到这个API。
以 NoneBot2 为例,在你的机器人项目的.env
文件中,需要这样配置:
HOST=0.0.0.0 # 你的NoneBot应用监听的地址 PORT=8080 # 你的NoneBot应用监听的端口 指向你服务器上的 go-cqhttp API_ROOT=http://你的服务器IP:5700 API_TOKEN=YourSecretKeyHere # 与 config.yml 中的 secret 保持一致 ACCESS_TOKEN=YourSecretKeyHere # 同样与 secret 保持一致 WS_URL=ws://你的服务器IP:6700 # Websocket 连接地址
配置完成后,在你的本地电脑或另一台服务器上启动你的NoneBot应用,它就会连接到云服务器上的 go-cqhttp,开始处理消息了。
首选替代品不要再使用原版酷Q,优先选择go-cqhttp 或Mirai。
服务器地域务必使用中国大陆的服务器,极大减少风控风险。
安全风控腾讯对机器人行为监管严格,避免发送大量重复消息、频繁加群等行为,否则账号可能被临时封禁。
后台运行一定要使用screen
、tmux
或systemd
等服务管理工具来守护进程,保证稳定在线。
安全配置务必设置API访问密钥(secret
),并修改服务器SSH默认端口和密码。
按照以上步骤,你就可以成功地将你的QQ机器人部署到云服务器上,实现7x24小时稳定运行了。
文章摘自:https://idc.huochengrm.cn/fwq/15558.html
评论