ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Termux+filebrowser:把安卓手机变成局域网网页文件管理器

Termux+filebrowser:把安卓手机变成局域网网页文件管理器 手机里躺着一块 128GB 甚至 512GB 的存储空间想把电脑下载的电影拖进去、把相册里的原图倒出来、把一个配置文件塞进某个 App 的目录最顺手的路子还是插数据线加 MTP或者先传云盘再下载一遍。前者要线、要驱动、要选对 USB 模式Windows 上还经常出现设备未识别后者要流量、要等待还平白多了一份数据在外面的顾虑。我折腾 Termux 的起点之一就是想在手机上跑一个 filebrowser把这个来回倒腾的环节直接砍掉手机起一个服务同一局域网里任何设备的浏览器输入一个地址就能像用网页版网盘一样浏览、上传、下载、重命名、批量删除。filebrowser 本身不算新东西它是一个用 Go 写的单文件 Web 文件管理器丢到任何能跑二进制的机器上就能用Windows Server 2019 上有人拿它当内部共享盘的门面树莓派上有人拿它当 NAS 的前端。但它和 Termux 组合之后性质就变了——Termux 给的是 Android 上少见的原生 Linux 用户态环境filebrowser 给的是一个不用装任何客户端就能用的操作界面两者相加等于给自己手机的存储开了一个网页入口。这篇内容适合三类人手上有闲置安卓机想废物利用的、经常在手机和电脑之间来回搬文件的、以及已经在 Termux 里折腾过各种环境、想补一块文件出入口的。基础命令不熟也没关系关键的坑我都会标出来。1. 手机上的文件搬运为什么最后会落到网页版文件管理器上1.1 数据线、聊天软件、云盘这三条老路的隐性成本先说数据线。Android 从 6.0 开始逐步收紧外部存储的访问方式MTP 协议在 Windows 上的表现一直不算好大目录列表刷新慢、传输中断后需要重新插拔、部分机型在锁屏状态下会掉设备。我实测过一批中低端机型拷贝一个含 3000 张小文件的相册目录MTP 经常卡在正在计算剩余时间不动而用网络方式反而更快原因是小文件走 MTP 的协议开销远大于走 TCP。再说聊天软件传文件。它确实方便但有几个硬伤单文件大小有限制、压缩画质、文件夹结构丢失、以及文件散落在聊天记录里半年后你自己都找不到。云盘的问题则是链路上传两次手机到云、云到电脑几百兆的视频能等出脾气而且免费额度下的限速是明摆着的。网页版文件管理器的思路完全不一样。服务跑在手机上浏览器只是显示层文件始终没有离开这块存储所谓的传输只发生在局域网内走的是 Wi-Fi 或热点的本地链路。同样的 3000 张小文件我这边用 filebrowser 拖拽上传速度基本能顶满路由器的 2.4G/5G 带宽上限全程可控中途断了还能看到具体卡在哪个文件上。1.2 filebrowser 和 SMB、FTP、文件管理器 App 的分工很多人第一反应是安卓本来就有 SMB 共享 App为什么还要网页版。这两者解决的问题不完全重叠方案客户端要求手机端角色典型适用场景SMB 共享 App电脑/电视需支持 SMB 协议服务端电脑挂载网络位置像本地盘一样用FTP/FTPS 服务需要专门的 FTP 客户端服务端老设备兼容性好但明文传输手机端文件管理器 App只能在手机本机操作纯本地单机整理、解压、重命名filebrowserTermux任意浏览器服务端 网页界面跨设备浏览、批量上传下载、多用户权限差别最大的地方有三个。第一是零客户端电视盒子、别人的电脑、iPad只要能开浏览器就能用不用装任何东西也不用教对方怎么配置。第二是浏览器天然支持拖拽和多选上传这个体验在整理相册时非常省事。第三是 filebrowser 自带用户体系和路径级权限你可以给家人开一个只能看某个目录的账号而不是把整块存储暴露出去。至于手机本机整理说实话还是本机文件管理器 App 更顺手别指望用网页去替代它。这两者不是竞争关系网页端的价值在于跨设备这三个字。1.3 Termux 在这个组合里提供的到底是哪一层要理解为什么必须用 Termux得先知道安卓的 App 沙箱机制。普通 App 只能访问自己的私有目录和公共媒体目录想跑一个监听端口的常驻服务、想访问完整的文件系统路径、想用 Linux 那一套命令行工具正常情况下是做不到的除非 root 或自己写原生代码。Termux 做的事情是在 Android 的用户态里铺了一层接近标准 Linux 的环境有包管理器、有完整的 coreutils、有 sshd、有 Python、有 Go 工具链。它不需要 root也不需要解锁靠的是 Android 本身的 POSIX 支持和它自己的 bootstrap 包体系。所以 filebrowser 才可能以最自然的方式跑起来——下载一个静态编译的 Go 二进制赋可执行权限直接运行没有依赖地狱。理解这一层之后你就明白了两件事Termux 里的根目录和安卓的/不是一回事前者在/data/data/com.termux/files/usr下以及凡是需要访问共享存储的操作都得先经过一次授权这个后面会细说。2. 动手之前Termux 侧的四个前提条件2.1 安装渠道与版本别再用应用商店里那个停更版本这是新手最容易踩的第一个坑。各大应用商店里那个 Termux 版本停留在很早的版本包源已经对不上很多包根本装不上pkg update报一堆签名或 404 错误。正确的来源有两个F-Droid 官方仓库或者项目在 GitHub 上的 Release 页面。两者都可以注意不要混装——不同签名的 APK 互相覆盖安装会直接失败必须先卸载旧版再装新版但卸载会清掉$HOME里的所有数据所以装之前先想清楚。版本号上的一个经验Termux 的包源是滚动更新的越新的版本越依赖较新的 Android API。目前主线版本普遍要求 Android 7.0 及以上如果是 Android 5.x 的老机器只能去 F-Droid 的历史版本里找而且很多新包无法安装后面第 7 节我会专门讲这种老设备的取舍。装好之后第一件事不是急着装 filebrowser而是执行pkg update pkg upgrade -y这一步会同步包索引并升级基础组件。网络不好的时候它会卡很久可以用pkg update单独跑一次看报错信息别一上来就-y把错误刷过去。2.2 Android 版本与 CPU 架构aarch64 与 armv7 的分水岭filebrowser 官方发布的二进制包是按平台和架构分目录的选错了会直接报cannot execute binary file。判断方法很简单uname -m输出aarch64对应下载linux-arm64输出armv7l或armv8l在 32 位环境下对应linux-armv7x86_64一般是模拟器或者少数平板对应linux-amd64。现在主流手机基本都是 aarch64但一些老机型和部分电视盒子仍然是 32 位用户态这个坑不注意会浪费不少时间。Android 版本本身也会影响行为主要差异集中在三点共享存储的授权方式Android 11 之后的分区存储更严格、后台进程的回收力度Android 12 之后引入了幽灵进程限制、以及通知权限Android 13 之后需要显式授权而 wakelock 的状态提示依赖通知。这三条后面都会单独展开。2.3 termux-setup-storage 做了什么以及它不能做什么很多教程让你敲的第一条命令就是termux-setup-storage但很少有人解释它到底干了什么。执行后系统会弹一个存储权限请求同意之后Termux 会在~/storage下建立一组软链接指向安卓的共享存储目录~/storage/shared指向/sdcard也就是你在文件管理器里看到的内部存储根目录~/storage/downloads、~/storage/dcim、~/storage/pictures分别指向对应的公共目录~/storage/external-1指向外置 SD 卡如果有的话路径可能带随机后缀它不能做的事情同样重要。第一从 Android 11 开始/sdcard/Android/data和/sdcard/Android/obb这两个目录对其他应用不可读Termux 也不例外想通过 filebrowser 去浏览别的 App 的私有数据是走不通的。第二它给的是共享存储的访问权不是系统分区的访问权/system、/data这些位置依然不可写。第三如果手机上装的是较老的系统或者厂商深度定制过权限管理可能会弹出多次授权或者授权后依然无效需要去系统设置的应用权限里手动确认。注意授权之后软链接才会出现如果ls ~/storage是空的先确认权限是否真的给了而不是重复执行命令。2.4 后台保活wakelock、省电策略与幽灵进程filebrowser 是个前台进程理论上你不关它就一直跑。但 Android 不是这么想的屏幕一关系统会尝试冻结或杀掉后台进程以省电。典型现象是刚启动时能用锁屏五分钟后浏览器打不开。解决手段有三层建议都做第一层是termux-wake-lock。这条命令会向系统申请一个唤醒锁并在通知栏显示一条常驻通知表明 Termux 正在运行。用完可以termux-wake-unlock释放。它不需要额外安装什么属于基础工具的一部分但 Android 13 之后要确保 Termux 有通知权限否则锁可能申请不到。第二层是系统设置。在电池或应用管理里把 Termux 的省电策略设为无限制允许后台活动并且在最近任务里给它加锁如果系统支持。第三层是针对 Android 12 及以上的幽灵进程限制。这个机制会杀掉通过 shell 派生的、父进程已退出的后台进程报错通常是signal 9或者进程莫名其妙消失。可以用 adb 关闭adb shell settings put global settings_enable_monitor_phantom_procs false这条命令需要电脑端有 adb 环境、手机开启开发者选项和 USB 调试。不想折腾 adb 的话把 filebrowser 跑在termux-wake-lock保护下、并且保持在最近任务里不划掉通常也能撑住。3. 三条安装路线以及各自的适用边界3.1 官方脚本一行命令背后的动作最常见的方式是官方提供的一键脚本。它的完整动作是检测当前架构从发布页拉取对应压缩包解压后把二进制放到/usr/local/binTermux 里对应$PREFIX/bin最后赋可执行权限。在 Termux 里执行前建议先装好curlpkg install curl -y curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash这条命令的特点是省心但有两个前提网络能直连到发布页以及$PREFIX/bin在 PATH 里Termux 默认是。如果卡在下载环节多半是网络问题换成手动下载更可控。另外提醒一句关于curl | bash的用法。这是一种很方便但也需要保持警惕的模式因为脚本内容在你执行的那一刻是变化的。稳妥一点的做法是先下载再执行curl -fsSL -o /tmp/get.sh https://raw.githubusercontent.com/filebrowser/get/master/get.sh less /tmp/get.sh bash /tmp/get.sh多花一分钟看一眼脚本干了什么是值得的习惯尤其是当你在照着来源不明的教程操作时。3.2 包管理器先确认仓库里到底有没有很多教程会写pkg install filebrowser但 Termux 主仓库里未必有这个包不同镜像和不同时间点的情况还不一样。正确姿势是先搜pkg search filebrowser有结果再装没结果就老老实实走手动下载。这一点上不要迷信任何一篇教程包括这篇包仓库是会变的。如果确实想用包管理器的方式管理可以看看社区维护的第三方仓库但那又引入了来源可信度的问题我个人更偏向官方发布的二进制。3.3 手动下载二进制选对包名与解压位置手动方式最适合网络不稳定、或者需要指定版本的场景。流程是四步确认架构、下载对应包、解压、放到 PATH 里。uname -m # 例如输出 aarch64 mkdir -p ~/bin cd ~/bin # 下载对应架构的压缩包具体版本号以发布页为准 curl -LO linux-arm64 压缩包地址 tar -xzf filebrowser-*-linux-arm64.tar.gz chmod x filebrowser ./filebrowser version # 验证能跑会打印版本号放到~/bin而不是$PREFIX/bin是我自己的偏好$PREFIX下的东西在升级或者重装时会动放在家目录里更踏实只要保证~/bin在 PATH 里就行。Termux 默认不一定包含~/bin可以手动加echo export PATH$HOME/bin:$PATH ~/.bashrc source ~/.bashrc3.4 从源码编译什么时候才值得只有两种情况下我建议自己编译一是发布页没有你需要的架构包比如某些 32 位设备二是你想改点东西比如默认端口、界面文案。步骤并不复杂pkg install golang git -y git clone https://github.com/filebrowser/filebrowser cd filebrowser go build -o filebrowser .第一次编译会拉一堆依赖时间和流量都不小手机端编译大型 Go 项目也比较吃内存2GB 内存的老机器容易在链接阶段被系统杀掉。所以除非有明确需求直接用发布包比重编译省事得多。3.5 三条路线的横向对比维度官方脚本包管理器手动二进制操作成本最低低中版本可控性只能拿最新跟仓库走完全可控网络要求需能访问发布页需包源可用可离线传包重装后是否保留否在 $PREFIX 下否是在家目录适合谁图省事的新手已有包管理习惯的人需要固定版本或多设备复制的人我的建议是第一次装用官方脚本先跑通确认整个链路没问题等确认要长期用了再换成手动方式放到家目录顺便固定一个你能接受的版本。4. 首次启动、配置与局域网访问4.1 第一次运行发生的三件事直接执行filebrowser不带任何参数它会做三件事在当前目录创建数据库文件、生成默认配置、在127.0.0.1:8080起服务。这里有两个关键信息。第一默认只监听本地回环地址。也就是说手机自己的浏览器打开http://127.0.0.1:8080能访问同一 Wi-Fi 下的电脑却打不开。这是设计上的保守做法要对外提供服务必须显式指定监听地址。第二默认账号密码是admin/admin第一次登录后必须马上改。它会在启动日志里明确提示这一点别忽略。想要让局域网内的其他设备访问加上地址和端口参数filebrowser -a 0.0.0.0 -p 8080 -r /sdcard参数含义是-a指定监听地址0.0.0.0表示所有网卡-p指定端口-r指定根目录这里直接指向共享存储。这条命令跑起来之后才算是真正可用的形态。4.2 配置文件与数据库参数该写在哪命令行参数适合快速验证长期使用建议把所有配置写进数据库或配置文件避免每次敲一长串参数。filebrowser 的配置主要通过config子命令管理filebrowser config init # 初始化配置如果还没有 filebrowser config set --address 0.0.0.0 filebrowser config set --port 8080 filebrowser config set --root /sdcard filebrowser config set --locale zh-cn这些设置会存进数据库文件之后直接运行filebrowser就会读取。数据库文件的位置在不同版本里略有差异早期版本默认是执行目录下的filebrowser.db较新版本倾向于放到用户配置目录下。查找的最快方式是启动时看日志里打印的路径或者用-d参数显式指定filebrowser -d ~/.config/filebrowser/filebrowser.db注意数据库文件里存着用户信息和密码哈希它既是配置中心也是账号中心备份和迁移的时候记得一起带走。丢了这个文件等于所有账号都没了。--locale zh-cn这个参数值得单独提一句它把界面语言切成中文。很多人以为没有中文界面其实只是没设。4.3 根目录指向哪里内部存储还是共享存储根目录的选择直接决定了这个服务好不好用也决定了权限问题多不多。两种典型选择指向~也就是/data/data/com.termux/files/home。优点是读写权限没有任何限制可以自由改权限、建软链接、访问隐藏文件缺点是位置太深电脑端用起来会觉得这只是一个隔离的小盒子看不到你平时的照片和下载目录。指向~/storage/shared也就是/sdcard。优点是所见即所得相册、下载、文档一目了然缺点是受限于 Android 的分区存储规则某些目录不可读某些文件的操作会返回权限错误。我的做法是给共享存储单独开一个用户根目录设为/sdcard管理员账号保持指向家目录。这样既能在电脑上方便地整理照片又保留了完整的家目录访问能力。filebrowser 的用户级根目录配置就是为这种场景设计的配置命令大致是filebrowser users add 名字 密码 --perm.adminfalse --scope /sdcard--scope把该用户限制在指定目录内他看不到外面的东西这个能力在给家人开账号时非常重要。4.4 找到这台手机在局域网里的地址服务起好了接下来的问题是电脑上该输什么地址。Termux 默认不带ifconfig先装上pkg install net-tools -y ifconfig wlan0输出里的inet后面那一串就是本机地址通常是192.168.x.x这种形式。如果你是用手机开热点给电脑用那要看的是热点网卡的地址网卡名可能是ap0、swlan0之类具体看ifconfig列出来的所有接口。装了 Termux:API 的话用termux-wifi-connectioninfo也能直接拿到当前连接的地址信息更省事。拿到地址后在电脑浏览器里输入http://地址:8080就能打开了。如果路由器开了客户端隔离设备之间互相是访问不了的这个要在路由器设置里关掉。4.5 默认账号必须改以及密码策略如果这个服务只在绝对可信的家庭网络里用风险相对可控但它确实是一个能读写你手机存储的入口所以账号这块不能偷懒。推荐的做法是先改管理员密码再删掉或者禁用默认账号filebrowser users update admin --password 一个足够长的密码更彻底的做法是新建一个自己的管理员账号然后把admin删掉。密码长度建议 12 位以上不要用生日或者手机号。filebrowser 支持登录失败次数限制在配置里可以调整重试上限和封禁时长这个参数在有人尝试暴力登录时会派上用场。5. 真正用起来才会撞上的六个问题5.1 页面打不开先分清服务没起来还是网络不通排错要先分层不要一上来就乱改配置。判断顺序如下第一层服务是否真的在跑。切回 Termux 窗口看filebrowser进程有没有退出有没有报错。如果报了bind: address already in use说明端口被占用第 5.6 节会讲。第二层本机能不能访问。手机自带浏览器打开http://127.0.0.1:8080能打开说明服务正常问题在网络层。第三层地址对不对。ifconfig看到的是不是当前 Wi-Fi 网段的地址手机是不是切到了流量有些手机在 Wi-Fi 和流量之间切换时会飘。第四层路由器是否做了隔离或者电脑是否连到了另一个网段比如一个连 2.4G 一个连 5G某些路由器这两个是不同的子网。这个分层顺序能省掉大量时间。我踩过最蠢的一次坑是盯着配置文件改了半小时最后发现手机连的是邻居的 Wi-Fi。5.2 大文件上传中断与速度异常上传中断的原因可以从两端找。客户端侧浏览器在手机锁屏或者切到后台时会被系统挂起长连接可能断掉所以传大文件时建议保持浏览器前台或者用电脑端起一个简单的方式发请求。服务端侧Android 的后台回收会在压力大时杀掉进程termux-wake-lock一定要开着。速度异常通常有两个来源。一是走错了链路比如手机连的是 2.4G 而电脑连的是 5G两者之间跨频段转发速度会被 2.4G 那一端拖住把两端都挂到 5G 上同一路由器下速度能翻几倍。二是加密开销filebrowser 走 HTTP 全明文本身没有额外的加密开销所以速度瓶颈基本都在 Wi-Fi 和手机存储的写入速度上。低端机的 eMMC 随机写入很慢小文件批量上传时卡顿是正常的不要怀疑软件。5.3 锁屏几分钟后服务失联前面提过保活这里补充一个容易被忽略的细节termux-wake-lock申请成功之后通知栏会出现一条常驻通知。如果你的系统把这个通知划掉了或者设置了离开通知栏自动清理锁可能就跟着失效了。所以正确的做法是把 Termux 的通知标记为常驻或者重要防止被一键清理带走。另外一个容易被误解的现象切到其他 App 后再回来Termux 里的界面显示还在但服务其实已经死了。判断方法是执行ps aux | grep filebrowser看进程是否还在。不在的话就是被系统杀了需要重新拉起这也说明保活没做到位。5.4 只读、403 与 Android 分区权限这是最容易让人困惑的一类问题核心原因是 Android 的权限模型和传统 Linux 不一样。共享存储不是用 POSIX 的chmod管的而是通过一个文件系统层的权限映射FUSE 或厂商定制实现来管。表现出来就是你用ls -l看到的权限位全是某种统一值chmod改了也看不出效果某些目录能读不能写某些目录直接拒绝访问。几个具体例子/sdcard/Android/data下的内容在 Android 11 之后对其他应用不可读这是系统层面的硬限制任何软件都绕不过去外置 SD 卡的写入权限在老版本系统上尤其严格可能需要额外的授权步骤如果某个目录是通过其他 App 创建的可能带有不同的权限归属。遇到这类问题不要死磕换一个目录验证一下是目录的问题还是全局的问题能快速定位范围。如果确实需要完整的文件系统控制权那就只能考虑有更高权限的环境这就超出了普通 App 的范畴了。5.5 中文文件名与编码理论上 Android 的文件系统用 UTF-8中文名不会有问题。实际遇到的乱码往往来自两个地方一是压缩包解压。用unzip解压某些来源的压缩包时包内文件名可能是 GBK 编码解出来就是乱码。Termux 里可以装p7zip或者带编码选项的 unzip 工具来处理。二是浏览器下载时的编码识别某些老浏览器对文件名头部的处理不规范保存下来会变成乱码。至于界面上的中文显示记得设--locale zh-cn不然菜单全是英文。排序上中文文件名默认按字节序排看起来会比较乱这个是界面层的排序规则决定的目前没有特别好的调整办法习惯就好。5.6 端口冲突与多实例8080 是个高频冲突端口尤其是你在 Termux 里还跑了别的服务的时候。排查命令netstat -tlnp | grep 8080或者干脆换个端口换成 8090、18080 之类都行。另外要注意不要同时跑多个 filebrowser 实例指向同一个数据库这会导致数据库锁冲突或者配置互相覆盖。如果确实想同时对外提供两个不同的根目录正确做法是用一个实例加多个用户和 scope而不是起两个进程。实在需要多实例就用-d指定完全不同的数据库文件并且把端口错开。6. 让它常驻Termux:Boot、快捷键与服务化6.1 开机自启的完整链路Termux 本身不提供开机自启能力需要额外装一个官方配套 App。装好并至少打开一次之后Termux 才会注册开机广播。之后在~/.termux/boot/目录下放可执行脚本开机时系统会按文件名顺序执行它们。一个可用的启动脚本大致是这样的#!/data/data/com.termux/files/usr/bin/sh termux-wake-lock cd $HOME nohup filebrowser -d $HOME/.config/filebrowser/filebrowser.db $HOME/filebrowser.log 21 几个细节必须注意脚本要有可执行权限chmod xshebang 必须写 Termux 环境下的绝对路径写/bin/sh是不存在的命令要用nohup加后台符否则脚本退出时进程会被带走日志定向到文件不然出问题你什么都看不到。注意很多手机厂商的系统对自启动有额外的开关需要去自启动管理里单独允许这个配套 App否则开机脚本根本不会被执行。6.2 用 Termux:Widget 做一键启停每次都进 Termux 敲命令太麻烦。另一个官方配套组件可以让你在桌面上放一个小组件点击就执行指定脚本。用法是在~/.shortcuts/目录下放脚本文件然后在桌面添加该组件并选择脚本。我一般会建两个一个start-fb.sh负责申请 wakelock 并启动服务一个stop-fb.sh负责杀掉进程并释放锁。这样手机上就有了一个开关比记命令靠谱得多。脚本里建议加一句简单的状态检查避免重复启动#!/data/data/com.termux/files/usr/bin/sh pgrep -f filebrowser /dev/null exit 0 termux-wake-lock nohup filebrowser -d $HOME/.config/filebrowser/filebrowser.db $HOME/filebrowser.log 21 pgrep -f这一句是防止手滑点两次导致起了两个实例然后端口冲突。6.3 日志落盘与出问题能查一个跑在手机上的常驻服务最重要的可观测性就是日志。前面脚本里把输出重定向到$HOME/filebrowser.log就是这个目的。建议再加一个简单的日志轮转否则长期运行日志会一直涨# 简单的截断式轮转放在启动脚本末尾 if [ -f $HOME/filebrowser.log ] [ $(wc -c $HOME/filebrowser.log) -gt 1048576 ]; then mv $HOME/filebrowser.log $HOME/filebrowser.log.old fi超过 1MB 就把旧日志改名只保留一份历史简单但够用。出现服务自己挂了的情况时先看这个日志的尾部通常能看到是被信号杀掉说明保活没做好还是自己 panic 了说明程序层面的问题。7. 用顺手之后可以做的几件事7.1 把它当作其他 Linux 环境的文件入口在 Termux 里折腾过其他 Linux 发行版环境的人应该知道那些环境的根文件系统都躺在 Termux 家目录下的某个子目录里。这带来一个很实用的玩法把 filebrowser 的根目录设在家目录你就能在电脑浏览器里直接浏览和编辑那些环境里的配置文件比在手机的软键盘上敲vim舒服太多。我自己最常用的场景是改各种服务的配置文件——在电脑上打开网页、进到对应目录、点开文件直接编辑保存改完在 Termux 里重启服务即可。这个流程比在手机上用终端编辑器改配置快至少三倍而且不容易敲错。需要提醒的是编辑这类文件时要注意保留原有的权限位某些服务对配置文件的权限有要求。7.2 Windows Server 2019 上的同款部署和手机端有何不同filebrowser 在 Windows 上同样能跑官方发布页提供 Windows 版二进制解压出 exe 直接执行即可。对比手机端差异主要在几处对比项Android TermuxWindows Server 2019安装方式下载 Linux 二进制下载 Windows exe或做成服务常驻方式wakelock 自启脚本注册为系统服务或用任务计划权限模型受 Android 分区存储限制受 NTFS ACL 限制更规范网络访问依赖局域网地址会变通常有固定地址适合长期暴露典型用途个人设备间的临时文件交换内部团队的文件共享门户Windows 上的优势是权限管理和常驻能力都更规范适合长期跑手机端的优势是随身、随时可用不需要额外的机器。我在家里两个都跑着手机端负责临时的照片搬运服务器那台负责长期归档。7.3 老设备Android 5.1 一代的取舍手里如果有 5.1 时代的老机器能不能跑能但要有心理预期。这个年代的设备通常只有 1GB 到 2GB 内存CPU 是 32 位存储是慢速 eMMC而且系统对新版本的支持很差。实际体验是服务能起来但并发访问一多就卡大文件写入速度让人着急后台被杀的概率也更高。如果只是拿它当个临时中转站传几张小文件、改改配置还是够用的。想要更好的体验建议找一台 Android 8 以上、内存 3GB 以上的旧机这类机器现在二手市场上价格很低专门拿来跑服务非常合适。别在 5.1 的老机器上花太多时间优化投入产出比不划算。7.4 安全底线什么时候必须收手这一点我想认真说一下。filebrowser 是个能读写你手机存储的入口把它放到公网上裸奔是相当危险的做法——默认配置没有加密一旦密码被猜中你的照片、文档、聊天记录备份全都在别人手里。我的建议是守住几条底线只在可信的局域网内使用不要做任何形式的公网暴露如果确实需要从外面访问走正规的云主机加 HTTPS 的方案并且启用强密码和访问限制定期看一眼登录日志发现有陌生的地址尝试登录就直接改密码给家人开账号时一律用--scope限制目录不要图省事给管理员权限。这几条听起来像是老生常谈但我在各种技术群里见过太多图方便直接把端口丢出去的例子出事之后再补救的成本远高于一开始多花十分钟配置。最后分享一个我用了很久的小习惯给这台跑 filebrowser 的手机单独设一个静态地址或者在路由器里做地址绑定。因为手机重启后地址可能会变每次都去查一遍很烦。绑定之后所有设备的书签都不用改这个细节能省下不少重复劳动。
返回列表