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

AstrBot+NapCat 一键部署智能 QQ 机器人及 cpolar 公网访问配置

基于 Docker 的一键部署方案,将 AstrBot 与 NapCat 结合实现 QQ 智能机器人。内容涵盖 NapCat 登录配置、DeepSeek AI 模型接入、自定义人设设置、插件扩展(如点歌)、MCP 服务启用以及使用 cpolar 进行内网穿透实现公网访问的完整流程。

随缘发布于 2026/4/6更新于 2026/9/12117 浏览
AstrBot+NapCat 一键部署智能 QQ 机器人及 cpolar 公网访问配置

AstrBot+NapCat 一键部署智能 QQ 机器人及 cpolar 公网访问配置

这篇教程会带你用最简单的方式:只用一份 docker-compose,一次命令,5 分钟以内完成 AstrBot + NapCat 部署,把 DeepSeekAI 接入你的 QQ。AstrBot 本身就是为 AI 而生的现代化机器人框架,插件丰富、支持 DeepSeek/OpenAI 等大模型、带 WebUI、可扩展性强,真正做到搭好就能用。

1 项目介绍

1.1 AstrBot 是什么?

image-20251123183333728

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

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

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

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

image-20251123200910304

可以看到,命令执行了检查 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 

image-20251123203853914

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

http://localhost:6099 

image-20251123203901885

好啦,都访问成功啦!

3 配置 NapCat

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

http://localhost:6099/ 

image-20251123205348634

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

image-20251123205444935

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

docker logs napcat | Select-String "Token"

image-20251123210323569

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

image-20251123205533979

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

image-20251123210534466

4 配置 AstrBot 关联上 NapCat

4.1 初始化 AstrBot 配置

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

http://localhost:6185 

image-20251123210740085

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

image-20251123210830583

4.2 AstrBot 关联 NapCat

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

image-20251123211152800

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

image-20251123211411957

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

image-20251123211819688

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

5 配置 DeepSeek 接入 AstrBot 中

5.1 获取 DeepSeek 的 Api 密钥

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

https://platform.deepseek.com 

image-20251123212312595

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

image-20251123212412923

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

image-20251123212454913

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

5.2 将 API 密钥配置到 AstrBot 中

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

image-20251123213212109

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

image-20251123213521325

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

image-20251123213608969

5.3 简单对话测试是否可用

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

image-20251123214128707

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

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

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

image-20251124095024827

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

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

image-20251124095151804

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

image-20251124100820821

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

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

image-20251124102106235

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

/persona 

image-20251124103153219

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

/persona list 

image-20251124103302095

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

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

image-20251124103450166

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

image-20251124103547234

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

image-20251124103742684

接着再来发送测试一下:

image-20251124103856180

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

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

image-20251124104244203

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

image-20251124104311795

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

7 AstrBot 插件功能

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

image-20251124113803564

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

image-20251124114659439

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

image-20251124115256225

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

image-20251124115341542

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

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

image-20251124115515662

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

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 平台,进行跳转:

image-20251124133852557

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

https://www.modelscope.cn/mcp 

image-20251124134022977

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

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

image-20251124134112637

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

image-20251124134422796

8.3 测试 MCP 服务

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

image-20251124134847881

可以看到,完整的告诉了我普通的快速列车和高铁动车的相关车票信息,包含具体的列车号、出发时间、到达时间、座位及价格,完美的将 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 的安装包:

image-20250815171202537

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

cpolar version 

image-20250815171446129

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

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

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

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

image-20250804085039567

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

image-20250804085208319

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

http://127.0.0.1:9200 

image-20250815171734046

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

image-20250815171846757

9.4 穿透 AstrBot
9.4.1 随机域名方式 (免费方案)

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

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

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

image-20250914174356363

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

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

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

image-20251124163228676

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

image-20251124163410726

可以看到成功访问啦!

9.4.2 固定域名方式

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

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

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

https://dashboard.cpolar.com/reserved 

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

image-20251124164228056

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

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

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

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

image-20251124164327252

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

image-20251124165221495

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

image-20251124165819401

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

image-20251124165834465

访问成功!这样一来,你就拥有了一个永久不变的专属域名,再也不用担心 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. 总结

更多推荐文章

查看全部
  • 无需公网 IP 安全访问本地 AI 服务的方案
  • MySQL 8.0 详细安装与配置指南
  • 商铺分页查询逻辑导致前端滚动异常修复
  • AI 大模型起源与发展详解
  • 前端 html2canvas 使用场景详解
  • Amazon SageMaker 部署 AIGC 应用:训练优化及 Web 前端集成实践
  • B 站 PC 端自动字幕脚本:快捷键控制与自动开启
  • CentOS 7 安装 Nginx
  • AI-Goofish-Monitor 闲鱼智能监控工具使用指南
  • 在浏览器里跑 FRCRN:WebAssembly 轻量化部署实录
  • 链表算法专题:常用技巧与经典题目解析
  • 贪心算法专题:最大子段和与纪念品分组
  • 思维链(CoT)原理探究:基于实证研究的元素分析
  • 推进AI大模型在金融行业应用的五项建议
  • 高鋒集團合夥人黃俊瑯:以資本與生態賦能傳統企業 Web3 轉型
  • 2024-2025 主流开源 TTS 模型综合对比分析
  • AI 写作辅助平台指南:炼字工坊与蛙蛙写作
  • 2015 款 MacBook Pro 运行最新 macOS 技术指南
  • 网络安全面试115问:从信息收集到应急响应,按模块整理
  • 66 个机器人项目合集:科研、教育、工业与医疗资源整理

相关免费在线工具

  • 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