Termux 手机本地部署 Qwen 翻译服务
用途
闲置手机卖了可惜,安装Termux软件后用作服务器,实现废物利用。
- ❌️ 安装podman/docker :无root,Termux 的 proot限制,放弃;
- ✅️ ollama 本地部署大模型
环境
- 红米 K60 Ultra (16GB内存 + 256GB存储)
- Ollama:0.21.1(qwen2.5:3b;qwen3:0.6b;qwen3:1.7b;qwen3.5:2b)
准备
- Termux 软件下载: github.com/termux/term…
- 【可选】Windows SSH 工具下载: xterminal.cn/
- Ollama 官网: ollama.com/
安装apk不必赘述,下面是安装完成之后最好去做的几个配置。
必要配置
1)设置SSH方式登录(电脑连接)
- Termux 的 默认端口不是22,而是8022;
- Termux 的 默认用户名不是root,是u0_a123,用下面命令查看和确认;
pkg install openssh
sshd # 启动 SSH 服务
passwd # 设置登录密码(输入时不显示)
whoami # 查看当前用户名
ifconfig # 查看IP地址
# 登录示例
ssh -p 8022 u0_a123@192.168.1.5
Termux 的默认登录端口是 8022 端口,不是标准的 22 端口。
2)sshd服务设置自启(避免ssh连接掉线)
三层兜底保活:先查sv状态规范启动,再查进程存在二次确认,最后裸启sshd硬兜底,确保Termux打开时8022一定通。
echo '[ "$(sv status sshd 2>/dev/null | grep -c ^run)" -eq 0 ] && sv up sshd; [ "$(pgrep sshd)" ] || sv up sshd 2>/dev/null || sshd -p 8022' >> ~/.bashrc
测试:
pkill sshd; source ~/.bashrc; pgrep sshd
3)保活(手机锁屏之后 Termux 掉线)
① Termux 内置保活
# 在 Termux 中执行,获取唤醒锁
termux-wake-lock
或者在手机中设置(参考下面设置)
设置 → 应用 → Termux → 电池 → 无限制(或"不允许后台限制")
② 允许自启动
设置 → 应用 → Termux → 自启动 → 开启
③ 锁定后台(多任务界面)
打开多任务/最近应用界面,找到 Termux,下拉锁定 或点击 🔒 图标。
安装 Ollama 及部署大模型
Ollama 的默认行为: 5 分钟无请求后,模型从显存/内存中卸载。
一键安装ollama脚本:在 Termux 中自动启动 Ollama 本地大模型服务,并让它在后台持续运行。
- 脚本位置:
/data/data/com.termux/files/home - 脚本名称:
start-ollama.sh
#!/data/data/com.termux/files/usr/bin/bash
set -euo pipefail
export OLLAMA_HOST=0.0.0.0:11434
OLLAMA_LOG_DIR="$HOME/.ollama/logs"
mkdir -p "$OLLAMA_LOG_DIR"
# 1. 优雅清理旧进程
if pgrep -x "ollama" >/dev/null 2>&1; then
echo "发现残留 Ollama 进程,正在终止..."
pkill -TERM -x "ollama" 2>/dev/null || true
sleep 2
# 如果还没死,强制杀
pgrep -x "ollama" >/dev/null 2>&1 && pkill -9 -x "ollama" 2>/dev/null || true
fi
# 2. 后台启动 Ollama 服务
echo "启动 Ollama 服务..."
ollama serve > "$OLLAMA_LOG_DIR/server.log" 2>&1 &
OLLAMA_PID=$!
# 3. 等待服务就绪(最多 10 秒)
for i in {1..10}; do
if curl -s http://127.0.0.1:11434/api/tags >/dev/null 2>&1; then
echo "✓ Ollama 服务就绪 (PID: $OLLAMA_PID)"
break
fi
sleep 1
done
# 4. 检查是否真的启动
if ! kill -0 $OLLAMA_PID 2>/dev/null; then
echo "✗ Ollama 服务启动失败,查看日志:"
tail -20 "$OLLAMA_LOG_DIR/server.log"
exit 1
fi
# 5. 常驻通知(服务确认启动后再发,避免虚假通知)
termux-notification --id "ollama" \
--title "Ollama 运行中" \
--content "PID: $OLLAMA_PID | 0.0.0.0:11434" \
--ongoing \
--button1 "停止" --button1-action "pkill ollama && termux-notification --id ollama --remove" &
# 6. 保持 CPU 唤醒(服务成功后才锁)
termux-wake-lock
# 7. 拉取模型(可选:拆分到另一个脚本)
if ! ollama list | grep -q "qwen3:0.6b"; then
echo "正在拉取 qwen3:0.6b..."
ollama pull qwen3:0.6b
else
echo "qwen3:0.6b 已存在"
fi
echo "=== Ollama 完全就绪 ==="
# 8. 脚本结束但服务继续后台运行(不要 exit 杀后台)
# 如果需要前台保活,用 wait
# wait $OLLAMA_PID
执行:
chmod +x ~/start-ollama.sh
bash ~/start-ollama.sh
测试效果:
# 测试翻译:英译中
ollama run qwen3:0.6b "Translate to Chinese: Hello world"
# 关闭思考模式
ollama run qwen3:0.6b --think=false "Translate to Chinese: Hello world"
其他命令:
# 查看本地模型
ollama list
# 下载/更新模型
ollama pull qwen3:0.6b
# 删除模型
ollama rm qwen3:2b
# 交互式聊天
ollama run qwen3:0.6b
# 单轮非交互
ollama run qwen3:0.6b "你好"
# 查看运行中的模型
ollama ps
局域网n8n调用模型运行时间及效果示例:

常见问题及解决办法
1)卸载app之后数据会不会丢失?
卸载 Termux = 所有数据全部丢失。 Termux 的数据存在 Android 的应用私有目录 /data/data/com.termux/,卸载 App 时系统会完整删除这个目录。