1 何时值得在 Termux 里跑 Mihomo
图形客户端适合多数用户:点点就能导入订阅、切换节点、开 VPN。若你更在意可脚本化、希望配置与桌面或服务器上的 Mihomo同源、或设备上不便安装特定 APK,Termux是常见折中。它在无 Root前提下提供 apt风格的 pkg包管理、完整 shell 与文件系统隔离,足够运行静态链接良好的 Linux arm64二进制。
代价也要心里有数:安卓会积极回收后台进程,省电策略与内存压力随时可能打断长连接;Termux内跑的代理不会像系统 VPN 那样自动接管「所有 App 的 TCP/UDP」,除非应用本身支持 HTTP/SOCKS 或你再配合其它工具。把它理解成「手机上的小型代理服务器」,比理解成「一键全局翻墙」更准确。若你更需要系统级接管与触控面板,仍可访问本站下载页选择各平台客户端;开源仓库适合查 issue 与源码,安装包请以站点分发为准。
2 安装 Termux、更新源与基础包
建议从 F-Droid安装官方维护的 Termux,避免旧版来自不明渠道的签名混用导致升级失败。首次进入会话后执行 pkg update && pkg upgrade -y,再安装后续步骤需要的工具,例如 curl、wget、unzip(若 Release 包为 zip)、vim 或 nano。仓库访问若被网络环境拦截,请先在合规前提下解决出口,再谈拉取 GitHub Release 与订阅。
在会话中执行 uname -m:绝大多数近年手机为 aarch64,对应 Mihomo 的 linux-arm64变体;极少数老旧设备可能是 armv7l,需改用 linux-armv7。架构选错会出现「cannot execute binary file」类错误。存储方面,配置可放在 $HOME/.config/mihomo;若需从下载目录拷文件,可使用 Termux 的存储访问教程将手机目录挂载到 ~/storage/,本文不强制路径,以你便于备份为准。
systemd托管;安卓没有相同机制,本文用 shell 与 Termux 生态替代自启与保活语义,YAML 心智仍兼容。
3 下载并放置 Mihomo 可执行文件
从 Mihomo 官方 Release 页获取与你架构匹配的压缩包。版本号随上游更新,下列命令里的链接仅示意,请替换为当前 Release 中的实际文件名。
mkdir -p ~/.local/bin ~/.config/mihomo/providers
cd ~
# Replace URL with current linux-arm64 release from upstream
curl -LO "https://github.com/MetaCubeX/mihomo/releases/latest/download/mihomo-linux-arm64-v1.18.0.gz"
gunzip -f mihomo-linux-arm64-v1.18.0.gz
chmod +x mihomo-linux-arm64-v1.18.0
mv mihomo-linux-arm64-v1.18.0 ~/.local/bin/mihomo
~/.local/bin/mihomo -v
若 ~/.local/bin不在默认 PATH,下一节会在 .bashrc里统一导出。验证 mihomo -v能打印版本后,再进行配置编写。
4 订阅导入:config.yaml 与 proxy-providers
在 ~/.config/mihomo/config.yaml写入与你机场兼容的骨架。把 YOUR_SUB_URL换成真实订阅;把 secret换成随机强密码。若订阅并非标准 Clash YAML,可先阅读《订阅转换完全指南》生成可引用片段。少数机场要求特定 User-Agent,可在上游文档确认后加到 provider 配置(以 Mihomo 文档为准)。
mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090
secret: "replace-with-strong-secret"
dns:
enable: true
listen: 0.0.0.0:1053
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
fallback:
- https://1.1.1.1/dns-query
proxy-providers:
sub:
type: http
url: "YOUR_SUB_URL"
interval: 3600
path: ./providers/sub.yaml
health-check:
enable: true
url: https://www.gstatic.com/generate_204
interval: 600
proxy-groups:
- name: PROXY
type: select
use:
- sub
proxies:
- DIRECT
rules:
- GEOIP,CN,DIRECT
- MATCH,PROXY
保存后执行 mihomo -t -d ~/.config/mihomo做语法检查与订阅拉取测试。通过后再前台运行 mihomo -d ~/.config/mihomo观察日志。需要图形化换节点时,可在保持 external-controller仅监听本机的前提下,按《Mihomo 外部控制器与 Yacd 面板》在同一台手机浏览器挂载面板;切勿把 9090 暴露到不可信网络。
config.yaml截屏发到公开群组。手机上建议用文件权限与机柜解锁策略一并考虑。
5 .bashrc:PATH、快捷函数与手动启动
编辑 ~/.bashrc(不存在则创建),追加 export PATH="$HOME/.local/bin:$PATH",并可为 Mihomo 目录设置变量,便于脚本复用:
export PATH="$HOME/.local/bin:$PATH"
export MIHOMO_HOME="$HOME/.config/mihomo"
mihomo-start() {
termux-wake-lock
mihomo -d "$MIHOMO_HOME" &
}
mihomo-stop() {
pkill -f "[m]ihomo -d $MIHOMO_HOME" || true
termux-wake-unlock
}
上面的 termux-wake-lock依赖下文安装的 Termux:API;若尚未安装,可先暂时注释这两行,仅用 mihomo -d "$MIHOMO_HOME" &。执行 source ~/.bashrc后,新开会话即可用 mihomo-start启动。日志排查可将输出重定向到文件以便事后查看。若你在多份教程里见过不同的函数名,保持「一套别名全机统一」即可,关键是工作目录始终指向含 config.yaml的路径。
6 Wake Lock:避免息屏即断流
安卓在休眠时常会限制后台 CPU 与网络。Termux 提供的 termux-wake-lock会请求不休眠类型的唤醒锁,降低「一锁屏代理就挂」的概率;对应地,耗电量会上升,这是权衡。安装 Termux:API应用并执行 pkg install termux-api后,termux-wake-lock与 termux-wake-unlock才可用。使用完毕建议停止 Mihomo 并执行解锁,避免整夜耗电。
Wake Lock不能替代系统「允许后台运行」白名单;若厂商仍强杀 Termux,需结合下一节的电池与自启动设置。也不要把本文写成「百分百不断线」——无 Root环境下,只有用户态手段,无法像路由器或真 VPN Service 那样牢固。
7 Termux:Boot 与开机自动执行
安装 Termux:Boot插件后,可在 ~/.termux/boot/目录放置以 .sh结尾的脚本,在设备启动并完成环境初始化后由 Termux 依次执行。典型做法是新建 ~/.termux/boot/start-mihomo.sh,写入 #!/data/data/com.termux/files/usr/bin/bash shebang,再 source ~/.bashrc后调用 mihomo-start或等价命令,并用 chmod +x赋予可执行权限。
开机自启不会魔法般地绕过厂商杀后台:若系统在启动完成后数分钟仍清理 Termux,你仍需要在系统设置里为该套件开白名单。不同品牌菜单位置差异很大,本文只强调「需要用户手动点几次」,不提供可被过时的截图式路径。
8 国产 ROM 与「后台管理」必查项
经验上,MIUI、ColorOS、HarmonyOS 等系统常有「省电模式」「应用速冻」「关闭未使用时活动」等开关。请至少检查:允许 Termux(与 Termux:API、Termux:Boot)自启动;在电池策略中将 Termux 设为「无限制」或等价;在最近任务中锁定 Termux 会话;关闭对该应用的「深度休眠」。这些步骤不能逐一保证,但在社区反馈里是最常被忽略、补上后能明显改善保活的环节。
若你愿意使用图形客户端作为对照组,站内《FlClash 安卓完整配置教程》里关于侧载与后台的讨论仍具参考价值:厂商对「带 VPN 权限的代理 App」与「纯 Termux」策略并不完全相同,但省电逻辑同源。
9 能力与边界:TUN、真全局与应用侧代理
在无 Root前提下,Termux 内 Mihomo 通常提供 mixed-port所监听的 HTTP/SOCKS 入站。要让单个浏览器走代理,可配置支持 SOCKS5 的浏览器插件;要让终端内 curl/git走代理,可导出 http_proxy与 all_proxy环境变量指向 127.0.0.1:7890(端口以你的 YAML 为准)。若要系统级 TUN 接管所有 App,一般需要带 VPN 服务的图形客户端或额外模块,这已经超出「仅 Termux」范围,也是许多用户最终仍会安装 FlClash 等应用的原因。
FakeIP 与 DNS 相关排障可对照《彻底防止 DNS 泄漏》:移动网络与切换基站时,DNS 超时容易被误判成「节点坏了」,实际是先查日志区分层次。
10 常见问题
- 一锁屏就断:先确认已执行
termux-wake-lock且 Termux:API 安装无误,再在系统侧放宽省电,并避免手动划掉 Termux 任务。 - 重启后没起来:检查 Termux:Boot 脚本权限与 shebang 路径;开机后打开一次 Termux 会话查看 stderr。
- 订阅更新失败:用手动
curl测订阅 URL 是否被运营商或 Wi-Fi 拦截;必要时错峰或更换 DNS。 - 仅限 Termux 内有网:这是预期;其它 App 需单独配置代理或改用图形客户端做系统 VPN。
11 总结
Termux里跑Mihomo,本质是把桌面上的「核心 + YAML」经验搬到安卓用户空间:用 proxy-providers完成订阅导入,用 .bashrc固化路径与启动函数,再用 Wake Lock、Termux:Boot与系统省电白名单尽可能拉长存活时间。它不会替代带 VPN 授权的图形客户端在「一键全局」上的体验,但在可脚本化、可版本控制与与服务器同构方向上有明确价值。
相比没有规则引擎的简单 SOCKS 工具,Clash 系在可维护规则与 Meta 生态上更易长期持有;需要 Windows、macOS 或桌面 Linux 上的一体化体验时,可从本站下载页获取安装包,与手机 Termux 方案并行不冲突。
若你更希望用触控完成导入与系统 VPN,仍可回到图形客户端路线;Terminal 方案留给愿意支付一点学习成本、换取流水线式配置的那部分用户。