Cloudflare Tunnel 概念示意(官方文档页)

家里有一台闲置的安卓手机,与其吃灰,不如让它变成一台私人的云盘。本文介绍怎么在一台没 root 的安卓手机上跑 Alist(一个聚合多种网盘/本地存储的文件列表程序),再用 Cloudflare Tunnel 把它暴露到公网,整个过程完全免费、无需公网 IP。

注:你写的「Openlist」我理解为 AList(AlistGo/alist),这是安卓 + Cloudflare Tunnel 网盘场景最常用的那个程序。如果你想的是别的,告诉我名字我再调整。

准备

  • 一台能正常联网的安卓手机(不需要 root)。
  • Termux:到 F-Droid 官网下载安装。不要用 Google Play 商店版的 Termux,已经停更、装不上新包。
  • 一个 Cloudflare 账号(方式 A 快速隧道不需要;方式 B 命名隧道需要把一个域名托管在 Cloudflare)。

国内网络环境可能装不上 Termux 的官方源,建议全程使用稳定的代理,否则要换镜像源(pkg 仓库里的包名相同)。

第一步:安装 Termux 并授权

  1. 在 F-Droid 里搜 Termux,装好。

  2. 打开 Termux,先更新一下:

    pkg update && pkg upgrade -y
    
  3. 给 Termux 授权访问手机存储(后面挂载本地相册/下载文件夹时会用到):

    termux-setup-storage
    

    弹出系统授权时点允许。

  4. 锁住唤醒,避免手机息屏后 Termux 被系统杀掉(很多手机默认会杀掉后台进程):

    termux-wake-lock
    

    想真正省电地长期挂着,还需要到系统的「设置 → 应用 → Termux」里把电池优化关掉,并允许后台运行。

第二步:安装并启动 Alist

pkg install alist -y

启动服务(默认监听 5244 端口):

alist server

第一次启动时,终端会打印类似:

Successfully started the alist server ...
Admin user's username: admin
Admin user's password: <一串随机字符>

把这串随机密码复制下来备用。或者随时运行 alist admin 查看密码。

如果想设成自己记得住的密码:

alist admin set 你的新密码

Alist 支持挂载阿里云盘、百度网盘、OneDrive、Google Drive、夸克 等十几种存储。下面只演示本地存储,其他类型的挂载方式在 Alist 官方文档里有详细教程。

第三步:登录并挂载本地存储

在同一台手机或同一局域网的电脑的浏览器打开:

http://127.0.0.1:5244

或用手机 IP(如 http://192.168.1.20:5244)。

admin 加上一步拿到的密码登录。然后:

  1. 进入「存储」→ 点「添加」。
  2. 驱动选「本地存储」。
  3. 路径填:/data/data/com.termux/files/home/storage/shared (这就是 termux-setup-storage 创建的映射,对应手机「共享存储」根目录,能看到照片、下载、内部存储里的所有内容)。
  4. 其他保持默认即可。

挂载完成后,回到首页就能看到一个文件列表,点进去就是手机里的照片、视频、下载。

安全建议:进「用户」把 guest 的「读 / 写」权限关掉,再去「设置 → 元信息」改一些必要项。开放到公网之前一定要确认有密码保护。

第四步:用 Cloudflare Tunnel 暴露到公网

Alist 默认只监听本机的 5244 端口,要让外网访问,最省事的方式就是 Cloudflare Tunnel:完全免费、不限流量、不需要你有公网 IP,只要手机能上网就行。

安装 cloudflared:

pkg install cloudflared -y

下面两种方式选一种。

方式 A:快速隧道(最省事)

适合临时测试或不想折腾域名。缺点是每次重启链接会变。

cloudflared tunnel --url http://localhost:5244

第一次运行会让你跳出一个浏览器完成授权——在 Termux 里不方便浏览器登录,可以把链接复制到电脑浏览器。等出现类似输出:

Your quick Tunnel has been created! Visit it at:
https://random-word-1234.trycloudflare.com

把这串 https://random-word-1234.trycloudflare.com 给任何人,他们就能访问你手机上的 Alist 了。

注意:这种链接是临时的,关掉命令就失效,手机重启肯定换新的。想要永远不变的链接,看方式 B。

方式 B:命名隧道(链接固定)

需要一个已经托管在 Cloudflare 上的域名(Nameservers 指向 Cloudflare)。如果你有,就走这条路,链接始终是同一个,还能加 Cloudflare Access 做二次验证。

  1. 在电脑浏览器打开 https://one.dash.cloudflare.com → Networks → Tunnels → Create a tunnel,取个名字(如 my-alist)。

  2. 选 Cloudflared,创建后你会拿到一段 cloudflared tunnel run --token ... 的命令,把整段长 token 记下来。

  3. 回到 Termux,新建服务目录:

    mkdir -p $PREFIX/var/service/cloudflared/log
    ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/cloudflared/log/run
    nano $PREFIX/var/service/cloudflared/run
    

    内容写:

    #!/data/data/com.termux/files/usr/bin/bash
    exec cloudflared tunnel run --token 你的TOKEN
    

    保存退出后给它执行权限:

    chmod +x $PREFIX/var/service/cloudflared/run
    
  4. 启动并设为开机自启(Termux 必须装 Termux:Boot,并在系统自启动里允许它):

    sv up cloudflared
    sv-enable cloudflared
    
  5. 回到 Cloudflare 后台,在这条隧道的 Public Hostname 里添加一条:

    • Subdomain: alist
    • Domain: 你的域名
    • Service: http://localhost:5244

完成。从此 https://alist.你的域名 就是你手机上的 Alist。

想纯命令行也行:依次 cloudflared tunnel login(浏览器授权)→ cloudflared tunnel create my-alistcloudflared tunnel route dns my-alist alist.你的域名cloudflared tunnel run my-alist。本质一样,看哪个顺手。

第五步:保持后台运行

要让 Alist 在关掉 Termux 终端后还在跑:

nohup alist server > $HOME/alist.log 2>&1 &

然后 exit 退出 Termux 也没事。

彻底开机自启需要 Termux:Boot(F-Droid 安装):

mkdir -p ~/.termux/boot
nano ~/.termux/boot/start-alist.sh

写入:

#!/data/data/com.termux/files/usr/bin/bash
termux-wake-lock
nohup alist server > $HOME/alist.log 2>&1 &
chmod +x ~/.termux/boot/start-alist.sh

下次重启手机后会自动拉起。

常见问题

  • 出现 1033 / Tunnel error:本地服务没起来。在 Termux 里 curl http://127.0.0.1:5244 试一下,看 Alist 是不是还活着。
  • 手机息屏后断了:确认 termux-wake-lock 在执行,并把 Termux 从电池优化里豁免。
  • 快速隧道链接变了:那是设计如此,重启就会换。要稳定请用方式 B(命名隧道 + 自己的域名)。
  • 播放视频卡:移动网络上行带宽有限,4K 在线播大概率要缓存;本地 1080p 一般问题不大。想流畅一些就把视频先复制到手机本地,用 Alist 列表里的本地存储链路播放。
  • 安全:开放到公网一定要改默认密码、关 guest 权限;重要的账号建议在 Cloudflare Access 后面再加一层邮箱 OTP。

小结

一台安卓手机 + Termux + Alist + Cloudflare Tunnel,五分钟就能搭出一个完全免费的私人云盘。最大的好处是:你随时在线(手机有电就有)、文件存自己手机里、流量走 Cloudflare 免费不限速。

缺点也很明显:手机必须保持有电、有网。把它当轻量的个人备份/相册分享站是合适的,长期重度使用还是 NAS 更稳。