Linux运行QQ机器人

用Windows运行QQ机器人那是非常简单的,上酷q官网下个程序运行就好了。但是我们自家的主机是不能24h运行的,不然过久了就成BBQ了,Windows服务器也不是一般人租得起的:)比如我就硬是租不起。当然,挂机宝也行,有的挂机宝也贼便宜,但是挂机宝好像就不能玩API了,而且我认为比较容易翻车。毕竟这玩意大多是私人运营的。

视频教程在底下,配合图文教程食用。

根据此教程配置的机器人不带http接口。由于http接口需要更多组件支持,所以需要使用另一个更大的镜像。带http接口的coolq的配置教程请参考这篇文章并结合本文食用。

2020/08/03由于腾讯出击将晨风机器人作者起诉,酷q作者闻风跑路 信息来源:https://t.me/XuexiZhinan/3336?single

2020/11/08新框架请参照这篇文章,该框架更适合Linux系统,甚至能直接在已root手机上运行。但是没有社区,所有功能需自己开发。

酷q并没有开发Linux专用的程序,那怎么搞呢?酷q官方给出了解决方案,即使用docker+wine镜像运行。所以你只要有一台Linux服务器,就能成功运行24h自动机器人。推荐使用Debian或Ubuntu系统。

如果你发现机器人群聊消息不回复,那么打开机器人日志看看。如果显示发送失败,那么根据提示应变。如果显示发送成功,说明因为异地登陆被tx风控了,需要等待并尽量避免让机器人发出消息,并在别的正常的地方(登上在群里吹吹水)挂一段时间那个QQ号。基本半天功夫就会恢复正常。

如果只是玩玩的话该服务几乎不占用cpu,仅占用少量内存。 无论开没开插件 ,进的群越多,信息越多,负载越高。经测仅负载一个机器人占用内存300Mb~500Mb(包括系统、面板等)。

官方文档:

酷Q on Docker 2.0

其中尚有一些不完善不详细的地方,我一开始看的时候也是一脸懵逼,只能跟着输命令。

下面就让我细细地讲一讲。

一、安装Docker

如果你安装了宝塔面板的话,只要在软件商店中找到[Docker管理器]然后安装即可。但是如果你的内存少于768MB的话,宝塔是不会让你装docker的,走shell就好了。

或者根据系统用命令安装,

CentOS:

yum install docker

Debian/Ubuntu:

apt-get install -y docker.io

用命令安完还得启动,宝塔安装跳过这一步。

systemctl start docker

顺便附上Docker的一些常用命令:

启动:         systemctl start docker
守护进程重启:    sudo systemctl daemon-reload
重启docker服务:   systemctl restart dockersudo service docker restart
关闭docker : service docker stopsystemctl stop docker

二、创建需要的目录及文件

这一点在官方文档中是没有提及的,但又比较重要,因为需要的目录和文件有些时候是不会自动创建的(我只遇过一次,而且是第一次的时候)。

mkdir /root/coolq-data #可修改

mkdir /home/user

mkdir /home/user/coolq

touch /home/user/.Xauthority

三、下载酷Q Docker 镜像

如果有宝塔面板,利用[Docker管理器]中的[镜像管理]下载coolq/wine-coolq镜像,方便后期管理容器。

或者使用shell

docker pull coolq/wine-coolq

四、运行酷Q镜像

确保docker正常运行且镜像下载完毕即可尝试运行

docker run --name=coolq --restart=always -p 8080:9000 -v /root/coolq-data:/home/user/coolq -e VNC_PASSWD=11223344 -e COOLQ_ACCOUNT=abcdefg coolq/wine-coolq

蓝字需根据下方参数解释自行替换。

不使用下方提到的可选参数-d的话关闭ssh或ctrl+c中止之后容器会停止。需要再次手动启动容器。

docker start coolq

正常的话会返回coolq

参数说明:

coolq:容器名称,可更改,用于启动、停止容器,命令为docker start/stop coolq。创建多个机器人时使用不同容器名与端口即可。

--restart=always:官方文档中给的是--rm--rm的含义是容器停止后删除容器,而--restart=always则表示容器停止后保留并自动运行,这样无论是重启了服务器还是重启docker,都能保证机器人的正常自动运行。

11223344:控制面板[noVNC]的登陆密码。

8080:控制面板[noVNC]使用的端口,国内主机应避免使用804438080等特殊端口。

/root/coolq-data:用于储存酷Q AIR的目录,插件目录、数据都在这里,需与上文创建的注明可修改的目录一致。

abcdefg:机器人帐号,其值会自动填入酷Q AIR的QQ账号栏中,酷Q也会储存密码,对自动化有利,此处给的字母是不会自动填入的,因为账号是数字的。

可选参数:

-d:不会显示详细的调试信息,仅输出容器ID并挂起,不需要再次手动启动容器。不建议第一次开机器人时使用。

--memory:用于限制物理内存占用,例如:--memory=200M

---memory-swap:限制swap占用,值设为-1表示不限制,必须与---memory一起使用。正常情况下当内存占用超出物理内存与swap占用限制总和时会被kill。

--oom-kill-disable:使用后进程即使超出限制也不会被kill。

上述可选参数请注意放置位置,否则可能不会成功。


输入命令之后出现[CQDaemon] Started CoolQ时,表示启动成功,可以前往[noVNC]远程连接了。[noVNC]的地址就是http://你的服务器IP:8080。如果有防火墙(默认是有防火墙但几乎全端口放行的,这里指手动设置了规则)或安装了宝塔之类的话的话记得在防火墙(安全)放行该端口。

正常情况下,创建的容器在宝塔面板的[Docker管理器]的[容器列表]中是能看到该容器的。

因此当VNC突然连不上时,可以在此处看看容器状态是否正常运行。

如果输入运行命令后提示权限不足,可以尝试使用宝塔面板的ssh终端。

切换内核往往会导致镜像损坏,例如缺失Windows script control组件。因此在切换内核操作后需要重新下载镜像。

此时需先停止容器,删除容器,删除镜像,再重新下载镜像。命令为

docker stop coolq

docker rm coolq

docker rmi coolq/wine-coolq

然后重新从下载镜像开始即可。

删除镜像和容器不会连机器人目录一起删,机器人数据都还在。

五、连接[noVNC]

使用上一点中提到的地址打开VNC页面后,点击[链接]按钮,然后在出现的输入框中输入上一点提到的参数中设置的登陆密码即可连接到远程桌面。

如果页面打不开或提示连接失败则表示容器未正常运行/端口没打开/docker服务异常

根据网友反馈,应该删掉自带插件,防止机器人登陆就被冻结。墙裂推荐在本地先调好机器人再把文件上传再创建容器(本地运行很难被风控,易被风控的原因在于系统信息)。

被冻结
原因

noVNC部分中文显示为乱码和coolq发不出部分特殊字符的解决方案可以参考这个。我觉得这个问题影响不大,毕竟noVNC不支持输入中文,debug很难不如本地调试再覆盖,就懒得搞。你们大可自行研究。

六、酷Q AIR的使用

cpk插件下载地址:

应用发布 · 创意 – 酷Q社区

将得到的cpk文件上传到/root/coolq-data/app目录即可。

远程连接的桌面是难以直接键入中文的。如果你不想安装中文输入法,那么在配置某些需要中文的插输入件时可以直接用宝塔面板编辑配置文件或者在本地配置好再上传覆盖,配置文件在/root/coolq-data/data/app文件夹下的与插件同名的文件夹中。

另外酷Q AIR占用的是TIM移动端,如果在手机qq端登录的话会把机器人挤下线,PC端可以随便登。如果想在手机上同时登录的话可以装一个QQ HD(本意是给平板用的,手机用也完全没问题),不会挤掉机器人。

如果在登陆时提示[收到交互式网页验证码],点[拒绝本次网页验证]再登一次就会出现验证码就能登陆了。

在酷q中登陆,腾讯会要求你开启设备锁。在开了设备锁之后并允许了在酷q中登陆之后,你就可以使用该账户在任何一个地方的酷q in docker登陆无需再次验证。普通pc上登酷q的时候tx是不会要求设备锁的。

七、视频演示

八、实例

实例?什么??你说实例???才没有实例嘞,只有个24h在线的妹子!其实是有的啦,就在交流群里,我用一台废弃的美国服务器搭建的,延迟有点高……而且那台服务器19年11月过期……你懂的。撩姬器人的时候记得私聊喔,毕竟这不是个机器人群(逃

关于“Linux运行QQ机器人”的6条评论

  1. 大佬,现在用的小栗子框架,请问能弄到服务器上用吗?或者推荐一个呗?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注