
不知道你有没有这样的经历辛辛苦苦攒了一堆油猴脚本结果换个设备或者重置系统后全没了或者在 KOReader 里看书的进度、笔记换个设备就找不到北了。我反正是被这种事情搞怕了那种“从头再来”的感觉真的很糟糕。说白了我们缺的其实是一个轻量、可控、随时在线的同步中转站。各种网盘虽然方便但要么接口不开放要么隐私上让人犯嘀咕。这时候WebDAV这个老牌协议就该上场了。 这篇文章能帮你什么我会分享怎么用 Termux安卓上的终端神器搭一个极简 WebDAV 服务让你出门只带手机也能搞定配置同步。我们会重点聊聊gowebdav这个我偏爱的工具也顺带对比其他方案让你选出最适合自己的那一个。️ 主要内容路线 为啥 WebDAV 是同步配置的好选择 几个主流轻量方案横向对比为什么我选 gowebdav Termux 环境准备与小坑提醒 手把手安装配置 gowebdav让它跑起来 如何让它在后台老实待着Termux:Boot 加持 实际应用Tampermonkey 和 KOReader 怎么连上来我是爱折腾的一名程序媛喜欢研究全栈开发的各种实践热爱分享踩坑后的收获与思考也享受用代码写出各种实用小工具解决问题的快乐。如果你也在技术这条路上向前走关注我愿我们能彼此陪伴一起成为更好的自己 第一部分为什么是 WebDAV又为什么是 TermuxWebDAV 这协议吧年纪比不少程序员都大但胜在简单、通用。大部分效率工具、阅读器都原生支持不用额外装客户端。你只需要一个能存文件的服务端剩下的事软件自己就搞定了。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你也可以用 vimpkg 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/bashexec 21cd ~/webdav/gowebdavexec ./gowebdav --port 8020 --dav /files,./docs,username,password,false再说个容易翻车的点