掏出手机就能搭个 WebDAV 同步服务器?这操作有点香
📌 第一部分:为什么是 WebDAV,又为什么是 Termux
WebDAV 这协议吧,年纪比不少程序员都大,但胜在简单、通用。
大部分效率工具、阅读器都原生支持,不用额外装客户端。你只需要一个能存文件的服务端,剩下的事软件自己就搞定了。
Termux 就更妙了。旧安卓手机谁家里没几部?吃灰不如变身私人服务器,功耗低、零成本,还省了一台树莓派的钱。
有了它,你的同步服务就随时在线,不用依赖任何第三方平台。
你可能会问:现在云服务那么多,干嘛非自己折腾?
答案就两个字:掌控。数据在自己手里,接口不会被突然限流,也不用担心服务关停。这种安全感,折腾过的人都知道。
⚖️ 第二部分:轻量 WebDAV 方案大乱斗
WebDAV 的实现多如牛毛,但在 Termux 这种资源受限的环境下,咱们得挑小巧又能打的。
🔹 Apache/Nginx + WebDAV 模块
功能最强,但太重了。配置繁琐,为个同步功能搬出整套 Web 服务器,属实有点浪费手机的运存和电量。
🔹 Python 的 wsgidav
功能齐全,各种插件一应俱全。但依赖 Python 环境,冷启动稍慢。适合本来就常用 Python 的朋友,顺手管理。
🔹 Golang 的 gowebdav
编译完就一个二进制文件,三五兆大小,内存占用极低。并发支持天然不错,一条命令启动,干净利落。
🔹 Rust 的 rwebdav 或 dufs
也都是单文件小钢炮,性能跟 gowebdav 不相上下。如果你更熟悉 Rust 生态,完全可以考虑。不过 gowebdav 在配置简洁度上我觉得更胜一筹。
下面重点来了 —— 如果你的需求就是“轻量同步,不想折腾”,闭眼选 gowebdav 就行。这也是咱们今天的主角。
🛠️ 第三部分:实战:让 gowebdav 在 Termux 里跑起来
📥 第一步:环境准备
安装 Termux 后,第一件事就是换源,否则下载速度能急死人。打开 Termux,执行:
termux-change-repo
在弹窗里把镜像源勾选上(如清华、中科大),确定。然后更新包管理:
pkg update && pkg upgrade -y
还要装个文本编辑器,后面改配置用。我习惯用 nano,你也可以用 vim:
pkg install nano -y
最后,给 Termux 访问存储的权限,不然你的 WebDAV 只能在本目录里打转:
termux-setup-storage
🚀 第二步:获取 gowebdav
这里有一点要特别注意,Termux 的官方源目前没有直接收录 gowebdav
目前网络上能搜索到的 gowebdav 有几个不同版本,我选择的是https://github.com/117503445/GoWebDAV
就冲着它的 Slogon: a lightweight, easy-to-use WebDAV server
当然也因为它的 star 数相对靠前!
按照官方提示,直接到 Releases 页下载二进制包,这里使用 wget 方式下载
# https://github.com/117503445/GoWebDAV/releases
$ wget https://github.com/117503445/GoWebDAV/releases/download/1.11.0/gowebdav_linux_arm64
# 重命名一下方便调用(看个人喜好,也可以挪到 $PREFIX/bin/ 下去,我是直接在家目录里用了,方便后期备份)
$ mv gowebdav_linux_arm64 gowebdav
⚙️ 第三步:配置并启动
-
--address "0.0.0.0"- 默认即可,可省略 -
--port "8020"- 自定义端口,默认80,这个要改,80很多权限问题不让用 --dav "prefix,pathDir,username,password,readonly"- 定义共享目录-
prefix 表示路由路径,pathDir表示本机共享目录(可使用相对路径)
-
username, password 如果设置为
null,则免登录 -
readonly 控制是否可写,true表示只读,false可写
-
# 先创建一个共享目录作
$ mkdir -p webdav/docs
$ cd webdav
# 启动服务进程
$ ./gowebdav --port "8020" --dav "/files,./docs,username,password,false"
如果你已经用了 termux-services 来管理服务进程,这里给出一个run文件的参考脚本:
#!/data/data/com.termux/files/usr/bin/bash
exec 2>&1
cd ~/webdav/gowebdav
exec ./gowebdav --port "8020" --dav "/files,./docs,username,password,false"
再说个容易翻车的点:
这里我是用的相对路径./docs来作为WebDav根目录了,
如果你是用的 storage,那root 路径别写到 SD 卡根目录,Termux 在某些安卓版本上跨文件系统写数据会有权限问题,就用 storage/shared 下面的路径最稳妥。
服务起来后,打开手机浏览器访问 http://127.0.0.1:8020,应该能看见文件列表了。
局域网内其他设备就用手机在局域网内的IP加端口访问即可。
🔗 第四部分:应用连接实战
📜 Tampermonkey 油猴脚本同步
在设置里找到“脚本同步”,选 WebDAV。
服务器地址填 http://你的手机IP:8020/
用户名密码就是之前配置的。
点“同步”那一刻,所有脚本都安全落地了,非常有安全感。
📚 KOReader 阅读进度同步
打开设置 -> 阅读统计 -> 同步 -> WebDAV。
服务器填 http://你的手机IP:8020/koreader/
连接成功以后,读书进度、笔记会自动同步。换设备接着读,丝滑得像没换过一样。
💡 最后的啰嗦:注意事项与更高阶的玩法
🔹 IP 地址问题:
家里 Wi-Fi 环境 IP 一般不变,但出了门想用呢?
可以用 ZeroTier 或 Tailscale 组个虚拟局域网,走内网 IP 直连,安全又方便。
这是另一个话题,但值得你去探索。
🔹 端口选择:
8080 可能跟其他开发服务冲突,换到 8020 或别的冷门端口更清静。
🔹 数据备份:
虽然服务在自己手里,但手机存储也有坏掉的风险。
定期把 WebDAV 根目录 rsync 到电脑或 U 盘,双重保险。
🔹 工具的选择上,我认为顺手的才是最好的!
gowebdav 不一定最强大,但在“简单够用不折腾”这个维度上,它在我这里拿了高分。
✨ 结尾:折腾是为了更好的不折腾
说到底,花上半小时搭好这个服务,换来的是今后无数次换设备、刷系统时的从容。
数据自己掌握,同步随时进行,这种如臂使指的感觉,就是咱们爱折腾的动力源泉吧。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)