观前必看
该文过分基础的内容如vim的使用等不做说明,若有不懂,自行百度解决。
环境介绍
本文是在x86_64平台,Ubuntu Server 24.04下编写,其它系统根据实际情况修改命令等。
准备工作
云崽运行介绍
云崽主要需要三个部分:应用端,客户端以及协议。
应用端
应用端主要处理指令、数据等。
本文采用 TRSS 作为应用端。不过我个人不喜欢使用官网提供的一键脚本。
云崽的应用端都需要使用redis做持久化存储。
客户端
客户端就是模拟用户操作,发送信息、图片等等。
本文采用开源项目 NapCat 搭配NTQQ,我个人使用这个方法账号还没有经历过风控、封号等等。
除了NapCat也有其他方式,如icqq等,个人不推荐使用,易封号。
协议
在本文中,协议为OneBotv11,具体内容不详细介绍(因为我也不知道),应该就是统一了数据传输模式、格式等。
环境准备
安装好任一Linux发行版,本文的一切内容是在 x86_64平台,Ubuntu Server 24.04
下进行。
下载内容
- Redis: https://github.com/redis/redis/archive/refs/tags/7.4.0.tar.gz
如果Github文件下载不下来自行百度Github加速下载,把上面这个链接复制进去下载 - Google Chrome: https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- NodJS: https://nodejs.org/dist/v23.3.0/node-v23.3.0-linux-x64.tar.xz
部署云崽
系统安装
这个就不用我教了吧。
远程登录
本人在Windows下,使用ssh连接机器进行部署。
推荐工具:
Xterminal: Xterminal - 更好用的开发工具,但不止于(SSH/控制台/More)
用于替代用CMD使用ssh和scp,并且可以记忆命令、设备。
注意:
- 以上工具都非必须,都只是为了简化繁琐的命令敲击过程。
- ssh连接可以使用Windows自带的终端使用
ssh 账户@地址
登录 - SCP可以通过下面两个指令完成文件传输:
从本地复制到远程:scp [本地文件路径] [用户名]@[远程主机地址]:[远程文件路径]
从远程复制到本地:scp [用户名]@[远程主机地址]:[远程文件路径] [本地文件路径]
- FinalShell工具自带文件传输功能,如果用FinalShell则不需要使用WinSCP。
系统设置
镜像源
安装的时候如果没有设置镜像源记得设置一下,方式自行百度。个人喜欢用 中科大 的镜像。
允许root登录 --非必须
使用sudo passwd root
设置root账户密码。
先输入当前登录账号密码,然后输入两遍root账户密码,不会显示,但是实际已经输入进去了。
接着,使用下面的命令编辑ssh设置文件。
sudo vim /etc/ssh/sshd_config
然后往下翻,找到#PermitRootLogin prohibit-password
,应该在第33行。
删掉前面的"#",将"prohibit-password"修改为"yes",然后保存退出。
当然,直接新建一行,写PermitRootLogin yes
也是可以的。
然后使用sudo systemctl restart ssh
重启ssh服务,退出ssh连接并重新使用root账号连接Ubuntu主机。
注意: 使用root账号并非必须,只是为了方便,根据个人情况选择。
命令执行示例:
kaedeharalu@yunzai:~$ sudo passwd root
[sudo] password for kaedeharalu:
New password:
Retype new password:
passwd: password updated successfully
kaedeharalu@yunzai:~$ vim /etc/ssh/sshd_config
kaedeharalu@yunzai:~$ sudo vim /etc/ssh/sshd_config
kaedeharalu@yunzai:~$ sudo systemctl restart ssh
kaedeharalu@yunzai:~$ exit
logout
Connection to 192.168.0.109 closed.
PS C:\Users\KaedeharaLu> ssh [email protected]
[email protected]'s password:
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-45-generic x86_64)
root@edu-yunzai:~#
更新
使用下面的指令更新记录和软件。
apt update
apt upgrade
环境及依赖
tmux
这是终端复用程序。
Linux发行版不安装图形化界面就只有1个窗口,其实会不太方便,所以就有了tmux。
我使用的这个版本似乎已经预装了tmux,如果没有,则使用sudo apt-get install tmux
安装。
不过tmux也有一个问题,不能滚动屏幕,所以输出内容滚动到屏幕之外后就看不到了,所以按需使用。
使用方式:
命令 | 作用 | 示例 |
---|---|---|
tmux ls | 列出已经打开的会话 | 无 |
tmux new -s name | 新建一个名称为"name"的会话 | tmux new -s nc |
tmux attach -t name | 连接到名称为"name"的会话 | tmux attach -t nc |
tmux detach 使用快捷键Ctrl+B,然后按下D |
退出当前会话 | 无 |
tmux kill-session -t name | 终止名称为"name"的会话,包括其中正在运行的程序 | tmux kill-session -t nc |
NodeJS
下载地址:https://nodejs.org/dist/v23.3.0/node-v23.3.0-linux-x64.tar.xz
将前面下载的NodeJS的.tar.gz的文件上传到Linux,并cd到存放的目录。这将会是NodeJS的安装位置,这里上传到了/opt/
内,因为解压后还会有一个文件夹。
如果使用的是Xterminal,直接将文件拖入左侧的文件列表就能上传了。
像下面这样解压文件,然后删掉压缩文件,将文件夹重命名为nodejs。
root@yunzai:~# cd /opt/
root@yunzai:/opt# tar -xf node-v23.3.0-linux-x64.tar.xz
注意:重命名、删除这些操作在Xterminal下很简单,像Windows删除一样简单动动鼠标就可以完成,不需要敲命令。
然后cd进入nodejs/bin/
执行下面的命令并配置全局变量才可以正常使用NodeJS。
- 建立软链接
root@yunzai:~# ln -s /opt/nodejs/bin/node /usr/local/bin/node
root@yunzai:~# ln -s /opt/nodejs/bin/npm /usr/local/bin/npm
root@yunzai:~# ln -s /opt/nodejs/bin/npx /usr/local/bin/npx
- 修改全局变量
root@yunzai:~# vim /etc/profile
然后在文件最后换行添加下面内容保存并退出。
export NODE_HOME=/opt/nodejs/bin/
export PATH=$PATH:$NODE_HOME:/usr/local/bin/
然后执行source /etc/profile
刷新配置。
最后,执行 node -v
和 npm -v
验证安装。
另外,要更新NodeJS也很简单,将原来的nodejs文件夹改个名字,把新版本上传上去解压改名为nodejs就可以了,有问题也容易恢复。
Redis
下载地址:https://github.com/redis/redis/archive/refs/tags/7.4.0.tar.gz
将下载下来的.tar.gz文件上传到Linux。(我上传到了 /root/
文件夹内)
输入 gcc -v
,如果显示命令未找到说明没有安装编译环境。通过下面的命令安装编译环境。
sudo apt-get install build-essential
然后解压文件。
tar -zxvf redis-7.4.0.tar.gz
然后cd进入目录后,使用输入命令 make && make install
编译并安装redis。
中间时间可能会有点久,会一直有日志输出,耐心等待。
结束后,输入 cd && redis-server
启动redis,查看是否安装成功。如果出现了下面的样子说明安装成功了,按住Ctrl+C关闭,然后进行下一步操作。
root@yunzai:~# cd && redis-server
26626:C 09 Dec 2024 15:00:03.450 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
26626:C 09 Dec 2024 15:00:03.450 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
26626:C 09 Dec 2024 15:00:03.450 * Redis version=7.4.0, bits=64, commit=00000000, modified=1, pid=26626, just started
26626:C 09 Dec 2024 15:00:03.450 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
26626:M 09 Dec 2024 15:00:03.451 * Increased maximum number of open files to 10032 (it was originally set to 1024).
26626:M 09 Dec 2024 15:00:03.451 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis Community Edition
.-`` .-```. ```\/ _.,_ ''-._ 7.4.0 (00000000/1) 64 bit
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 26626
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
26626:M 09 Dec 2024 15:00:03.455 * Server initialized
26626:M 09 Dec 2024 15:00:03.455 * Loading RDB produced by version 7.4.0
26626:M 09 Dec 2024 15:00:03.455 * RDB age 6 seconds
26626:M 09 Dec 2024 15:00:03.455 * RDB memory usage when created 0.90 Mb
26626:M 09 Dec 2024 15:00:03.455 * Done loading RDB, keys loaded: 0, keys expired: 0.
26626:M 09 Dec 2024 15:00:03.455 * DB loaded from disk: 0.000 seconds
26626:M 09 Dec 2024 15:00:03.455 * Ready to accept connections tcp
Google Chrome
可选内容,要安装自行上传到Linux安装即可。
NapCat&NTQQ
GitHub仓库:NapNeko/NapCatQQ: 现代化的基于 NTQQ 的 Bot 协议端实现
文档:NapCatQQ | 现代化的基于 NTQQ 的 Bot 协议端实现
只是基础使用就不用看这些了,跟我走即可。
下载安装
如果系统是Ubuntu 20+/Debian 10+/Centos9
则可以使用一键脚本,否则自行前往官方仓库列表寻找合适的方式(列表:Shell | NapCatQQ)
注:过程会自动安装NTQQ,不需要自己安装。
Ubuntu 20+/Debian 10+/Centos9
一键脚本:
curl -o napcat.sh https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh && sudo bash napcat.sh
安装时注意,会有两次选择的地方,为了后续方便,请均输入 y
并回车(两次的默认选项不同,最好自己确认为y)
是否使用shell安装, 10s超时使用shell安装(y/n)
这是输入命令后完成脚本下载后马上就会询问的,请输入y并回车。是否安装cli, 10s超时跳过安装(y/n)
这是在安装的最后一步会用金黄色的字询问的,请输入y并回车。因为NapCatQQ-cli真的很方便。
NapCatQQ-cli使用
输入napcat help
查看帮助。
- napcat start {QQ} 启动对应QQ号的NAPCAT
- napcat stop {QQ}[可选] 停止所有[对应QQ号]的NAPCAT及DLC
- napcat restart {QQ} 重启对应QQ号的NAPCAT
- napcat status {QQ}[可选] 查看所有[对应QQ号]的NAPCAT
- napcat log {QQ} 查看对应QQ号的NAPCAT日志
- napcat startup {QQ} 添加开机自启动对应QQ号的NAPCAT及DLC
- napcat startdown {QQ} 取消开机自启动对应QQ号的NAPCAT及DLC
- napcat update 更新 NAPCAT及QQ
- napcat rebuild 重建 NAPCAT及QQ
- napcat remove 卸载 NAPCAT及QQ
- napcat help 查看此帮助
- napcat oldhelp 查看旧方法(若此脚本不生效)
注意:
napcat start {QQ}
为后台启动,第一次启动或启动失败使用napcat log {QQ}
指令切换到前台。- 命令帮助中的
{QQ}
代表这是QQ号,实际使用时,不需要花括号。例如我需要挂云崽的QQ号为123456,那么启动命令就是napcat start 123456
。
TRSS
这一个大标题下,TRSS=云崽。
几个仓库
云崽资源集合:Yunzai-Bot-plugins-index: Yunzai-Bot相关内容收集库
TRSS框架:
- Gitee:Yunzai: Yunzai 应用端,支持多账号,支持协议端:go-cqhttp、ComWeChat、GSUIDCore、ICQQ、QQBot、QQ频道、微信、KOOK、Telegram、Discord
- GitHub:TimeRainStarSky/Yunzai: Yunzai 应用端,支持多账号,支持协议端:go-cqhttp、ComWeChat、GSUIDCore、ICQQ、QQBot、QQ频道、微信、KOOK、Telegram、Discord
下载
云崽的所以内容都采用git的方式,所以如果系统没有git自行安装。(Ubuntu Server自带)
云崽依赖于Redis,所以先将Redis通过tmux启动。
tmux new -s redis
这时,会进入一个新的界面,最底下有一个绿条,显示的是[redis] 0:bash*
。中括号内就是新建的窗口的名字。在这个界面使用命令redis-server
启动Redis并在前台运行。Redis可以通过配置文件默认在后台运行,但是我觉得通过tmux运行也挺方便的。
然后键盘按下Ctrl+B松开,再按下D退出当前窗口,回到系统的窗口。
云崽的基本部署非常简单。(此处我进入了tmux进入操作,如果暂时不需要不执行就行)
tmux new -s trss
git clone --depth 1 https://gitee.com/TimeRainStarSky/Yunzai
mv Yunzai TRSS
cd TRSS
npm config set registry https://registry.npmmirror.com
npm i -g pnpm
pnpm i
node app
解释一下每一行:
- 进入tmux窗口
- 克隆云崽项目
- 重命名文件夹名称为TRSS
- 进入云崽文件夹
- 设置npm(以及后面安装的pnpm)下载镜像为淘宝镜像源
- 安装pnpm
- 安装云崽所需依赖 => 这一步可能会比较久,一定要耐心等待,等待重新出现输入提示(类似
root@yunzai:/TRSS#
)。 - 启动TRSS!!!
启动过后啥都不用管,第一次启动只需要云崽日志的这一行:[23:41:18.580][INFO][WebSocket ] 连接地址:ws://localhost:2536/[ComWeChat,GSUIDCore,OPQBot,OneBotv11,go-cqhttp]
如果进入了tmux,退出tmux窗口。
运行云崽
TRSS
务必先启动Redis再在TRSS目录内执行node app
。
NapCat
第一次请在系统窗口启动,不要在tmux内启动
注意:
- 下文的123456请替换为自己需要作为云崽的QQ号。
- 建议使用小号,因为作为云崽后该账号不能在电脑登录,否则会顶号。
napcat start 123456
napcat log 123456
然后别急,先把后台管理地址复制下来,就是我用红笔框起来的位置,复制到浏览器打开。
注意一个点,如果显示的是127.0.0.1
或者 localhost
这种回环ip,修改为设备对应的ip再访问。
接着扫描显示的二维码确认登录。
然后回到浏览器,完成一点点设置才能让NapCat和TRSS连接。
NapCat设置
打开配置后台网址后,依次点击 网络配置=>添加配置(如图)。
然后添加类似这样的新配置(红框内为需要调整或填写的)。
解释一下每个条目:
- 名称:顾名思义,就是这个配置文件的名称,随意。
- 类型:选择
WebSocket客户端
,选择后会变成图中的websocketClients,一样的,没关系。 - 启用:顾名思义。一定要启用哦。
- URL:前面云崽日志输出过的连接地址,但是只保留OneBotv11的部分,即:
ws://localhost:2536/OneBotv11
- 消息格式:保持默认为Array即可。
- 报告自身消息:默认不会讲云崽自己发送的消息推送到应用端,勾选启用后就会将云崽自己发送的消息推送。
- 其他的都不用管。
然后确认保存。现在查看云崽日志会发现提示“建立连接”。如图。
现在给云崽发个信息之类的,就会看到有对应的日志输出了。
至此,云崽的安装就结束了,关于进一步的使用请看后续文章。
Comments NOTHING