
家里有一台闲置的安卓手机,与其吃灰,不如让它变成一台私人的云盘。本文介绍怎么在一台没 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 并授权
在 F-Droid 里搜
Termux,装好。打开 Termux,先更新一下:
pkg update && pkg upgrade -y给 Termux 授权访问手机存储(后面挂载本地相册/下载文件夹时会用到):
termux-setup-storage弹出系统授权时点允许。
锁住唤醒,避免手机息屏后 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 加上一步拿到的密码登录。然后:
- 进入「存储」→ 点「添加」。
- 驱动选「本地存储」。
- 路径填:
/data/data/com.termux/files/home/storage/shared(这就是termux-setup-storage创建的映射,对应手机「共享存储」根目录,能看到照片、下载、内部存储里的所有内容)。 - 其他保持默认即可。
挂载完成后,回到首页就能看到一个文件列表,点进去就是手机里的照片、视频、下载。
安全建议:进「用户」把 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 做二次验证。
在电脑浏览器打开 https://one.dash.cloudflare.com → Networks → Tunnels → Create a tunnel,取个名字(如
my-alist)。选 Cloudflared,创建后你会拿到一段
cloudflared tunnel run --token ...的命令,把整段长 token 记下来。回到 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启动并设为开机自启(Termux 必须装 Termux:Boot,并在系统自启动里允许它):
sv up cloudflared sv-enable cloudflared回到 Cloudflare 后台,在这条隧道的 Public Hostname 里添加一条:
- Subdomain:
alist - Domain:
你的域名 - Service:
http://localhost:5244
- Subdomain:
完成。从此 https://alist.你的域名 就是你手机上的 Alist。
想纯命令行也行:依次 cloudflared tunnel login(浏览器授权)→ cloudflared tunnel create my-alist → cloudflared 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 更稳。
