掏出手机就能搭个 WebDAV 同步服务器?这操作有点香

摘要: 还在为不同软件间的配置同步头疼吗?本文带你用一部安卓手机,通过 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 不一定最强大,但在"简单够用不折腾"这个维度上,它在我这里拿了高分。

✨ 结尾:折腾是为了更好的不折腾

说到底,花上半小时搭好这个服务,换来的是今后无数次换设备、刷系统时的从容。

数据自己掌握,同步随时进行,这种如臂使指的感觉,就是咱们爱折腾的动力源泉吧。

如果你也搭好了,或者遇到了什么奇葩问题,欢迎回来告诉我。

顺手的话,点个赞,收个藏,加个关注,后面我还会分享更多这种"小工具解决大烦恼"的经验。咱们下次见!👋

相关推荐
Code_Artist20 小时前
🦜用 GoAI 从零打造一个 AI Agent 脚手架工程:重新定义智能体开发范式!
go·agent·ai编程
ShuiShenHuoLe1 天前
OS的常用函数
go
踏着七彩祥云的小丑1 天前
Go学习第8天:接口 + 泛型 + 错误处理
开发语言·学习·golang·go
蓝宝石的傻话2 天前
rpi-cam:给 Raspberry Pi 造的轻量级 ONVIF 相机服务
go·iot·nvr
蓝宝石的傻话2 天前
VictoriaMetrics指标流聚合三年回顾与现状(2026)
go·prometheus·victoriametrics
踏着七彩祥云的小丑2 天前
Go学习第7天:Map集合 + 递归函数 + 类型转换
开发语言·学习·golang·go
踏着七彩祥云的小丑3 天前
Go 学习第6天:结构体 + 切片 + range遍历
开发语言·学习·golang·go
壮Sir不壮3 天前
GO语言——GMP调度模型
linux·开发语言·golang·go·操作系统·线程·协程