返回资源大厅
返回
免费

旧手机别扔!三台安卓手机搭建本地大模型实战指南

h
hacker2026-06-23 12:24:39
AI与前沿 29 0

旧手机别扔!三台安卓手机搭建本地大模型实战指南

从 4GB 老爷机到 12GB 千元机,手把手教你在手机上跑 Ollama,搭建私有 AI 服务器


写在前面

很多人以为跑大模型必须买显卡、配服务器。但其实,你抽屉里吃灰的旧手机就能跑。

我手头有三台安卓设备,配置从弱到强:华为畅享 9 Plus(4GB)、OnePlus 3(6GB)、vivo Y300i(12GB)。经过一周折腾,全部成功部署 Ollama,实现了手机端本地推理

这篇文章把整个过程记录下来,包括硬件选型、模型选择、常见坑和最终推荐配置。


一、硬件清单:三台设备概况

设备 RAM 处理器 系统 定位
vivo Y300i 12GB 天玑 Android + Termux 主力机
OnePlus 3 6GB 骁龙 820 Kali NetHunter 备用机/7×24 服务器
华为畅享 9 Plus 4GB 麒麟 710 EMUI + Termux 极弱,勉强跑

关键结论

  • 12GB 内存:可以流畅跑 7-8B 模型,体验接近 GPT-3.5
  • 6GB 内存:可以跑 3-4B 模型,代码补全够用
  • 4GB 内存:只能跑 0.5B 极限小模型,聊胜于无

二、环境准备

2.1 安装 Termux(普通安卓)

# 通过 F-Droid 安装 Termux(不要用 Google Play 版本,太旧)
# 安装后更新并安装基础工具
pkg update && pkg upgrade
pkg install wget proot  # proot 用于运行 Linux 环境

2.2 Kali NetHunter(OnePlus 3 专属)

OnePlus 3 刷了 Kali NetHunter,自带完整 Linux 环境,不需要 Termux 那一层。

优势:

  • 功耗低(骁龙 820 比天玑省电)
  • 适合 7×24 开机当服务器
  • 直接跑 ollama serve 暴露给局域网

2.3 安装 Ollama

# 所有设备通用安装命令
curl -fsSL https://ollama.com/install.sh | sh

# 安装后验证
ollama --version

如果官方脚本不兼容(常见于 ARM 设备),手动下载 ARM64 二进制:

# 下载 ARM64 版本
wget https://github.com/ollama/ollama/releases/latest/download/ollama-linux-arm64.tar.gz
tar -xzf ollama-linux-arm64.tar.gz

# OnePlus 3 手动安装示例
mkdir -p ~/Ollama/bin
mv ollama ~/Ollama/bin/

三、模型选型与 L 等级

3.1 什么是 L 等级

L 等级是我根据社区经验和实测得出的能力分级:

等级 能力描述 对标
L1 闲聊、讲笑话、极简单问答
L2 知识问答、简单写作、基础理解 GPT-3
L3 复杂推理、代码生成、长文写作 GPT-3.5
L4 强推理、专业代码、接近人类专家 GPT-4o / Claude Sonnet

手机端一般能达到 L2-L3,日常使用足够了。

3.2 vivo Y300i(12GB)可用模型

模型 大小 L等级 拉取命令
qwen3:8b 5.2GB L3+ ollama pull qwen3:8b
qwen2.5-coder:7b 4.7GB L3 ollama pull qwen2.5-coder:7b
qwen2.5-coder:14b 9.0GB L3+ ollama pull qwen2.5-coder:14b
qwen3:14b 9.3GB L3+ ollama pull qwen3:14b
qwen3:4b 2.5GB L2+ ollama pull qwen3:4b

推荐组合

ollama pull qwen3:8b              # 通用主力,综合能力强
ollama pull qwen2.5-coder:7b      # 写代码专用

14B 虽然能跑但接近内存上限,推理速度会明显下降,不太推荐。

3.3 OnePlus 3 Kali(6GB)可用模型

模型 大小 L等级 拉取命令
qwen3:4b 2.5GB L2+ ollama pull qwen3:4b
qwen2.5-coder:3b 1.9GB L3 ollama pull qwen2.5-coder:3b
qwen3:1.7b 1.4GB L2 ollama pull qwen3:1.7b
qwen2.5-coder:1.5b 986MB L2 ollama pull qwen2.5-coder:1.5b
qwen3:0.6b 523MB L1 ollama pull qwen3:0.6b
tinyllama:1.1b 638MB L1 ollama pull tinyllama

推荐组合

ollama pull qwen3:4b              # 主力通用
ollama pull qwen2.5-coder:3b      # 代码专家(这反而是 L3!)

注意:6GB 跑不了 8B 模型(需要 5.5GB 内存,系统不够用)。

3.4 华为畅享 9 Plus(4GB)可用模型

模型 大小 L等级 拉取命令
qwen2.5-coder:0.5b 398MB L1 ollama pull qwen2.5-coder:0.5b
qwen3:0.6b 523MB L1 ollama pull qwen3:0.6b
tinyllama:1.1b 638MB L1 ollama pull tinyllama

唯一实用选择qwen2.5-coder:0.5b,能做简单代码补全。说实话 4GB 设备跑大模型的体验很差,建议考虑卖掉换钱。


四、启动与联网

4.1 暴露到局域网

默认情况下 Ollama 只监听 127.0.0.1,其他设备无法访问。需要修改启动参数:

# 暴露给局域网(所有设备都能连)
OLLAMA_ORIGINS=* OLLAMA_HOST=0.0.0.0:11434 ollama serve &

# OnePlus 3(手动安装版)
OLLAMA_ORIGINS=* OLLAMA_HOST=0.0.0.0:11434 ~/Ollama/bin/ollama serve &

4.2 获取手机 IP

# Termux / Kali 通用
ip addr show wlan0 | grep "inet " | awk '{print $2}'
# 输出类似:192.168.1.10/24 → IP 是 192.168.1.10

4.3 从电脑连接

电脑端通过 WorkBuddy MCP、Chatbox 等客户端连接手机上的 Ollama:

# 在电脑上测试连接
curl http://192.168.1.10:11434/api/tags

4.4 SSH 远程管理

# 从电脑 SSH 到 vivo(Termux)
ssh [email protected] -p 8022

# 从电脑 SSH 到 OnePlus 3(Kali,默认 22 端口)
ssh [email protected]

五、Chatbox 连接配置

Chatbox 是手机上常用的 AI 聊天客户端。

连接方式:选择「Ollama 原生模式」,不要选「OpenAI Compatible」。

配置项
协议 HTTP
主机 你手机的 IP(如 192.168.1.10
端口 11434
模型路径 自动识别(不需要填 /v1

常见错误:如果选了 OpenAI 格式,会返回 403 错误——Chatbox 发的是 /v1/chat/completions,Ollama 不认。


六、踩坑实录 —— 我亲自趟过的雷

整个部署过程横跨三台设备、两种系统(Android Termux + Kali NetHunter),踩过的坑比成功多得多。以下是完整的「翻车记录 + 修复过程」。


坑① 第一次就跑 bf16 模型,直接被 OOM Kill

场景:vivo Y300i(12GB),满怀期待地在 Termux 里执行了第一条命令:

ollama run qwen3.5:2b-bf16

报错

signal: killed

原因:bf16(bfloat16)是 HuggingFace 上的原始权重格式,qwen3.5:2b-bf16 并非 Ollama 标准 tag(标准 tag 是 qwen3.5:2b,默认 q4_K_M 量化)。bf16 加载到内存后实际占用 5-6GB,Android 的 OOM Killer 检测到进程吃太多内存,直接杀掉。

后来不死心又试了一次,这次侥幸加载成功了,但推理到一半又炸了:

unexpected EOF

——内存不够了,进程在回答中途被系统一刀切,连接断开。

修复:永远不要用 bf16 格式。手机上只能用 q4_K_M 或更低的量化版本。最终换成了 qwen2.5-coder:7b(q4_K_M),12GB 手机完美运行。

教训:手机上不跑任何非量化模型。q4_K_M 是甜点,q3_K_M 也能用但质量下降明显。


坑② 以为量化标签要写全,结果根本搜不到模型

场景:在 vivo 上拉模型,手写了完整量化标签:

ollama pull qwen2.5-coder:7b-instruct-q4_K_M
ollama pull qwen3:8b-q4_K_M

结果:前者拉下来了(碰巧 Ollama 做了模糊匹配),但后者和各种带 -instruct-q4_K_M 后缀的都严重混乱,根本不确定自己拉的是什么。

原因:Ollama 的官方拉取命令是不带量化标签的,写 qwen3:8b 就行,它会自动选最优量化版本(默认就是 q4_K_M)。

修复:统一用最简名称:

ollama pull qwen3:8b           # ✅ 正确
ollama pull qwen2.5-coder:7b   # ✅ 正确

ollama list 可以查看已安装模型的精确信息。


坑③ 把不存在的东西当存在,浪费大量时间搜索

这是最尴尬的坑——我在 Ollama 官网上反复核实之前,推荐了多个根本不存在的模型

我推荐过的(误报) 真相
qwen3-coder:8b qwen3-coder 系列只有 30B480B,没有 8B
qwen3-coder:8b-q4_K_M 同上,不存在
tinyllama:1.1b-q4 正确名称是 tinyllamatinyllama:1.1b,没有 -q4 tag
OnePlus 3 跑 qwen3:8b 一开始兴奋地说 6GB 能跑 8B,算完才发现 5.5GB 模型 + 系统开销 ≈ 6.5GB,根本不够

修复:去 ollama.com/search 逐模型核实。现在这篇文章里的所有模型名称都已验证。


坑④ OnePlus 3(Kali NetHunter)拉模型报 file does not exist

场景:OnePlus 3 刷了 Kali NetHunter,手动下载了 ARM64 版 Ollama 放在 ~/Ollama/bin/ 目录。执行拉取命令:

./bin/ollama pull qwen3:4b

报错

Error: pull model manifest: file does not exist

原因:根本乌龙——ollama serve 没启动。普通 Termux 安装后 service 自动启动,但手动安装版必须手动启动服务。没 serve 就 pull,Ollama 找不到本地模型存储路径。

修复

# 先启动服务
~/Ollama/bin/ollama serve &

# 再拉模型
~/Ollama/bin/ollama pull qwen3:4b

教训:Kali NetHunter 手动安装 Ollama 后,每次开机都要先 serve,且必须用全路径——系统不在 PATH 里。


坑⑤ Chatbox 连不上,一直 403

场景:手机端装好 Chatbox,想连上 vivo 的 Ollama。

Chatbox 的「添加模型」里有一个「OpenAI Compatible」选项。我心想 Ollama 的 API 格式不就是兼容 OpenAI 的吗?果断选了。

填上 http://192.168.1.11:11434/v1,点击测试连接——403 Forbidden

原因:选 OpenAI Compatible 模式后,Chatbox 实际发的请求路径是 /v1/chat/completions。但 Ollama 的 API 路径是 /api/chat,完全不同。

修复:在 Chatbox 中选择 「Ollama 原生模式」(不是 OpenAI Compatible),协议填 HTTP,端口填 11434,模型路径留空让它自动识别。


坑⑥ 下载中断留下损坏文件,死活拉不下来

场景:vivo 上拉 qwen3:8b,网络波动导致下载中断。重新执行 ollama pull,每次都报错:

Error: pull model manifest: unexpected EOF

原因:中断留下了 .partial 损坏文件,Ollama 检测到已有文件就直接用了,导致每次都读损坏数据。

修复

# 清理所有损坏的部分下载文件
rm -f ~/.ollama/models/blobs/*partial*

# 重新拉取
ollama pull qwen3:8b

坑⑦ 华为畅享 9 Plus 高估,以为能跑 1.5B 模型

场景:拿到华为畅享 9 Plus(4GB RAM)时想,虽然内存小但跑个 qwen2.5-coder:1.5b(约 1GB)总行吧?

结果拉是拉下来了,跑起来直接卡到手机发烫,终端一个字一个字往外蹦,比打字还慢。

原因:4GB 内存里系统就占了接近 2GB,剩下不到 2GB 可用。1.5B 的 q4 模型加载需要约 1.5GB,再加上推理时的上下文缓冲,内存直接爆炸,触发 swap 疯狂读写闪存。

修复:认命。4GB 设备唯一能用的就是 qwen2.5-coder:0.5b(398MB),输出质量勉强能看,做简单代码补全还行。旁边 6GB 的 OnePlus 3 跑 3B 模型都流畅,这就是硬件的残酷。


坑⑧ OLLAMA_HOST 忘了加 OLLAMA_ORIGINS

场景:服务启动成功,curl http://手机IP:11434/api/tags 在电脑上能返回数据。但 Chatbox 或其他 Web 客户端连过去就是报跨域错误。

原因:只设了 OLLAMA_HOST=0.0.0.0:11434 开放网络,但没设 OLLAMA_ORIGINS=* 允许跨域请求。Chatbox 前端发的是浏览器请求,浏览器有 CORS 限制。

修复

# 两个环境变量要一起设
OLLAMA_ORIGINS=* OLLAMA_HOST=0.0.0.0:11434 ollama serve &
#  ^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#   允许跨域             允许局域网访问
#   缺一不可!           缺一不可!

踩坑总结

编号 关键词 血泪指数
bf16 直接 OOM Kill 量化格式 🩸🩸🩸
量化标签写太全反而搜不到 模型名称 🩸🩸
推荐不存在的模型 模型名称 🩸🩸🩸🩸
OnePlus 3 忘记 serve 就 pull 手动安装 🩸🩸🩸
Chatbox 选错模式 403 客户端连接 🩸🩸
下载中断 partial 损坏 网络 🩸🩸
高估 4GB 手机能力 硬件上限 🩸🩸🩸
忘记设 OLLAMA_ORIGINS CORS 🩸🩸

如果这些坑能帮你少走弯路,那这周折腾就值了。


七、最终推荐方案

vivo Y300i(主力)

# 安装
ollama pull qwen3:8b              # L3+ · 通用主力
ollama pull qwen2.5-coder:7b      # L3  · 代码主力

# 启动
OLLAMA_HOST=0.0.0.0:11434 ollama serve &

能力:复杂推理、代码生成、长文写作,日常使用足够。

OnePlus 3 Kali(备用/服务器)

# 安装
~/Ollama/bin/ollama pull qwen3:4b             # L2+ · 通用主力
~/Ollama/bin/ollama pull qwen2.5-coder:3b     # L3  · 代码专家

# 启动(先 serve 再 pull,否则报错)
OLLAMA_HOST=0.0.0.0:11434 ~/Ollama/bin/ollama serve &

优势:低功耗,适合 7×24 开机当局域网 AI 服务器。

华为畅享 9 Plus(放弃或极限使用)

ollama pull qwen2.5-coder:0.5b    # L1 · 唯一实用

诚实建议:卖掉换钱。4GB 设备跑模型的体验太差了。


八、总结

设备 主力模型 L等级 定位
vivo Y300i qwen3:8b L3+ 主力机
OnePlus 3 qwen3:4b L2+ 7×24 服务器
华为畅享 9 0.5b L1 放弃

几个关键认知

  1. 6GB 是实用门槛——低于这个配置体验很差
  2. 8B 模型是甜点——能力接近 GPT-3.5,12GB 手机就能跑
  3. q4_K_M 量化最稳——兼顾质量与内存
  4. OLLAMA_HOST=0.0.0.0 是联网关键——别忘了加
  5. IP 会漂移——每次开机后要确认

旧手机不需要吃灰,装个 Ollama,它就是你的私有 AI 服务器。


最后更新:2026-06-22


附录:模型名称验证记录

以下所有推荐模型均已通过 ollama.com 逐一核实(核查日期:2026-06-22):

模型名称 官方页面 验证状态
qwen3:0.6b ollama.com/library/qwen3 ✅ 523MB
qwen3:1.7b ollama.com/library/qwen3 ✅ 1.4GB
qwen3:4b ollama.com/library/qwen3 ✅ 2.5GB
qwen3:8b ollama.com/library/qwen3 ✅ 5.2GB
qwen3:14b ollama.com/library/qwen3 ✅ 9.3GB
qwen2.5-coder:0.5b ollama.com/library/qwen2.5-coder ✅ 398MB
qwen2.5-coder:1.5b ollama.com/library/qwen2.5-coder ✅ 986MB
qwen2.5-coder:3b ollama.com/library/qwen2.5-coder ✅ 1.9GB
qwen2.5-coder:7b ollama.com/library/qwen2.5-coder ✅ 4.7GB
qwen2.5-coder:14b ollama.com/library/qwen2.5-coder ✅ 9.0GB
tinyllama ollama.com/library/tinyllama ✅ 638MB
tinyllama:1.1b ollama.com/library/tinyllama ✅ 同上(latest 即 1.1b)

确认不存在

名称 原因
qwen3-coder:8b qwen3-coder 仅有 30B 和 480B,无 8B 版本
tinyllama:1.1b-q4 官方 tag 为 tinyllamatinyllama:1.1b,无 -q4 后缀
qwen3.5:2b-bf16 非 Ollama 标准 tag;标准为 qwen3.5:2b(默认 q4_K_M)

评论区