Ubuntu16.04安装QQ机器人

Ubuntu安装QQ机器人

看了看现在QQ机器人似乎只有酷Q机器人有Docker可以在linux上运行了
那就k开始装酷Q机器人,资源占用也不是很大,大概占用180M内存吧

安装酷Q HTTP#

首先安装好docker
在这里插入图片描述
酷Q官网提供了docker COOLQ Docker 2.0
但是我是打算通过HTTP进行一些功能开发的,于是选择了大佬做的带HTTP插件的 CQHTTP Docker
首先pull镜像,我觉得下载的比较慢,挂了一个screen慢慢下

Copy
docker pull richardchien/cqhttp:latest

下载完成后启动容器进行测试

Copy
docker run -ti --rm --name coolq \ -v /home/coolq:/home/user/coolq \ # 将宿主目录挂载到容器内用于持久化 酷Q 的程序文件 -p 9000:9000 \ # noVNC 端口,用于从浏览器控制 酷Q -p 5700:5700 \ # HTTP API 插件开放的端口 -e COOLQ_ACCOUNT=123456 \ # 要登录的 QQ 账号,可选但建议填 -e CQHTTP_POST_URL=http://example.com:8080 \ # 事件上报地址 -e VNC_PASSWD=111111111 \ # noVnc密码 -e CQHTTP_SERVE_DATA_FILES=yes \ # 允许通过 HTTP 接口访问 酷Q 数据文件 richardchien/cqhttp:latest

此时可以登录noVNC查看并且登录了
在这里插入图片描述
如果测试没有问题的话,就讲启动参数中的--rm改为-d就可以存储运行了

Copy
docker start coolq docker stop coolq

supervisord开机自启#

由于我有一个定时任务多久开关机一次,但是coolq不会开机自启动,选择supervisord进行开机自启
注意autorestart=false,由于启动coolq后会exit(0),所以supervisord会不断尝试重启,我们只需要他启动一次就好

Copy
[program:coolq] command=docker start coolq stderr_logfile=/var/log/supervisor/error_coolq.log stdout_logfile=/var/log/supervisor/coolq.log directory=/home autostart=true user=docker autorestart=false

配置信息#

账号的配置文件#

注意上报地址不能为127.0.0.1,因为容器内有自己的127.0.0.1,一般情况下可使用机器ip作为上报地址

Copy
[123456789] use_ws = false use_ws_reverse = false serve_data_files = yes access_token = 11111111111111111 log_level = error post_url = http://example.com:8080 secret = 11111111111111111 show_log_console = false event_filter = filter.json

过滤上报HTTP配置文件#

  • 私聊消息
  • 非匿名发送的@机器人的群消息
  • 非匿名的‘出来’群消息
  • 加好友消息、加群邀请、加群请求
Copy
{ ".or": [ { "message_type": "private" }, { "message_type": "group", "anonymous": { ".eq": null }, "raw_message": { ".regex": "CQ:at,qq=2450184313|^出来$" } }, { "post_type": "request" } ] }

防火墙#

由于Docker直接更改iptables且优先级比ufw高,不能通过ufw控制其监听端口的开放关闭,需要手动配置Docker信息

Copy
# vim /etc/default/ufw DEFAULT_FORWARD_POLICY="ACCEPT"
Copy
# vim /etc/ufw/before.rules # *filter前面添加下面内容 # 172.17.0.0/16 为docker网桥地址,可能不同 *nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE COMMIT
Copy
# vim /etc/default/docker # 添加此条配置信息 DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 --iptables=false"
Copy
# vim /etc/docker/daemon.json # 没有此文件则创建 { "iptables": false }

重启daemondockerufw

Copy
systemctl daemon-reload && systemctl restart docker && ufw reload
posted @   WindRunnerMax  阅读(643)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
CONTENTS