基于 Termux 的 QQ 机器人部署指南
在安卓设备上运行本地机器人服务,既能节省服务器成本,也能锻炼 Linux 环境下的运维能力。本方案利用 Termux 模拟 Linux 环境,结合 AstrBot 大模型框架与 NapCat 客户端,实现非官方的 QQ 个人机器人部署。
核心工具简介
Termux
Termux 是 Android 上的开源终端模拟器,提供类 Linux 环境。无需 Root 权限即可使用包管理器安装开发工具(如 Python、Git、Node.js 等)。建议从 F-Droid 下载最新版本,Google Play 版本更新较慢。
AstrBot
AstrBot 是一站式 Agentic 聊天机器人平台,支持接入多种大语言模型及消息平台(QQ、微信、飞书等)。它具备 WebUI 可视化配置、插件扩展及代码沙箱执行能力。
NapCat
NapCat 是基于 TypeScript 构建的 Bot 框架,通过 OneBot 协议规范对接 QQ 接口。它支持 HTTP/WebSocket 请求,能处理消息收发、图片语音解析等功能。
环境准备
1. 安装与初始化
从 F-Droid 获取 Termux 应用。打开后执行以下命令更新源并安装基础依赖:
pkg update && pkg upgrade
pkg install python git wget curl proot-distro uv
换源提示:国内用户可运行 termux-change-repo,选择镜像组中中国大陆节点以提升下载速度。
2. 存储权限
执行 termux-setup-storage 授权文件访问,后续部署需要读写权限。
正式部署流程
1. 构建 Ubuntu 子系统
由于 AstrBot 依赖较新的 Python 环境,直接在 Termux 原生环境中可能受限。建议使用 proot-distro 安装 Ubuntu。
proot-distro install ubuntu
proot-distro login ubuntu
进入 Ubuntu 后,需添加第三方 PPA 以获取 Python 3.10(uv 要求版本):
apt update && apt install software-properties-common
add-apt-repository ppa:deadsnakes/ppa && apt update
apt install python3.10
2. 部署 AstrBot
克隆项目仓库并初始化运行环境。注意确保当前路径为项目根目录。
git clone https://github.com/AstrBotDevs/AstrBot.git
cd AstrBot
uv run main.py
若 uv 下载慢,可临时切换清华源:
export UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple"
启动成功后,WebUI 将显示在 localhost:6185。默认账号密码均为 astrbot。如需后台运行,可使用 & 符号或 screen 命令管理会话。
注意:Termux 与主机共享网络,访问 WebUI 时可直接使用
localhost或手机 IP。
3. 部署 NapCat
NapCat 负责连接 QQ 账号。推荐使用一键脚本部署:
curl -o napcat.termux.sh https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.termux.sh
bash napcat.termux.sh
部署完成后,查看日志获取登录二维码和管理面板地址:
# 示例查看日志方式
logs | grep "二维码"
扫描登录后,需在 NapCat 管理面板中配置 WebSocket 客户端以连接 AstrBot。
连接与配置
1. AstrBot 端配置
进入 AstrBot WebUI,点击左侧'消息平台',新增适配器:
- 类型:aiocqhttp (OneBot v11)
- 反向 WebSocket 主机:
0.0.0.0 - 端口:自定义(如
6199)
保存后,在'其他配置'中添加管理员 QQ 号。
2. NapCat 端配置
在 NapCat 管理面板的'网络配置'中新建 WebSocket 客户端:
- 启用:勾选
- URL:
ws://宿主机IP:6199/ws(注意末尾加/ws) - 心跳/重连间隔:
5000
3. 验证连接
返回 AstrBot 控制台,观察日志是否出现 aiocqhttp(OneBot v11) 适配器已连接。随后在 QQ 私聊发送 /help,若机器人回复帮助列表,则部署成功。
常见问题与维护
- Git Clone 失败:通常因网络问题导致。建议检查代理设置,或先删除旧目录
rm -r AstrBot重试。 - 后台存活:Android 系统可能杀后台进程。需在系统设置中将 Termux 设为'允许后台活动'或手动管理启动项。
- Docker 部署限制:若使用 Docker 部署 NapCat,部分版本可能无法接收语音和文件数据,纯文字/图片功能正常。
本教程基于官方文档整理,已在测试环境中验证通过。实际运行时请遵守相关法律法规,合理控制消息频率,避免触发风控机制。


