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

Linux 部署 Ollama+Qwen+OpenClaw 对接飞书本地大模型

在 Linux Ubuntu 系统上部署本地大模型的完整流程。首先通过 Ollama 运行轻量级 Qwen3.5 模型,接着安装配置 OpenClaw 平台,选择自定义 Provider 接入本地 Ollama 服务。通过 SSH 端口转发访问可视化界面,并进一步配置飞书机器人实现集成。最终实现无 API 限制、可离线使用的本地 AI 服务,支持 Web 交互及飞书消息推送。

ArchDesign发布于 2026/3/30更新于 2026/9/1070 浏览
Linux 部署 Ollama+Qwen+OpenClaw 对接飞书本地大模型

基于当前 AI 的使用程度,定制化需求和考虑离线使用 AI 问题,本地部署 AI 成为一种趋势。

一、了解 Ollama 和 OpenClaw

技术栈为:Ollama、OpenClaw、Qwen 大模型

二、部署 Ollama 并运行 Qwen 大模型

1. 下载 Ollama

可在官网下载安装包,或使用安装脚本:

curl -fsSL https://ollama.com/install.sh | bash

2. Ollama 引入 Qwen 模型

本机 Ubuntu 虚拟机部署,选择轻量级模型:

ollama run qwen3.5:2b

跑起来查看是否可以进行问答操作。

Ollama 基础命令
  • 退出对话:Ctrl+D
  • 查看部署模型:ollama list
  • 运行模型:ollama run <指定模型 + 版本>

3. 部署 OpenClaw

环境准备

排查是否有 Node.js 且版本 >= 22。Node 安装脚本如下:

# 下载并安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
# 加载 nvm
. "$HOME/.nvm/nvm.sh"
# 下载并安装 Node.js
nvm install 24
# 验证 Node.js 版本
node -v
# 应打印 "v24.14.0"
# 验证 npm 版本
npm -v
# 应打印 "11.9.0"
OpenClaw 安装
Linux
curl -fsSL https://openclaw.ai/install.sh | bash
# 或跳过引导
# curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
Windows
iwr -useb https://openclaw.ai/install.ps1 | iex
# 或
&([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1)))-NoOnboard
OpenClaw 安装向导

在安装向导中,先不选择接入 Qwen 模型,全部跳过,后续在配置里面接入 Ollama。 执行初始化向导:

openclaw onboard --install-daemon

执行完初始化向导后,进行 OpenClaw 配置:

openclaw config

选择 local 后,再选择 Mode。如果直接选择 Qwen 的话部署的是在线模型,是有 token 限制的,我们是本地部署,选择 Custom Provider 进入后自定义模型配置。 Ollama 的地址我这里是 172.0.0.1:11434。

根据提示下 API Base URL 输入地址 http://172.0.0.1:11434/v1 (必须加上 v1,因为 Ollama 识别到请求的 OpenApi 就是 http://172.0.0.1:11434/v1/XXXXXX,OpenClaw 默认不给你加 v1,你必须自己手动加)。

设置 APIKEY,因为我们跑的是本地模型,不存在 APIKEY,这里我们直接随便输入或者敲回车略过就行。 提示 Endpoint compatibility(API 端点兼容性设置),如下图,选择 OpenAI-compatible。

根据提示输入 ModeID: 因为之前拉取的是 qwen3.5:2b,这里 Model Id 直接输入 qwen3.5:2b,回车后 OpenClaw 直接拉取并配置 Ollama 下 qwen3.5:2b 模型。

配置别名:下面会填写好几个别名,这里就没有什么讲究了,起完别名自己记住就行了。 最后配置完成之后,选择 Continue 提交退出。

4. OpenClaw 跑本地 Qwen 模型

# 启动网关
openclaw gateway
# 打开 UI 页面
openclaw dashboard

5. 访问 OpenClaw 可视化页面

由于 OpenClaw 不提供外部源访问,这里直接用 SSH 端口转发方式进行主机端访问:

# 192.168.1.44 为 linux 服务器的 IP
ssh -N -L 18789:127.0.0.1:18789 [email protected]

根据提示访问:http://localhost:18789/#token=...

OpenClaw 接入飞书

1. 飞书配置

打开飞书开放平台,创建企业自建应用。

2. 配置飞书机器人和应用权限

配置机器人

按照界面指引创建机器人。

应用开通权限

批量导入权限(直接复制):

{
  "scopes": {
    "tenant": [
      "base:app:copy",
      "base:app:create",
      "base:app:read",
      "base:app:update",
      "base:collaborator:create",
      "base:collaborator:delete",
      "base:collaborator:read",
      "base:dashboard:copy",
      "base:dashboard:read",
      "base:field:create",
      "base:field:delete",
      "base:field:read",
      "base:field:update",
      "base:form:read",
      "base:form:update",
      "base:record:create",
      "base:record:delete",
      "base:record:read",
      "base:record:retrieve",
      "base:record:update",
      "base:role:create",
      "base:role:delete",
      "base:role:read",
      "base:role:update",
      "base:table:create",
      "base:table:delete",
      "base:table:read",
      "base:table:update",
      "base:view:read",
      "base:view:write_only",
      "bitable:app",
      "bitable:app:readonly",
      "board:whiteboard:node:create",
      "board:whiteboard:node:delete",
      "board:whiteboard:node:read",
      "board:whiteboard:node:update",
      "contact:contact.base:readonly",
      "contact:user.base:readonly",
      "contact:user.employee_id:readonly",
      "contact:user.employee_number:read",
      "contact:user.id:readonly",
      "docs:doc",
      "docs:doc:readonly",
      "docs:document.comment:create",
      "docs:document.comment:read",
      "docs:document.comment:update",
      "docs:document.comment:write_only",
      "docs:document.content:read",
      "docs:document.media:download",
      "docs:document.media:upload",
      "docs:document.subscription",
      "docs:document.subscription:read",
      "docs:document:copy",
      "docs:document:export",
      "docs:document:import",
      "docs:event.document_deleted:read",
      "docs:event.document_edited:read",
      "docs:event.document_opened:read",
      "docs:event:subscribe",
      "docs:permission.member",
      "docs:permission.member:auth",
      "docs:permission.member:create",
      "docs:permission.member:delete",
      "docs:permission.member:readonly",
      "docs:permission.member:retrieve",
      "docs:permission.member:transfer",
      "docs:permission.member:update",
      "docs:permission.setting",
      "docs:permission.setting:read",
      "docs:permission.setting:readonly",
      "docs:permission.setting:write_only",
      "docx:document",
      "docx:document.block:convert",
      "docx:document:create",
      "docx:document:readonly",
      "drive:drive",
      "drive:drive.metadata:readonly",
      "drive:drive.search:readonly",
      "drive:drive:readonly",
      "drive:drive:version",
      "drive:drive:version:readonly",
      "drive:export:readonly",
      "drive:file",
      "drive:file.like:readonly",
      "drive:file.meta.sec_label.read_only",
      "drive:file:download",
      "drive:file:readonly",
      "drive:file:upload",
      "drive:file:view_record:readonly",
      "event:ip_list",
      "im:app_feed_card:write",
      "im:biz_entity_tag_relation:read",
      "im:biz_entity_tag_relation:write",
      "im:chat",
      "im:chat.access_event.bot_p2p_chat:read",
      "im:chat.announcement:read",
      "im:chat.announcement:write_only",
      "im:chat.chat_pins:read",
      "im:chat.chat_pins:write_only",
      "im:chat.collab_plugins:read",
      "im:chat.collab_plugins:write_only",
      "im:chat.managers:write_only",
      "im:chat.members:bot_access",
      "im:chat.members:read",
      "im:chat.members:write_only",
      "im:chat.menu_tree:read",
      "im:chat.menu_tree:write_only",
      "im:chat.moderation:read",
      "im:chat.tabs:read",
      "im:chat.tabs:write_only",
      "im:chat.top_notice:write_only",
      "im:chat.widgets:read",
      "im:chat.widgets:write_only",
      "im:chat:create",
      "im:chat:delete",
      "im:chat:moderation:write_only",
      "im:chat:operate_as_owner",
      "im:chat:read",
      "im:chat:readonly",
      "im:chat:update",
      "im:datasync.feed_card.time_sensitive:write",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.group_msg",
      "im:message.p2p_msg:readonly",
      "im:message.pins:read",
      "im:message.pins:write_only",
      "im:message.reactions:read",
      "im:message.reactions:write_only",
      "im:message.urgent",
      "im:message.urgent.status:write",
      "im:message.urgent:phone",
      "im:message.urgent:sms",
      "im:message:readonly",
      "im:message:recall",
      "im:message:send_as_bot",
      "im:message:send_multi_depts",
      "im:message:send_multi_users",
      "im:message:send_sys_msg",
      "im:message:update",
      "im:resource",
      "im:tag:read",
      "im:tag:write",
      "im:url_preview.update",
      "im:user_agent:read",
      "sheets:spreadsheet",
      "sheets:spreadsheet.meta:read",
      "sheets:spreadsheet.meta:write_only",
      "sheets:spreadsheet:create",
      "sheets:spreadsheet:read",
      "sheets:spreadsheet:readonly",
      "sheets:spreadsheet:write_only",
      "space:document.event:read",
      "space:document:delete",
      "space:document:move",
      "space:document:retrieve",
      "space:document:shortcut",
      "space:folder:create",
      "wiki:member:create",
      "wiki:member:retrieve",
      "wiki:member:update",
      "wiki:node:copy",
      "wiki:node:create",
      "wiki:node:move",
      "wiki:node:read",
      "wiki:node:retrieve",
      "wiki:node:update",
      "wiki:setting:read",
      "wiki:setting:write_only",
      "wiki:space:read",
      "wiki:space:retrieve",
      "wiki:space:write_only",
      "wiki:wiki",
      "wiki:wiki:readonly"
    ]
  }
}
事件配置回调与版本发布

订阅方式设置成使用 长连接 接收事件后再进行最后版本发布。

3. OpenClaw 配置飞书

按照配置指导会让输入飞书应用的 App ID、App Secret,直接拷贝就行。 按照下图步骤,选择输入完成后,进行 finished。

4. 飞书访问白名单

访问时会回复没有权限。 解决办法:

  1. 在终端直接输入 openclaw pairing approve feishu <你的 App ID> 敲回车。
  2. 配置飞书白名单:
# 直接修改配置文件
openclaw config set channels.feishu.dmPolicy "allowlist"
# 这里 ou_63985fc0b877330b926df092b8145XXX 修改为你的 user id
openclaw config set security.allowlist "[\"ou_63985fc0b877330b926df092b8145XXX\"]"
  1. 直接一键关闭白名单:
openclaw config set security.dmPolicy pass

设置完成之后一定要记得重启网关 openclaw gateway restart。

总结

本文完整讲解了 Linux 系统离线部署 ollama + Qwen 本地大模型 + OpenClaw 可视化平台的全套流程,核心目标是搭建无 API 限制、可离线使用的本地 AI 服务。

核心组件

  • Ollama:快速运行、管理本地大模型
  • Qwen3.5:2b:轻量、高效的离线大模型
  • OpenClaw:提供 Web 可视化聊天界面

关键部署步骤

  1. 安装 Ollama 并拉取运行 qwen3.5:2b 模型
  2. 安装 Node.js 环境,部署 OpenClaw 平台
  3. 核心配置:OpenClaw 选择 Custom Provider,以 OpenAI 兼容模式接入本地 Ollama
  4. 必须填写:API 地址末尾加 /v1 → http://127.0.0.1:11434/v1
  5. 模型 ID 填写 qwen3.5:2b,API Key 留空或随便填

最终效果

  • 本地运行大模型,无 API 限流、无网络依赖、完全隐私
  • 通过 OpenClaw Web 界面可视化交互
  • 支持 SSH 端口转发,在本地电脑访问服务器上的服务
  • OpenClaw 成功接入飞书

目录

  1. 一、了解 Ollama 和 OpenClaw
  2. 二、部署 Ollama 并运行 Qwen 大模型
  3. 1. 下载 Ollama
  4. 2. Ollama 引入 Qwen 模型
  5. Ollama 基础命令
  6. 3. 部署 OpenClaw
  7. 环境准备
  8. 下载并安装 nvm
  9. 加载 nvm
  10. 下载并安装 Node.js
  11. 验证 Node.js 版本
  12. 应打印 "v24.14.0"
  13. 验证 npm 版本
  14. 应打印 "11.9.0"
  15. OpenClaw 安装
  16. Linux
  17. 或跳过引导
  18. curl -fsSL https://openclaw.ai/install.sh | bash -s -- --no-onboard
  19. Windows
  20. 或
  21. OpenClaw 安装向导
  22. 4. OpenClaw 跑本地 Qwen 模型
  23. 启动网关
  24. 打开 UI 页面
  25. 5. 访问 OpenClaw 可视化页面
  26. 192.168.1.44 为 linux 服务器的 IP
  27. OpenClaw 接入飞书
  28. 1. 飞书配置
  29. 2. 配置飞书机器人和应用权限
  30. 配置机器人
  31. 应用开通权限
  32. 事件配置回调与版本发布
  33. 3. OpenClaw 配置飞书
  34. 4. 飞书访问白名单
  35. 直接修改配置文件
  36. 这里 ou_63985fc0b877330b926df092b8145XXX 修改为你的 user id
  37. 总结
  38. 核心组件
  39. 关键部署步骤
  40. 最终效果

更多推荐文章

查看全部
  • 前端 html2canvas 使用场景详解
  • 易语言高级进阶:混合编程、系统底层与开源生态
  • VSCode Copilot 接入智谱 GLM-4.6 实战指南
  • 使用 Rokid 灵珠平台搭建旅游 AR 智能体
  • 渗透测试基本流程与工具使用指南
  • C++ 异常:从基础用法到避不开的坑
  • 开源轻小说机翻机器人:架构解析与快速部署
  • 快速排序:划分方法、优化与非递归实现
  • Python 数据分析入门:基础统计与 Excel 处理
  • Aurora 8B/10B 配置实战:从物理层到共享逻辑的避坑笔记
  • 我用Openclaw + Claude搭了一套自动写作系统,每天省3小时
  • Qwen3-VL-32B 多卡部署实战:vLLM 通信瓶颈与 llama.cpp 优化方案
  • FPGA 实现 MIPI 协议解析与时序规范
  • YOLOv8 模型部署至高通 RB5 边缘推理平台实战
  • 在 Cursor 中配置和使用 MCP 服务
  • Python Web 开发实战:基于 Flask + Vue 构建数字孪生平台
  • 新能源汽车电机热网络温度预测模型技术解析
  • Java 环境搭建与首个 Hello World 实战指南
  • Visual Studio 禁用 GitHub Copilot 代码提示的操作指南
  • 基于 Langchain4j 的 Java AI 医疗助手开发实战

相关免费在线工具

  • 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