摘要: 还在为不同软件间的配置同步头疼吗?本文带你用一部安卓手机,通过 Termux 和一款轻量级神器 gowebdav ,零成本搭建私人 WebDAV 服务器。
无需公网 IP,不用注册第三方服务,十分钟就能让 Tampermonkey、KOReader 等软件实现无缝同步。
内含详细避坑指南和方案对比,让你少走弯路。
🤔 你是不是也受够了配置丢失的苦?
不知道你有没有这样的经历:
辛辛苦苦攒了一堆油猴脚本,结果换个设备或者重置系统后全没了;或者在 KOReader 里看书的进度、笔记,换个设备就找不到北了。
我反正是被这种事情搞怕了,那种"从头再来"的感觉真的很糟糕。
说白了,我们缺的其实是一个轻量、可控、随时在线的同步中转站 。
各种网盘虽然方便,但要么接口不开放,要么隐私上让人犯嘀咕。
这时候,WebDAV 这个老牌协议就该上场了。
🎯 这篇文章能帮你什么?
我会分享怎么用 Termux(安卓上的终端神器)搭一个极简 WebDAV 服务,让你出门只带手机也能搞定配置同步。
我们会重点聊聊 gowebdav 这个我偏爱的工具,也顺带对比其他方案,让你选出最适合自己的那一个。
🗺️ 主要内容路线
🔹 为啥 WebDAV 是同步配置的好选择
🔹 几个主流轻量方案横向对比,为什么我选 gowebdav
🔹 Termux 环境准备与小坑提醒
🔹 手把手安装配置 gowebdav,让它跑起来
🔹 如何让它在后台老实待着(Termux:Boot 加持)
🔹 实际应用:Tampermonkey 和 KOReader 怎么连上来
👩💻我是爱折腾的一名程序媛 ,喜欢研究全栈开发 的各种实践,热爱分享踩坑后的收获与思考 ,也享受用代码写出各种实用小工具解决问题的快乐。
如果你也在技术这条路上向前走,关注我,愿我们能彼此陪伴,一起成为更好的自己 🌱
📌 第一部分:为什么是 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 不一定最强大,但在"简单够用不折腾"这个维度上,它在我这里拿了高分。
✨ 结尾:折腾是为了更好的不折腾
说到底,花上半小时搭好这个服务,换来的是今后无数次换设备、刷系统时的从容。
数据自己掌握,同步随时进行,这种如臂使指的感觉,就是咱们爱折腾的动力源泉吧。
如果你也搭好了,或者遇到了什么奇葩问题,欢迎回来告诉我。
顺手的话,点个赞,收个藏,加个关注,后面我还会分享更多这种"小工具解决大烦恼"的经验。咱们下次见!👋