【NTQQ】利用LiteLoaderQQNT插件实现NTQQ对接机器人框架(Docker版)
- 2024年6月25日 20:53:17更新:最新版本的LinuxQQ QQ_3.2.9_240617,更新了LiteLoaderQQNT1.1.2,更新了更新LLonebot v3.26.7
- 2024年6月12日 00:04:41更新:最新版本的linuxQQ QQ_3.2.9_240606,更新LLonebot v3.26.6版本,增加了LiteLoaderQQNT-Kill-Update插件(禁用更新插件)。
- 2024年5月13日 09:33:46更新:最新LinuxQQ版本,最新LLOneBot v3.24.3版本。
- 2024年4月23日 12:59:05新增:wtqq手搓步骤图文教程,跟一键差不多,只是自己动手更知道应该如何操作。
- 2024年4月23日 06:58:13新增:wtQQ一键教程(WTQQ就是无头QQ,没有多余的界面,占用更小,不过稳定性还不确定),WTQQ基于napcat作者的,但是由于话题敏感,所以就不多说了。
- 2024年4月12日 08:54:39更新:升级了内置的QQNT版本到最新的3.2.7_240410,升级了LiteLoaderQQNT 到最新的1.1.1,升级了LLOneBot到v3.22.1。
- 2024年3月29日 06:50:53更新:新增插件:自动同意好友(魂焱编写)点击LiteLoaderQQNT-扩展即可看到(如果此插件有问题可以加群反馈)
- 2024年3月22日 08:51:16更新:同步官方插件3.18.3版本:新增可更新插件的选项(总算不用跟进了,自行手搓更新吧),配置文件有增加,不想改的可以自行去配置页面保存一下即可!
- 2024年3月14日 23:15:55更新:新增一键更新命令,请看文末!
- 2024年3月14日 21:26:08更新:同步官方插件3.14.1:发送视频不再通过上传群文件,现可以直接发送。
- 2024年3月12日 21:35:16更新:同步官方插件3.14.0
- 2024年3月8日 13:55:33更新,增加了sh脚本,简化更多操作,方便小白填参数即可部署,考虑到连通性问题,本想将配置文件放github方便一个脚本直接更新,脚本建议使用完成后删除,配置文件有相关更新再重新下载新的sh!(支持无界和autMan)
- 2024年3月5日 19:57:54更新LLOneBot插件到3.11.2版本,增加了删除文件时间为120秒,请重新修改配置文件
- 2024年2月28日 20:22:02新增无界配置
- 2024年2月28日 20:03:56更新了bot插件到3.10.0,增加邀请加群通知,发送文件的文件名,消息和通知上报的时间戳格式统一,都为毫秒,加群和加好友请求通知的post_type改为request
- 2024年2月27日 18:41:59更新了bot插件到3.9.0,增加FFmpeg支持。
目录
前言
相信很多机器人玩家,都已经无路可去了,目前可以利用官方NTQQ来对接各框架(当然需要各框架支持)
首先感谢 青柠
博客地址:倾城于你 提供的一些思路。
感谢 群内魂焱
博客地址:魂焱小站提供部分技术的支持。
感谢 群内莫斯科
的arm服务器提供。
打包的docker在魂焱打包的基础上改了一些,让QQ就算闪退或者崩溃,不影响到容器本身,用supervisor
进行守护,使其配合自动登录功能,实现绝对的稳定,下面我们来进入正题
准备
- 准备一台服务器,
amd64/arm64
都可以,配置最好还是2核保底吧。 - 准备一个
VNC
软件。我会在群内准备一些手机上的和PC端的。这里直接用青柠提供的1Remote
- 准备手机登陆机器人
QQ号
,扫码
NTQQ相关
NTQQ一键脚本(适用于小白支持autMan/无界)
复制以下代码,在服务器发送即可。按照提示步骤输入正确参数
,如果出现输错可以自行去文件夹内修改
!(如果脚本有问题
,欢迎加Q群反馈
,找时间会优化。)搞好后就跳转下面的VNC连接
接着连接操作
cd && curl -o "ntqq.sh" "https://raw.githubusercontent.com/baquanluomu/ntapiconfig/main/ntqq.sh" && chmod +x ntqq.sh && ./ntqq.sh
示例图:
WTQQ一键脚本(当前虽然占用很小,但是没界面!稳定性还未长久测!)
- 建议常用网络环境登录机器人QQ!
- sh写的稀烂,所以不要太勉强自己用
- 目前没有过多的实测经验,多自己研究研究。
- 重启容器命令:docker restart wtqq
- 出码命令:docker logs wtqq
cd && curl -o "wtqq.sh" "https://raw.githubusercontent.com/baquanluomu/ntapiconfig/main/wtqq.sh" && chmod +x wtqq.sh && ./wtqq.sh
手动搭建NTQQ(建议老手)
- SSH链接你的服务器,在
root
目录下,没有的请cd /root
,然后输入下面命令创建对应文件夹并创建配置文件,请注意将记得换
文字换成机器人的QQ号码
mkdir -p LLOneBot && cd LLOneBot && touch config_记得换.json
- 如果不确定是否成功,可以自行查看下目录或者
ll
看查目录。正确后我们进行编辑配置文件,配置地址端口。(并不是一定要vi
如果有宝塔等或者nas等可以直接去目录手动修改哈,怎么方便怎么来)
{
"ob11": {
"httpPort": 3000,
"httpHosts": [],
"wsPort": 3001,
"wsHosts": [
"ws://autMan公网地址:端口号/qq/receive"
],
"enableHttp": false,
"enableHttpPost": false,
"enableWs": false,
"enableWsReverse": true,
"messagePostFormat": "string",
"httpSecret": "",
"enableHttpHeart": false
},
"heartInterval": 60000,
"token": "",
"enableLocalFile2Url": true,
"debug": true,
"log": false,
"reportSelfMessage": false,
"autoDeleteFile": false,
"ffmpeg": "/usr/bin/ffmpeg",
"autoDeleteFileSecond": 120,
"enablePoke": false,
"musicSignUrl": ""
}
-
上面进入后,记得按键盘的
i
键,然后黏贴,并更改,按Esc
结束编辑,输入:wq
即可保存退出。 -
编辑改好后,咋们就先
cd
到根目录,拉取镜像并run容器(不用管arm或者amd什么的,直接拉取,会自动识别)docker run -d --restart=always --name NTQQ -v /root/LLOneBot/:/opt/QQ/resources/app/LiteLoaderQQNT/data/LLOneBot/ -p 5900:5900 -p 3000:3000 luomubiji/ntqq:latest
-
注意上面的name后面的
NTQQ
是可以更改的,还有-p 5900:5900 -p 3000:3000
这里的:
前面的5900
和3000
是可以更改的,更改后代表后面的步骤都需要相应的替换。如果有端口冲突,还是更改为好,没有就不必更改,有没有很简单,自己用命令lsof -i:5900
查看记得
VNC连接
- 首先VNC软件选择性很多,各个功能不一样,建所以这里直接用
1Remote
来演示,首先打开软件,右上角选择+
号,选择添加,点击上方VNC
,输入名称
-
往下拉找到地址,输入上面搭建
NTQQ服务器的地址IP(可域名)+端口号
,就是上面的第六步,里面的5900
如果你有变动,改的什么就在此处填写什么(家宽openwrt或者爱快等,记得开放端口)。下面密码输入:vncpasswd
(关于密码固定后续可能会优化为可自定义),然后保存。 -
保存后我们去双击你添加的,就会进行连接(如果遇到连接失败,你确定端口开放!且确定容器正常运行中!端口占用等问题!),连接成功后如图所示:
-
然后我们拿出我们准备好的机器人QQ手机,右上角
+
号,扫一扫,然后扫出来的二维码。并登陆,确定登录。出现确认最好勾选下次登录无需手机确认
,如果遇到闪退,扫码后黑屏等,重新连接VNC
就行。直到出现正常QQ登陆界面。然后就进行关键操作
!!!
- 点击设置,找到左边最下面的bot,点击进入,确定一下端口,还有对接奥特曼的地址和端口是否有,如果没有,手动填写,最好是去一开始的配置文件修改!还要开启debug!消息上保类型选择CQ码如图所示就完事了!然后点击左边的
登录设置
,将启动QQ自动登录打开
,确认无需手机确认打开
。接着找到最上的通用
找到软件更新
关闭
!!
autMan用户配置如图,IP+端口记得替换
无界用户配置
- NTQQ相关第3步的配置文件:
{
"ob11": {
"httpPort": 3000,
"httpHosts": [],
"wsPort": 3001,
"wsHosts": [
"ws://无界IP:端口号/api/bot/qqws"
],
"enableHttp": false,
"enableHttpPost": false,
"enableWs": false,
"enableWsReverse": true,
"messagePostFormat": "string",
"httpSecret": ""
},
"heartInterval": 60000,
"token": "",
"enableLocalFile2Url": true,
"debug": true,
"log": false,
"reportSelfMessage": false,
"autoDeleteFile": false,
"ffmpeg": "/usr/bin/ffmpeg",
"autoDeleteFileSecond": 120,
"enablePoke": false
}
-
VNC连接第5步图一示例:
-
无界web更改
qqOutside.js
示例图,请将适配器模式更改为ws
,交互发送地址更改为NTQQ的地址加端口
,记得开启适配器
,图上没开而已,js路径在/bncr/BncrData/Adapter
更新命令
这里使用的是watchtower来更新,但是我不知道是个人原因还是什么原因,watchtower版本无论怎么拉取最新的都是1.3.0(删除了镜像也是),所以我建议如果您的watchtower版本很低的话,就是用下面命令拉取后出现第一行为1.7.1(2024年3月14日 23:18:12目前最新)以下的话,最好还是手搓拉取指定版本,注意更新是要时间的!且更新后还需要扫码登录,且要除了配置文件外的比如自动登录,取消更新都需要重新开关!
NTQQ指定用watchtower1.7.1更新(跟我类似情况)
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:1.7.1 -c --run-once NTQQ
NTQQ通用更新命令
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -c --run-once NTQQ
WTQQ(手搓步骤)
首先说明,这是napcat作者写的,我就是搬过来罢了。不过由于敏感问题,就不多说。这个wtqq就是无头QQ,去除了ntqq多余的界面,所以占用什么的会更小点,但是具体稳定性还没有实测,看个人吧,如果本身服务器性能不行,可以尝试用这个,如果服务器性能可以就建议还是用NTQQ版,能更直观的看到界面
官方项目地址:
Gtihub:https://github.com/NapNeko/NapCatQQ
Docker:https://github.com/NapNeko/NapCat-Docker
-
首先使用下面命令会自动识别系统下载对应的包并解压命名为wtqq
ARCH=$(uname -m) && TAG_NAME=$(curl -s https://api.github.com/repos/NapNeko/NapCatQQ/releases/latest | grep '"tag_name":' | cut -d '"' -f 4) && ZIP_NAME="" && if [ "$ARCH" = "x86_64" ]; then ZIP_NAME="NapCat.linux.x64.zip"; elif [ "$ARCH" = "aarch64" ]; then ZIP_NAME="NapCat.linux.arm64.zip"; fi && curl -L -o "$ZIP_NAME" "https://github.com/NapNeko/NapCatQQ/releases/download/${TAG_NAME}/${ZIP_NAME}" && unzip "$ZIP_NAME" -d wtqq_temp && mv wtqq_temp/* wtqq && rm -rf wtqq_temp && rm -f "$ZIP_NAME"
-
然后我们用命令拉取容器(注意命令!!
要自己改
):无界是:ws://ip:端口/api/bot/qqws
autMan是:ws://ip:端口/qq/receive
切记ip和端口是无界或者autMan的ip和端口可以域名!docker run -d -e ACCOUNT=机器人QQ号 -e WSR_ENABLE=true -e WS_URLS="ws://无界或者奥特曼" -v /root/wtqq/:/usr/src/app/napcat/ --name wtqq luomubiji/wtqq:latest
-
拉取好后我们进入文件夹,
删除多余的json
,留下设置机器人QQ号的那个,打开-编辑messagePostFormat
后面的值改成string
,enableLocalFile2Url
后面的改成true
,下面的60000改成30000
(这是心跳重连,一般30000就行了)记得保存4.以上搞定后我们重启容器
docker restart wtqq
5.然后发送下面命令,查看log会出现
二维码
,准备手机扫码
即可,重启容器后大概等十来秒
再输入下面命令,因为二维码解析还是要时间
的,如果二维码不行,就复制日志上面的地址,去草料二维码复制过去生成即可!docker logs wtqq
WTQQ其他说明:
- 重启容器:docker restart wtqq
- 出码:docker logs wtqq
- 只要出了二维码别管报错什么的,扫了登录OK能用就行了。。
- 挂载出来的文件夹wtqq/config目录下的配置文件是可以自己修改的!比如对接其他的框架都可以,改后记得重启容器,出码,扫码登录!
其他的待补充...
WTQQ指定用watchtower1.7.1更新(跟我类似情况)
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:1.7.1 -c --run-once wtqq
WTQQ通用更新命令
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -c --run-once wtqq
总结
- 看起来步骤很多实际就几步,尽量详细,防止有
小白
不知道按什么操作什么。 - 关于闪退问题,这个确实无法解决,很多是图形处理的问题导致。不过很大部分已经解决了其稳定性,毕竟已经做到了自启自登守护等操作