1. 先说结论:为什么 OpenClaw 这样的“本地大模型入口”会被部署拖垮
1.1 安装 OpenClaw 的典型崩溃现场
最近一段时间,我的搜索记录基本被“openclaw 安装教程”“openclaw 一键部署工具”“docker 本地部署 openclaw”这类词刷屏。原因很直接:这个开源的 AI 助手/代理框架确实好用,它能同时接微信、接飞书、接本机模型,还能当写作代理用,可以实现“让 AI 写小说”“让 AI 自动整理资料”这类操作。但它的部署过程,对绝大多数人来说并不友好。
我自己第一次装 OpenClaw 就折腾到凌晨。按文档拉完仓库,执行初始化脚本,结果报 Node 版本太低;换完 Node,又说系统缺少 Python 3.10;装完 Python,Docker 镜像拉取又超时。等终于把服务启动起来,浏览器打开控制台,页面白屏,提示 openclaw control ui did not start。这一步卡了我快两个小时,最后发现是配置文件里把前端服务端口写进了系统代理列表,请求被代理规则拦截了。
这不是运气问题,而是 OpenClaw 的定位决定的。它不是一个单文件工具,而是“模型接入 + 多渠道 + 控制面板 + 任务编排”的一套组合。组合意味着组件多,组件多意味着最容易出问题的不是某个组件,而是组件之间的连接方式。尤其是当你还要搭配 Ollama 本地部署、DeepSeek 模型下载、Dify 知识库这些环节时,整个链条的变量会呈指数级增加。
1.2 比“装不上去”更麻烦的是“跑起来之后没法远程用”
如果你只是在自己电脑上启动 OpenClaw,装完就完事了,其实问题不大。真正让部署难度爆炸的,是“这台电脑不能随身带着”这个现实情况。
家里那台能跑大模型的台式机,通常有显卡,有大内存,能本地跑 DeepSeek、Qwen 这类模型。可它放在书房,人不一定在书房。你想在上班路上让模型写一版方案,回家前把推理结果准备好;你想在地铁上用手机连回家里电脑,把一份文档丢给本地大模型处理;你想让家里这台机器变成一个小型 AI 服务节点,供群里的朋友通过飞书机器人调用。这些需求全都指向同一个问题:远程访问。
“远程”这两个字,在大家搜索的热词里反复出现,并不是巧合。很多人部署 OpenClaw 的最终目的,就是把它部署到一台固定机器上,然后从任意位置访问它。没有公网 IP、不会改路由器、不清楚端口映射,这些问题一旦出现,比装 OpenClaw 本身更劝退。
1.3 大家搜“远程”到底在搜什么:三个真实场景
把搜索词摊开看,会发现搜“远程”的人背后是三种完全不同需求。
场景一:人在公司,模型在家里。 公司电脑性能一般,家里电脑装了独显,跑模型要回家才能跑。所以需要远程桌面、远程终端,能把命令发回去,还能看到输出结果。
场景二:人是移动的,主机是固定的。 手机成了主要入口,要在手机上执行 ollama run deepseek-r1:7b,要能快速把生成的文档取回来。这种场景对“扫码即连”和移动端操作友好度要求很高,传统 SSH 客户端在手机上敲命令的体验实在一般。
场景三:OpenClaw 作为服务节点对外提供能力。 把它接入微信、飞书,其他群成员发消息,OpenClaw 调度本地模型回答。这种场景要求主机 24 小时在线,而且要有一个不依赖你手动拨号的稳定通道。
这三种场景叠加在一起,就形成了标题里说的需求:扫码即连,手机远程指挥家里电脑跑大模型。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. BitFun 龙虾版:它不是又一个“远程桌面”,而是把扫码这条路径直接接进主机
2.1 BitFun 是什么,“龙虾版”指什么
BitFun 是一款跨平台的远程连接工具,服务端不需要单独部署,在 Windows、macOS、Linux 上装好客户端,登录账号,机器就会被纳入你的设备列表。手机端安装对应 App,通过扫码或设备列表发起连接,之后就能用远程桌面、远程终端、文件传输这些能力。
“龙虾版”这个名字,在我看来更多是产品定位上的产物——配合 OpenClaw 这类名字里带“Claw”的项目,推出一个更轻、更聚焦的版本。交互上把“远程终端”和“文件传输”提到了首页,默认开启远程设备进程驻留策略。简单说,它就是给 AI 主机用户定制过权重的一种 BitFun 形态。
这个东西解决的关键问题,不是“能不能连上”,而是“怎么连得不痛苦”。你不需要申请公网 IP,不需要配置路由器的端口转发,不需要自己搭一套代理服务。它把连接过程压成了两步:电脑上显示一个二维码,手机上扫码确认,连接建立。
2.2 扫码连接与传统远程方案对比
我整理了一张对比表。做完对比之后,我才真正理解,为什么“扫码即连”对折腾 OpenClaw 的人群这么重要。
| 方案 | 需要公网IP | 需要中转服务器 | 手机端体验 | 对远程终端的支持 | 部署难度 |
|---|---|---|---|---|---|
| 路由器端口映射 + SSH | 需要 | 否 | 差,要额外配 SSH 客户端 | 好 | 高 |
| frp 内网转发 | 否 | 需要一台云服务器 | 一般 | 好 | 中 |
| 传统远程桌面软件 | 否 | 多数依赖中转 | 中,画面卡顿 | 弱 | 低 |
| BitFun 龙虾版 | 否 | 仅用于连接协商 | 好,原生终端 | 好 | 低 |
这里想特别说明一点:像 BitFun 这类工具,和“传统远程桌面”最大的区别在于,它提供的是原生远程终端。远程桌面是把屏幕内容压缩成一帧一帧的画面传到手机,看着直观,但跑大模型时终端里输出的 token 是一行一行刷出来的,画面传输会有明显延迟。而远程终端是纯文本传输,执行 ollama run 时,手机屏幕上能几乎同步看到模型生成过程,这种体验是远程桌面给不了的。
2.3 为什么适合跑大模型的机器
大模型主机和普通办公电脑的远程需求不太一样,它有三个特殊点。
第一,长时占用。模型推理任务动辄几十秒到几分钟,远程连接必须稳定,不能因为手机切个后台就断开。BitFun 对移动端后台保活做了优化,锁屏状态下连接不掉,这切中了远程跑模型的痛点。
第二,需要同时操作终端和文件。跑模型只是第一步,跑完之后的结果要拿回来。远程终端负责执行,文件传输负责搬运,两个能力要能无缝切换。BitFun 在移动端把终端和文件管理放在同一个会话里,拉起键盘就能输命令,切到文件页就能拖取结果。
第三,主机不能被轻易干扰。家里电脑没有专人维护,远程工具如果经常弹窗、要求重新登录、或者被安全软件误杀,那在线率就惨不忍睹。BitFun 注册为系统服务,支持开机自启和掉线自动重连,这一步对 24 小时在线的 AI 主机特别重要。
3. 完整落地:从一台空电脑到手机扫码指挥本地模型
下面是完整实操记录。我以一台 Ubuntu 22.04 主机为例,硬件 16G 内存,无独显,跑 7B 量化模型做 CPU 推理。如果你有 N 卡,过程一样,只是推理速度快很多。
3.1 前置准备与目录规划
准备清单:
- 一台固定主机,建议至少 16G 内存,磁盘预留 40G 以上
- 手机安装 BitFun App,Android 应用商店和 iOS App Store 都能找到
- 电脑上安装 BitFun 桌面客户端并注册登录
- 保持主机电源策略为“从不休眠”,合盖不睡眠
目录规划上,建议把数据集中管理,方便后面备份和排查:
code复制/data/ollama # 模型文件
/data/openclaw # 配置与日志
/data/workspace # 手机上传的素材和输出结果
为什么要单独划一个 /data/workspace?因为远程场景下,你会频繁在手机和主机之间传文件。没有统一目录,文件散落在各个路径,找起来非常痛苦。统一之后,手机端只用记住“上传到 /data/workspace/input,结果去 /data/workspace/output 拿”这一条规则,长期使用省心很多。
3.2 用 Ollama 把 DeepSeek/Qwen 本地跑起来
Ollama 是现在最省事的本地模型运行时,安装一条命令:
bash复制curl -fsSL https://ollama.com/install.sh | sh
安装完成先确认版本,再启动服务:
bash复制ollama --version
ollama serve
注意,ollama serve 默认只监听 127.0.0.1,也就是只允许本机访问。这一步非常关键,如果后面 OpenClaw 在容器里、或者想通过局域网直接调用 Ollama,必须把监听地址放开:
bash复制export OLLAMA_HOST=0.0.0.0
ollama serve
想让配置持久化,可以修改 systemd 服务,编辑 /etc/systemd/system/ollama.service,在 [Service] 段加上:
ini复制Environment="OLLAMA_HOST=0.0.0.0"
然后执行:
bash复制systemctl daemon-reload && systemctl restart ollama
拉取模型并验证:
bash复制ollama pull deepseek-r1:7b
ollama run deepseek-r1:7b "用一句话介绍你自己"
本地部署 DeepSeek 用这个命令就可以。如果机器配置更高,可以换 qwen2.5:14b 或更大尺寸。模型文件默认存在 ~/.ollama/models,如果你想让模型放在 /data/ollama,可以设置 OLLAMA_MODELS=/data/ollama 环境变量。
3.3 配置 OpenClaw 并把模型挂载上去
OpenClaw 的安装方式有好几种,我建议优先用 Docker 方式,隔离性好,后续升级方便。把 OpenClaw 仓库拉到 /data/openclaw,复制示例配置:
bash复制cd /data/openclaw
cp config.example.yaml config.yaml
核心配置是把模型 provider 指向本地 Ollama。以 Ollama 作为底座为例,config.yaml 里类似这样:
yaml复制model:
provider: ollama
base_url: http://127.0.0.1:11434
model: deepseek-r1:7b
api:
port: 3000
启动之前检查两个点:一是 OpenClaw 服务所在环境能不能访问 127.0.0.1:11434;二是控制台端口 3000 有没有被占用。
bash复制curl http://127.0.0.1:11434/api/tags
lsof -i :3000
确认没问题后启动:
bash复制node openclaw server start
如果你用 Docker Compose,注意网络模式。OpenClaw 容器要访问宿主机上的 Ollama,不能直接用 127.0.0.1,要用 host.docker.internal 或者把容器网络设为 host 模式:
yaml复制services:
openclaw:
image: openclaw/openclaw:latest
network_mode: host
restart: always
volumes:
- /data/openclaw:/data
启动完成后,本机浏览器打开 http://127.0.0.1:3000,能看到 OpenClaw 控制台,说明服务正常。
3.4 用 BitFun 龙虾版生成设备码和二维码
电脑端完成 BitFun 的安装注册之后,在“我的设备”页面选择“添加设备 / 生成二维码模式”,会把当前主机登记为一台可连接设备,并弹出一个二维码。
手机上打开 BitFun,使用扫码功能扫这个二维码,确认授权。授权通过后,这台电脑会出现在你的手机设备列表里。点进设备详情,能看到三个入口:
- 远程终端:适合执行命令行操作
- 文件传输:适合上传素材、下载结果
- 远程桌面:适合查看图形界面、操作浏览器
到这里,“扫码即连”已经完成。后续再连接不需要扫码,只要手机和电脑登录同一 BitFun 账号,设备列表里点一下就能直连。
4. 手机端实战:远程指挥的四种典型操作
连接只是开始,真正有价值的是连上之后你能做什么。我实际跑过的几个场景写在这里,每个都可以直接复制。
4.1 远程终端里跑模型推理
手机端打开 BitFun 远程终端,默认进入主机的 shell。直接执行:
bash复制ollama run deepseek-r1:7b "帮我写一篇 800 字的产品周报,主题是一个本地知识库工具"
这时候手机屏幕上会像电脑终端一样,逐字输出模型生成的文字。用移动网络和用 WiFi 体验差别不大,因为终端传输的只是文本数据。我在 4G 网络下试过,延迟基本可以忽略。
如果你想跑完就走,不盯着输出,可以用 nohup 把任务挂后台:
bash复制nohup ollama run deepseek-r1:7b "写一份明日待办" > /data/workspace/output/todo.md 2>&1 &
这个命令是远程跑模型最值得养成的习惯,后面我会在踩坑部分详细解释为什么必须这样做。
4.2 打开 OpenClaw 控制台查看任务状态
OpenClaw 的任务编排、插件状态都可以在控制台里看。在 BitFun 的“远程桌面”里打开主机浏览器,访问 http://127.0.0.1:3000,就能看到完整的管理界面。
如果只是快速看一眼状态,也可以用命令行方式:
bash复制node openclaw tasks list
推荐把常用的几条命令在手机终端里设成别名,能省不少事。我在 ~/.bashrc 里加了:
bash复制alias claw-status="node /data/openclaw/openclaw server status"
alias claw-log="tail -f /data/openclaw/logs/openclaw.log"
4.3 文件双向传输取结果
模型跑完,输出文件在主机上,手机上要拿走。打开 BitFun 文件传输,左边是手机目录,右边是主机目录,直接把 /data/workspace/output 下的文件拖到手机存储就行。
反向操作也很常见:在手机上拍一段录音,或者截一张图,传到 /data/workspace/input,然后用终端交给支持多模态的模型处理。
4.4 把手机上的素材直接丢给模型处理
举一个我实际用过的例子。周末在外,突然需要把一张照片里的文字整理出来。手机 BitFun 传文件到 /data/workspace/input/photo.png,远程终端执行:
bash复制cd /data/workspace/input && ollama run qwen2.5-vl:7b "识别这张图片里的文字,输出为 Markdown 列表"
输出会直接显示在手机上,不用再等回家处理。这一套流程跑顺了之后,家里那台电脑相当于变成了你的随身算力卡。
再比如“openclaw 写小说”这个场景,手机端只需要给 OpenClaw 发一段剧情梗概,OpenClaw 会调度本地模型完成续写,结果存到 /data/workspace/output/story.md,你用手机文件传输拖回来就能直接阅读。整个过程人不需要坐在电脑前。
5. 复盘:这次部署里最容易踩坑的五个位置及排查链路
这部分是真金白银换来的经验。每一个坑我都给出从现象到根因的排查链路,不是直接给结论。
5.1 坑一:OpenClaw 控制台提示 Control UI did not start
现象:服务进程起来了,但访问 3000 端口页面白屏,日志里有 control ui did not start。
排查链路:
- 先用
lsof -i :3000确认端口到底有没有进程监听。如果没监听,说明前端服务根本没有启动。 - 查看 OpenClaw 日志,重点看有没有前端构建失败、静态资源路径错误的报错。
- 检查当前目录权限。OpenClaw 的 web 资源目录如果对运行用户不可读,服务会静默跳过 UI 启动。
- 检查系统代理。环境变量里设了 HTTP 代理会导致本地请求走到代理,从而启动失败,这是最隐蔽的原因。
修复:确认 web 目录权限,去掉代理环境变量,重启服务。
5.2 坑二:Ollama 只监听本地,远程调用直接拒绝
现象:在 BitFun 远程终端里执行 curl http://127.0.0.1:11434/api/tags 正常,但从 OpenClaw 容器里访问同一个地址,报 connection refused。
排查链路:
- 看 Ollama 监听地址:
ss -tlnp | grep 11434。如果显示127.0.0.1:11434,说明只有本机能访问。 - 在宿主机上
curl测试成功,不能代表容器能访问成功。 - 确认 OpenClaw 服务调用的是
host.docker.internal:11434还是127.0.0.1:11434。
修复:设置 OLLAMA_HOST=0.0.0.0 重启 Ollama;容器内 base_url 改成 http://host.docker.internal:11434。
5.3 坑三:BitFun 扫码后显示“连接超时”
现象:手机扫二维码,提示连接超时,但电脑端明明在线。
排查链路:
- 确认两端登录的是同一个账号。扫码授权不等于账号绑定。
- 检查路由器 NAT 类型。部分路由器严格限制 UDP 打洞,BitFun 会退回中转模式,如果中转节点状态异常就会超时。
- 在电脑端 BitFun 里看连接日志,是否有“P2P 协商失败”的记录。
- 尝试手机切换到另一个网络(4G/5G)重连。如果从 WiFi 换成 4G 能连上,问题大概率在本地 WiFi 的 AP 隔离设置上。
修复:关闭路由器 AP 隔离,或把 BitFun 电脑端加进“允许互相访问”列表。
5.4 坑四:手机锁屏后远程任务被中断
现象:在手机远程终端里执行一个长任务,手机锁屏几分钟后回来,任务没输出,甚至连接断开了。
原因:两个层面。第一,移动端 App 在后台被系统休眠;第二,就算连接没断,终端里的任务是通过交互式 shell 运行的,shell 会话被中断,任务也就停了。
修复:任务一律用 nohup ... & 或 tmux 运行,保证和会话解耦。手机端在 Android 设置里允许 BitFun 后台自启动,在 iOS 里允许后台 App 刷新。
提到 tmux,再补一句:在远程主机上常驻一个 tmux session,所有重要任务都在 tmux 里跑,就算手机 App 被杀、网络切换,回到终端后 tmux attach 就能恢复到原来的界面。这是远程跑模型最稳的组合拳。
5.5 坑五:Docker 部署模式下端口映射冲突
现象:OpenClaw 用 Docker 部署后,日志一直报无法连接 Ollama,但宿主机上 Ollama 是正常的。
原因:Docker 容器默认是桥接网络,容器里的 127.0.0.1 指向容器自己,不是宿主机。
修复:容器网络改成 host 模式最省事;不想用 host 模式,就配置 extra_hosts:
yaml复制extra_hosts:
- "host.docker.internal:host-gateway"
然后把 base_url 改成 http://host.docker.internal:11434。
6. 部署后的扩展玩法:其实它已经是一台 24 小时在线副机
6.1 把 OpenClaw 接入微信、飞书
OpenClaw 比较吸引人的地方是渠道接入能力。在配置里启用微信或飞书 channel,填入对应凭证,OpenClaw 就会把本地模型能力暴露成聊天机器人。对接飞书相对稳定,企业内使用比较顺手;微信方面需要注意账号风控,建议用小号或者企业微信渠道,长期挂机前先做一下验证。
电话里、地铁上,直接在聊天框里发一句“今天的待办总结一下”,OpenClaw 调用本地 DeepSeek 跑一轮,把结果发回群里。整个链路里你没有带电脑,也没有开任何重型工具,只有一个聊天窗口。
6.2 VSCode Remote SSH 回来写代码
再进一步,是远程开发场景。BitFun 建立连接后,你可以在电脑上确认 SSH 服务是否开启。Ubuntu 下安装并启动:
bash复制sudo apt install openssh-server
sudo systemctl enable --now ssh
之后在手机上用 BitFun 的远程终端生成 SSH 隧道,或者直接在 BitFun 设置里开启“远程端口转发”,把主机的 22 端口映射出来。VSCode 里安装 Remote-SSH 插件,连接目标填 用户@主机,就能在办公室直接打开家里电脑上的代码目录。
对于没有云服务器的人,这个方案的吸引力在于:你既拥有了大模型的本地算力,也不必为云主机再掏一笔钱。
6.3 一套显卡资源,多种模型服务
如果你家里电脑有 N 卡,其实可以跑不止一个模型服务。Ollama 负责交互式推理,Dify 可以做知识库应用,还可以用 vLLM 起一个 OpenAI 兼容 API,给其他项目调用。OpenClaw 作为统一入口,根据任务类型分发到不同模型。
以 24G 显存的显卡为例,常见的分配方案是:
- qwen2.5:7b 跑日常问答
- deepseek-r1:7b 跑推理和写作
- qwen2.5-vl:7b 跑多模态识别任务
在 Ollama 里三个模型并行常驻,显存占用大概 18G 左右,剩 6G 留给系统和其他服务。这套方案对显存调度比较敏感,建议通过 ollama ps 观察显存占用,不要让太多模型同时驻留。
6.4 一个习惯性的收尾建议
把整个方案跑通之后,我最大的
