Skip to content

Termux 手机部署

适合把安卓手机临时当运行环境。同一 Wi-Fi 下其他设备可访问;长期稳定使用优先 Docker 部署NAS / 家用网络

适合谁

  • 适合:没有服务器、只想在家里局域网试用、手边有闲置安卓手机。
  • 不适合:希望公网长期稳定访问、手机经常关机或清后台、设备内存很小。
  • 访问范围127.0.0.1 只代表当前手机;其它设备访问时要换成手机的局域网 IPv4 地址。

准备

开始前准备好:

  1. 一台 Android 7 及以上手机。
  2. Termux。
  3. 一个管理员令牌,后面填到 ADMIN_TOKEN
  4. 一个普通访问令牌,后面填到 TOKEN

命令一条一条复制。等上一条执行完、终端重新出现提示符,再继续下一条。

1. 安装 Termux

不要安装 Play 商店里的旧版 Termux。优先使用下面两个入口之一:

如果从 GitHub Releases 安装,Android 7 及以上选择 apt-android-7 变体。如果手机里以前装过其它来源的 Termux,先卸载旧版,再从同一个来源重新安装,避免签名不一致。

安装 Termux

装好后直接打开 Termux。

2. 更新 Termux 并安装依赖

先更新软件列表:

bash
pkg update

再升级已安装的软件包:

bash
pkg upgrade

如果中途看到 Do you want to continue?,输入 y 然后回车。

安装 Git、Node.js LTS 和 nano:

bash
pkg install git nodejs-lts nano

安装依赖

这一步完成后,后面就可以在手机里下载和运行项目。

3. 检查依赖版本

按顺序执行:

bash
git --version
bash
node -v
bash
npm -v
bash
nano --version

检查版本

都能显示版本号,再继续下一步。版本号不需要和截图完全一样。

4. 下载 danmu_api 代码

先回到 Termux 的用户目录:

bash
cd $HOME

下载代码:

bash
git clone https://github.com/huangxd-/danmu_api.git

进入项目目录:

bash
cd danmu_api

下载代码

看到提示符进入 ~/danmu_api 后,后面的命令都在这个目录里执行。

如果提示 destination path 'danmu_api' already exists,说明以前下载过这个目录。最简单的处理方式是换一个新目录重新下载:

bash
cd $HOME
git clone https://github.com/huangxd-/danmu_api.git danmu_api_new
cd danmu_api_new

5. 安装项目依赖

确认当前目录在 danmu_apidanmu_api_new 后,执行:

bash
npm install

安装项目依赖

依赖安装需要等一会儿。看到终端重新回到项目目录提示符,再继续。

如果手机内存小,安装时尽量不要切到后台,也先关掉其它大应用。

6. 复制并打开配置文件

下面两条命令都要在项目目录里执行。

复制配置文件:

bash
cp config/.env.example config/.env

用 nano 打开:

bash
nano config/.env

打开配置文件

执行 nano config/.env 后,会进入文件编辑界面。

如果提示找不到文件,说明当前目录不对。先回到项目目录:

bash
cd $HOME/danmu_api

7. 配置 TOKEN 和 ADMIN_TOKEN

看到 config/.env 内容后,先只改这两项:

text
TOKEN=你的普通访问令牌
ADMIN_TOKEN=你的管理员令牌

如果你看到的是 # ADMIN_TOKEN=***,就把最前面的 # 删除,再把后面的值改成自己的管理员令牌。

修改 TOKEN 和 ADMIN_TOKEN

这两个值这样用:

  • TOKEN:播放器和普通访问用。
  • ADMIN_TOKEN:系统配置用,不要发给别人。

保存并退出 nano:

  1. Ctrl + O
  2. 回车。
  3. Ctrl + X

如果手机键盘没有 Ctrl,看 Termux 顶部/底部的额外按键栏;有些手机也可以用音量下键当 Ctrl

更多变量后续可以看:UI 与环境变量

8. 启动服务

回到项目目录里的 Termux,执行:

bash
npm start

启动服务

看到类似下面的输出,说明服务已经启动:

text
Server running on http://0.0.0.0:9321

这个 Termux 会话要保持打开。关闭窗口或被系统杀后台后,服务就会停止。

9. 验证手机本机访问

打开手机浏览器,访问:

text
http://127.0.0.1:9321/

能看到 LogVar / danmu_api 页面,说明服务已经跑起来。

打开播放器地址:

text
http://127.0.0.1:9321/你的TOKEN

能看到页面里的配置预览、接口调试等内容,说明播放器地址可用。

打开系统配置:

text
http://127.0.0.1:9321/你的ADMIN_TOKEN

能进入系统配置,说明管理员令牌可用。

10. 查看手机局域网 IP

如果只在这台手机上测试,用 127.0.0.1 就够了。

如果同一个 Wi-Fi 下的电视、平板或电脑也要访问,保持运行 npm start 的 Termux 会话不要关,然后到手机系统设置里看 IP。

不要优先用 Termux 命令查 IP。不同手机限制不一样,ip 可能提示 Permission deniedifconfig 也可能没有输出。

按这个顺序找:

  1. 打开手机 设置
  2. 进入 WLAN / Wi-Fi
  3. 点当前已经连接的 Wi-Fi。
  4. 打开 网络详情 / 更多信息 / IP 设置
  5. IP 地址IPv4 地址

看到类似 192.168.1.2310.0.0.12172.16.0.8 的地址,就是手机局域网 IP。

查看手机局域网 IP

例如你查到的是 192.168.1.23,那同一个 Wi-Fi 下其它设备访问:

text
http://192.168.1.23:9321/

播放器里填写:

text
http://192.168.1.23:9321/你的TOKEN

系统配置打开:

text
http://192.168.1.23:9321/你的ADMIN_TOKEN

11. 保持后台运行

Termux 部署能不能稳定,主要取决于手机系统后台策略。

建议做这几件事:

  1. 把 Termux 加入系统的后台白名单。
  2. 给 Termux 关闭电池优化。
  3. 不要在系统任务管理器里清掉 Termux。
  4. 运行服务时尽量保持 Wi-Fi 连接稳定。

如果希望锁屏后也尽量不休眠,可以在 Termux 里执行:

bash
termux-wake-lock

如果提示命令不存在,可以先跳过;不同 Termux 安装方式和插件支持不完全一样。

12. 后续修改配置

后面如果要改变量,先回到项目目录:

bash
cd $HOME/danmu_api

再打开配置文件:

bash
nano config/.env

重新打开配置文件

改完后保存退出。大多数配置会自动重新加载;如果改的是端口,重新执行一次 npm start 最稳。

如果你想换端口,可以这样启动:

bash
DANMU_API_PORT=8080 npm start

对应地址也要改成新的端口,例如:

text
http://127.0.0.1:8080/你的TOKEN

常见问题

电视或平板打不开手机地址

先确认:

  • 手机和播放器设备在同一个 Wi-Fi。
  • 填的是第 10 步查到的局域网 IP,不是 127.0.0.1
  • 手机没有切到移动数据。
  • 运行 npm start 的 Termux 会话还开着。
  • 路由器没有开启 AP 隔离、访客网络隔离之类的功能。

Termux 过一会儿自己停了

这是安卓电池优化常见问题。给 Termux 放开电池优化,再重新执行:

bash
cd $HOME/danmu_api
npm start

npm install 中途被系统杀掉

手机内存紧时会这样。先关掉后台大应用,再回到项目目录重新执行:

bash
npm install

如果仍然不行,换内存更大的手机,或改用 Docker 部署

npm install 下载很慢

可以临时切到 npm 镜像:

bash
npm config set registry https://registry.npmmirror.com
npm install

想让外网访问手机上的服务

不建议把手机 Termux 作为公网长期服务。外网访问涉及公网 IP、端口转发、隧道、HTTPS 和手机后台保活,稳定性通常不如 Docker / NAS / 云平台。

如果只是家里设备用,先保持局域网访问即可。

下一步

本项目仅供个人学习与交流,请勿在国内媒体平台宣传。