跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashAI

AstrBot 与 NapCat 部署智能 QQ 机器人及 cpolar 公网访问指南

如何使用 Docker 一键部署 AstrBot 与 NapCat,接入 DeepSeek AI 实现 QQ 智能对话。内容包括初始化配置、人设切换、插件安装(如点歌)、MCP 服务扩展(如 12306 查询),以及使用 cpolar 进行内网穿透以实现公网访问管理面板。

孤勇者发布于 2026/4/6更新于 2026/9/1092 浏览
AstrBot 与 NapCat 部署智能 QQ 机器人及 cpolar 公网访问指南

AstrBot 与 NapCat 部署智能 QQ 机器人及 cpolar 公网访问指南

本文介绍如何使用 Docker 一键部署 AstrBot 与 NapCat,接入 DeepSeek AI 实现 QQ 智能对话,并通过 cpolar 实现公网访问。

1. 项目介绍

1.1 AstrBot 是什么?

[图片:AstrBot 界面]

GitHub 仓库:https://github.com/AstrBotDevs/AstrBot

AstrBot 是一个专为 AI 大模型设计的开源聊天机器人框架,它让你可以轻松地把 ChatGPT、DeepSeek、Claude 等 AI 接入到 QQ、企业微信、Discord 等各种聊天平台。

核心特点:

  • 🤖 原生支持主流 AI 模型:DeepSeek、OpenAI、Claude、GLM、通义千问等开箱即用
  • 🔌 丰富的插件生态:天气查询、图片生成、语音合成、群管理等功能一键安装
  • 🌐 多平台适配:支持 QQ、QQ 频道、Discord、Telegram 等多个平台
  • 🎯 开箱即用:提供 Docker 镜像和 WebUI 管理界面,无需复杂配置
  • 📦 模块化设计:通过 OneBot 标准协议对接各类消息平台,扩展性强

简单来说,AstrBot 就是一个"AI 机器人中枢",帮你把"AI 能力"和"聊天平台"连接起来,让你专注于功能本身,而不用操心底层实现。

1.2 NapCat 是什么?

仓库地址:https://github.com/NapNeko/NapCatQQ

NapCat 是一个基于 NTQQ(QQ 官方 Linux 版本)的 OneBot 协议实现框架,说人话就是:它能让你的 QQ 账号通过标准化接口被机器人程序调用。

在以前,大家常用的 go-cqhttp 已经停止维护,而 NapCat 作为新一代解决方案,具有以下优势:

核心特点:

  • ✅ 稳定可靠:基于官方 QQ Linux 版本,不是逆向破解,稳定性更好
  • 🔄 持续维护:项目活跃开发中,及时跟进 QQ 版本更新
  • 📡 标准协议:完整实现 OneBot v11 协议,兼容性强
  • 🚀 功能完善:支持消息收发、群管理、文件传输、语音图片等全部常用功能
  • 🐳 Docker 友好:官方提供 Docker 镜像,部署简单
  • 🔐 安全登录:支持扫码登录,无需担心密码泄露

为什么要用 NapCat?

因为 QQ 本身不提供公开的 API 接口给开发者,而 NapCat 就像一个"翻译官",把 QQ 的操作翻译成标准的 OneBot 协议接口,让 AstrBot 这样的机器人框架可以通过 HTTP/WebSocket 来控制你的 QQ 账号收发消息。

简单来说:NapCat 负责登录 QQ 并提供接口,AstrBot 负责处理逻辑和调用 AI,两者配合就能让你的 QQ 变成智能机器人。

2. 使用 Docker 一键部署 AstrBot + NapCat

本教程演示在 Windows 11 操作系统上的 Docker 一键部署,部署方式在其他环境也一致。

安装好 Docker 以后,电脑键盘按快捷键 Windows + R 键,输入 powershell 回车,打开 Windows PowerShell 窗口,输入如下命令:

irm https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.ps1 | iex 

[图片:PowerShell 执行结果]

可以看到,命令执行了检查 Docker 及状态,创建文件夹,下载 astrbot 的 docker-compose 文件 astrbot.yml,然后启动容器,以及输出容器的访问地址等。

如果是 Linux 部署,可以依次执行如下命令即可(官方命令):

mkdir astrbot
cd astrbot
wget https://raw.githubusercontent.com/NapNeko/NapCat-Docker/main/compose/astrbot.yml
sudo docker compose -f astrbot.yml up -d 

也可以执行如下 Linux 一键部署命令:

curl -fsSL https://gitee.com/jun-wan/script/raw/master/astrbot/deploy_astrbot.sh | bash

控制台提示部署好后,我们依次访问一下,首先访问 Astrbot(访问的 IP 请查看控制台输出的 IP,或者使用本地回环地址 localhost 也可以):

http://localhost:6185 

[图片:AstrBot 访问界面]

可以发现,成功的访问到啦,接下来再试试访问 NapCat:

http://localhost:6099 

[图片:NapCat 访问界面]

好啦,都访问成功啦!

3. 配置 NapCat

首先,在浏览器中打开如下地址,访问 NapCat 的 web 登录界面:

http://localhost:6099/ 

[图片:NapCat 登录界面]

页面上提示,需要输入 token 进行登录,我们回到控制台,可以看到有一行输出了 Token:

[图片:控制台 Token 输出]

如果控制台日志清了,可以通过查看 docker 容器日志找到,输入如下命令进行查看:

docker logs napcat | Select-String "Token"

[图片:Docker 日志查看]

将 token 复制下来,填写 web 页面中,即可进行登录:

[图片:Token 登录]

接着,登录上你想要作为机器人的 QQ 账号,可以选择侧边的扫码登录,登录完成后,会自动跳转到首页:

[图片:QQ 扫码登录]

4. 配置 AstrBot 关联上 NapCat

4.1 初始化 AstrBot 配置

输入 AstrBot 的访问地址,访问到 AstrBot 的 Web 登录界面:

http://localhost:6185 

[图片:AstrBot 登录界面]

输入用户名和密码 astrbot,然后点击登录,登录成功后首次会提示修改账号信息,修改一下然后重新登录即可:

[图片:修改账号信息]

4.2 AstrBot 关联 NapCat

登录进来后,点击侧边的机器人,然后在页面点击创建机器人按钮,在弹出的窗口中,消息类别选择QQ 个人号,并且启用,保存即可:

[图片:创建机器人]

保存弹出安全提醒的话,直接无视警告并继续创建即可(因为是在本地进行,所以也无需设置 Token,当然也可以设置一下),创建好后,会有成功提示:

[图片:创建成功提示]

点击展开平台日志,然后用另一个 QQ 账号给机器人账号发送消息测试,是否成功通信:

[图片:消息测试]

可以看到,成功的接收到了来自另一个账号发送的消息。

5. 配置 DeepSeek 接入 AstrBot 中

5.1 获取 DeepSeek 的 Api 密钥

首先,前往 DeepSeek 官网的用量信息页面,未登录会先跳转登录页面,登录即可,在该页面可以看到余额和消耗:

https://platform.deepseek.com 

[图片:DeepSeek 用量页面]

接着,点击 API keys,进入该页面:

[图片:API Keys 页面]

在页面上点击 创建 API key 的按钮,然后设置一个 名称(用于辨识),创建完成后点击复制按钮进行复制(注意,只会显示一次,不用刻意记忆,忘记删除重新创建即可):

[图片:创建 API Key]

好了,这样就获取到了 deepseek 的 Api 密钥了,留着备用。

5.2 将 API 密钥配置到 AstrBot 中

首先,在 AstrBot 的后台侧边栏点击模型提供商菜单,然后点击页面上的新增模型提供商按钮,在弹出的窗口中选择接入 DeepSeek:

[图片:新增模型提供商]

在配置页面中点击修改按钮,将前面获取到DeepSeek 的 API密钥填入其中,然后点击保存:

[图片:配置 API]

保存后,即可看到新增的模型提供商了,点击测试按钮,可以测试是否可用:

[图片:测试模型]

5.3 简单对话测试是否可用

使用另一个账号,给前面扫码登录 NapCat 账号(即机器人)发送消息,进行测试是否成功接入了 AI:

[图片:AI 对话测试]

可以看到,成功的回复响应了我们的提问。

6. 更换人设和配置文件相关修改

到这一步,你的 QQ AI 机器人已经能正常工作了。从如下图中可以看到,默认的回答很标准机器人一样:

[图片:默认回答]

这是因为 AstrBot 的默认人设给的提示词为:

你是一个乐于助人、友好的助手…… 

[图片:默认提示词]

我们可以创建一个新的人格设定,首先,打开 AstrBot 后台页面,选择侧边栏的更多功能下的人格设定项,然后在该页面点击创建人格,在弹出的窗口中输入人格 ID,和系统提示词即可:

[图片:创建人格]

这里提供一些收集到的人设,自行获取即可(人设全部为官方群获取,群友上传,非个人创建,个别人设可能有点…你懂的):

(注:原教程中的第三方网盘链接已移除)

填写完成后,点击保存即可,即可在人格设定页面看到保存的人格:

[图片:保存人格]

创建好人格后,我们可以在对话框中直接输入指令进行查看和切换,输入如下指令,可以查看人格相关的指定:

/persona 

[图片:查看人格]

接着,查看一下人格情景列表,看看之前在后台创建的人格设定是否能够查询到:

/persona list 

[图片:人格列表]

可以看到,成功的查询到了添加的人格设定,接着切换一个测试一下:

/persona 猫娘 (请替换为你创建好的人格 ID 名称)

[图片:切换人格]

接着来发送消息测试一下:

[图片:切换后对话]

可以看到,人格生效了,但是回复的内容太长了,我们可以让它分段回复,更加适合聊天的方式。回到后台页面,点击配置文件,下拉找到流式回复,启用它,不支持流式回复的会自动实时分段回复,然后点击右下角的保存按钮即可:

[图片:流式回复配置]

接着再来发送测试一下:

[图片:分段回复测试]

可以看到,现在就能够分段式的回复了。想要切换其他人设,同样使用如下命令切换即可,但是要注意上下文,所以一定要执行 /reset 清空上下文:

# 切换人设 /persona <你要切换的人格设定 ID 名称>
# 清空上下文,防止原人格对话影响现人格 /reset 

[图片:重置上下文]

再次测试一下新的人格设定,是否生效:

[图片:最终测试]

可以看到,成功的生效且分段回复啦,到这儿,人格设定创建和切换就搞定啦!

7. AstrBot 插件功能

前面我们已经配置好了人设相关配置了,接下来我们来添加一些插件,让它支持更多功能。我们回到后台页面,点击插件侧边菜单栏,在插件市场中可以看到许多的插件:

[图片:插件市场]

这里安装一个插件测试一下,以点歌插件为例,在右上角搜索音乐,找到点歌插件进行安装:

[图片:搜索插件]

在弹出的窗口中,可以选择使用 GitHub 加速,然后测试一下连通性,选择一个较低延迟的点击安装:

[图片:安装插件]

安装完成后弹出说明文档:

[图片:插件说明]

接着回到对话框发送指令测试一下:

/点歌 恋人(你想要点歌的歌曲名字) 

[图片:点歌测试]

可以看到成功的推送了这首歌的歌曲卡片给我,安装上了插件,就拥有了更多的玩法啦!

8. AstrBot 的 MCP 服务

到这一步,你的 QQ AI 机器人已经具备了基础对话能力和丰富的插件功能。但你可能会想:能不能让 AI 机器人更智能一点?比如自动查天气、查车票、搜索资料、执行复杂任务?这就是 MCP(Model Context Protocol,模型上下文协议) 要解决的问题。

8.1 什么是 MCP?

MCP 是一个由 Anthropic 提出的开放协议,它让 AI 模型能够通过标准化接口调用外部工具和服务。简单来说,MCP 就像给 AI 装上了'手和脚',让它不再局限于纯文本对话,而是能主动调用工具、获取实时信息、执行具体操作。

而 AstrBot 正是支持 MCP 协议的机器人框架之一。通过配置 MCP 服务,你的 QQ AI 机器人可以:

  • 🌤️ 实时查询天气、新闻、股票等信息
  • 🔍 联网搜索最新资料并总结回复
  • 🛠️ 执行自定义工具,比如数据库查询、API 调用等
  • 📊 处理复杂任务,让 AI 自主选择合适的工具组合完成目标

接下来,我们就来看看如何在 AstrBot 中启用和配置 MCP 服务,让你的 QQ AI 机器人真正'智能'起来。

8.2 安装 MCP 服务

回到 AstrBot 后台页面,点击侧边菜单栏的MCP,然后点击页面上的同步服务器按钮,在弹出的窗口中点击蓝色字体ModelScope 平台,进行跳转:

[图片:MCP 同步]

即如下地址,以 12306-mcp 为例,点击进入:

https://www.modelscope.cn/mcp 

[图片:ModelScope 页面]

进入后,点击滚动到下方,找到 MCP 服务器配置,点击复制按钮进行复制:

{"mcpServers":{"12306-mcp":{"command":"npx","args":["-y","12306-mcp"]}}}

[图片:复制配置]

复制下来后,回到 astrbot 后台页面,点击新增服务器按钮,然后在弹出的窗口中设置一个服务器名称,服务器配置部分内容粘贴先前复制下来的mcp 配置,最后点击测试,测试可用直接点击保存即可:

[图片:新增服务器]

8.3 测试 MCP 服务

接着,我们直接回到聊天对话窗口,询问一下我们之前配置好的 AI 机器人:

[图片:MCP 测试]

可以看到,完整的告诉了我普通的快速列车和高铁动车的相关车票信息,包含具体的列车号、出发时间、到达时间、座位及价格,完美的将 12306 的 MCP 服务接入进来啦!

9. 穿透 AstrBot 实现公网访问

到这一步,你的 QQ AI 机器人已经跑得很完美了——能聊天、能切换人设、能调用插件、还支持 MCP 服务。但很快你就会发现一个问题:人在外面想调整配置?不行,必须连家里的局域网。机器人突然不回复了?机器人直接'失联'。 这时候你会意识到,本地部署虽然简单,但'只能本地用'这个限制实在太致命。

不过转折就在这里:用 cpolar 做个内网穿透,几条命令搞定,你的 AstrBot 立刻拥有一个公网域名——这意味着你可以在地铁上用手机调机器人,切换 API key 相关操作,可以把管理面板发给异地的朋友访问查看。接下来,我们就用 cpolar 打通这'最后一公里'。

9.1 什么是 cpolar?

  • cpolar 是一款内网穿透工具,可以将你在局域网内运行的服务(如本地 Web 服务器、SSH、远程桌面等)通过一条安全加密的中间隧道映射至公网,让外部设备无需配置路由器即可访问。
  • 广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,并提供一键安装脚本方便部署。

9.2 下载 cpolar

打开 cpolar 官网的下载页面:https://www.cpolar.com/download

点击 立即下载 64-bit 按钮,下载 cpolar 的安装包:

[图片:下载页面]

下载后是一个压缩包,解压后执行目录中的应用程序,一路默认安装即可,安装完成后,打开 cmd 窗口输入如下命令确认安装:

cpolar version 

[图片:版本确认]

出现如上版本即代表安装成功!

9.3 注册及登录 cpolar web ui 管理界面

官网链接:https://www.cpolar.com/

访问 cpolar 官网,点击 免费注册 按钮,进行账号注册

[图片:注册页面]

进入到如下的注册页面进行账号注册:

[图片:注册表单]

注册完成后,在浏览器中输入如下地址访问 web ui 管理界面:

http://127.0.0.1:9200 

[图片:Web UI 登录]

输入刚才注册好的 cpolar 账号登录即可进入后台页面:

[图片:后台页面]

9.4 穿透 AstrBot

9.4.1 随机域名方式 (免费方案)

随机域名方式适合预算有限的用户。使用此方式时,系统会每隔 24 小时 左右自动更换一次域名地址。对于长期访问的不太友好,但是该方案是免费的,如果您有一定的预算,可以查看大纲 9.4.2 的固定域名方式,且访问更稳定。

点击左侧菜单栏的 隧道管理,展开进入 隧道列表 页面,页面下默认会有 2 个隧道:

  • remoteDesktop 隧道,指向 3389 端口,tcp 协议
  • website 隧道,指向 8080 端口,http 协议(http 协议默认会生成 2 个公网地址,一个是 http,另一个 https,免去配置 ssl 证书的繁琐步骤)

[图片:隧道列表]

点击编辑 website 的隧道,修改成我们 AstrBot 需要的信息:

接着,点击左侧菜单的 状态 菜单,接着点击 在线隧道列表 菜单按钮,可以看到有 2 个 astrbot-6185 的隧道,一个为 http 协议,另一个为 https 协议:

注意:每个用户创建的隧道显示的公网地址都不一样!

[图片:在线隧道列表]

接下来在浏览器中访问 astrbot-6185 隧道生成的公网地址(http 和 https 皆可),这里以 https 为例:

[图片:公网访问测试]

可以看到成功访问啦!

9.4.2 固定域名方式

通过前面的配置,我们已经成功实现了AstrBot的远程访问,但免费随机域名方案的局限性也逐渐显现:每24 小时左右自动更换域名地址,意味着你需要频繁更新书签、重新分享链接,甚至可能因为忘记更新而无法访问。固定域名方案正是为了解决这些痛点而生,能够让你拥有一个 永久不变的专属地址。

好啦,接下来开始固定保留二级子域名教程!

首先,进入官网的预留页面:

https://dashboard.cpolar.com/reserved 

选择 预留 菜单,即可看到 保留二级子域名 项,填写其中的 地区、名称、描述(可不填) 项,然后点击保留按钮,操作步骤图如下:

[图片:保留域名]

列表中显示了一条已保留的二级子域名记录:

  • 地区:显示为 China Top。
  • 二级域名:显示为 astrbot。

注:二级域名是唯一的,每个账号都不相同,请以自己设置的二级域名保留的为主

接着,进入侧边菜单栏的 隧道管理 下的 隧道列表,可以看到名为 astrbot-6185 的隧道,点击 编辑 按钮进入编辑页面:

[图片:编辑隧道]

修改域名类型为 二级子域名,然后填写前面配置好的子域名,点击更新按钮:

[图片:更新域名]

来到 状态 菜单下的 在线隧道列表 可以看到隧道名称为 astrbot-6185 的公网地址已经变更为 二级子域名 + 固定域名主体及后缀 的形式了:

[图片:固定域名列表]

这里以 https 协议做访问测试(加载稍慢,需耐心等待一下):

[图片:固定域名访问]

访问成功!这样一来,你就拥有了一个永久不变的专属域名,再也不用担心 24 小时域名更换的问题。

总结

本教程带你从零搭建了一个基于 AstrBot + NapCat 的 QQ AI 机器人,实现了 DeepSeek 智能对话、人设切换、插件扩展,并通过 MCP 协议增强 AI 能力和 cpolar 内网穿透让服务支持公网访问。

  • 使用 Docker 一键部署 AstrBot 和 NapCat,快速接入 DeepSeek AI 实现智能对话
  • 支持自定义人设切换、丰富插件生态和 MCP 服务,让机器人具备实时查询等扩展能力
  • 通过 cpolar 内网穿透实现公网访问,支持随机域名和固定域名方案

通过本教程,你可以快速搭建一个功能强大、随时在线的 QQ AI 机器人,既能满足个人使用,也能分享给朋友体验。

目录

  1. AstrBot 与 NapCat 部署智能 QQ 机器人及 cpolar 公网访问指南
  2. 1. 项目介绍
  3. 1.1 AstrBot 是什么?
  4. 1.2 NapCat 是什么?
  5. 2. 使用 Docker 一键部署 AstrBot + NapCat
  6. 3. 配置 NapCat
  7. 4. 配置 AstrBot 关联上 NapCat
  8. 4.1 初始化 AstrBot 配置
  9. 4.2 AstrBot 关联 NapCat
  10. 5. 配置 DeepSeek 接入 AstrBot 中
  11. 5.1 获取 DeepSeek 的 Api 密钥
  12. 5.2 将 API 密钥配置到 AstrBot 中
  13. 5.3 简单对话测试是否可用
  14. 6. 更换人设和配置文件相关修改
  15. 切换人设 /persona <你要切换的人格设定 ID 名称>
  16. 清空上下文,防止原人格对话影响现人格 /reset
  17. 7. AstrBot 插件功能
  18. 8. AstrBot 的 MCP 服务
  19. 8.1 什么是 MCP?
  20. 8.2 安装 MCP 服务
  21. 8.3 测试 MCP 服务
  22. 9. 穿透 AstrBot 实现公网访问
  23. 9.1 什么是 cpolar?
  24. 9.2 下载 cpolar
  25. 9.3 注册及登录 cpolar web ui 管理界面
  26. 9.4 穿透 AstrBot
  27. 9.4.1 随机域名方式 (免费方案)
  28. 9.4.2 固定域名方式
  29. 总结

更多推荐文章

查看全部
  • AI 变现底层逻辑:为何精通工具仍难盈利
  • 医疗连续体机器人模块化控制界面设计与 Python 库应用
  • Science Robotics 新突破:注意力机制结合强化学习实现足式机器人障碍穿越
  • GitHub Copilot 学生认证与使用指南
  • Redis 与分布式架构入门:从单机到微服务的演进之路
  • 前端首屏加载优化方案
  • 多模态 Agent 图像识别技能开发:JavaScript+Python 全栈图像处理方案
  • OpenClaw:开源自托管 AI Agent 框架技术解析
  • C++ STL list 容器详解:使用与模拟实现
  • 使用 CopilotKit 快速为前端集成 AI 助手实战指南
  • 前端如何编写优秀的 AI Agent Skills
  • Python接单指南
  • AI 与存储的结合:智能存储的实践与挑战
  • vphone-cli:在 macOS 上虚拟运行 iOS 系统的强大工具
  • OpenClaw 本地推理方案:基于 Ollama 部署开源模型降低 Token 成本
  • Antigravity 集成 Figma MCP 实现像素级还原 AI 编程
  • GitHub MCP Server 集成 AI 工具工作流指南
  • Linux 部署本地 AI 大模型与知识库集成指南
  • Virt-A-Mate v1.22 中文汉化整合版介绍
  • Java 结合 HanLP 分析各省旅游宣传口号相似度

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online