惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
宝玉的分享
宝玉的分享
I
InfoQ
P
Privacy International News Feed
V
V2EX
IT之家
IT之家
S
SegmentFault 最新的问题
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V2EX - 技术
V2EX - 技术
C
CERT Recently Published Vulnerability Notes
C
Check Point Blog
The Register - Security
The Register - Security
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
AWS News Blog
AWS News Blog
M
MIT News - Artificial intelligence
C
Cyber Attacks, Cyber Crime and Cyber Security
F
Fortinet All Blogs
B
Blog
N
Netflix TechBlog - Medium
B
Blog RSS Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
T
Threatpost
Forbes - Security
Forbes - Security
U
Unit 42
A
Arctic Wolf
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recorded Future
Recorded Future
L
Lohrmann on Cybersecurity
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
月光博客
月光博客
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
I
Intezer
V
Visual Studio Blog
阮一峰的网络日志
阮一峰的网络日志
The Hacker News
The Hacker News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
MyScale Blog
MyScale Blog
腾讯CDC
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
量子位

博客园 - 一名程序媛呀

Anki插件开发必知必会:钩子函数与右键菜单定制 httpx 传参总报错?这次把 GET、POST、文件上传到响应处理的坑给你一次填平 从卡顿到丝滑:FastAPI 调用外部 API 的正确姿势(httpx 实战) 还在 XHR、Fetch 和 Axios 之间纠结?我踩过的坑,希望你一个都不用碰到 你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南 Uvicorn、Gunicorn 傻傻分不清?FastAPI 生产部署避坑指南 Termux里的二进制和脚本,到底怎么运行才不踩坑?Termux-service 保活妙招! 刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API 别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了 别只盯着GitBook了!这个文档神器让你的笔记秒变网站 写爬虫时用了代理还被封?Python 代理的那些隐藏坑,我替你踩明白了 FastAPI 身份验证总踩坑?这份 FastAPI Users “避坑指南”请收好 旧手机别扔!用 Termux 搭个私人云盘,比网盘香多了 你的FastAPI又在服务器上“跑不起来”了?来,今天咱把打包这件事彻底聊透 写页面时别再把 Element Plus 整个搬进来啦!Vue3按需加载的坑我帮你踩平了 前端包管理咋选?我从npm叛逃到pnpm的血泪史(附避坑指南) 聊聊 fetch 使用中我踩过的那些坑和正确打开方式 FastApiAdmin 后端接口开发好了,前端管理界面怎么调用与显示? 给 FastApiAdmin 加个“会议纪要”模块,我把后端二次开发的坑踩了个遍 我用了FastApiAdmin后,连夜把踩过的坑都整理出来了 告别 Typora 后的新欢:我把所有笔记迁移到了 Obsidian 这个“第二大脑” 你的Agent API还在裸奔?从认证到沙箱,我用FastAPI搭了几道防线 让 FastAPI Agent 思考不阻塞:手把手教你实现异步任务与后台处理方案 让FastAPI Agent真正记住你:聊聊会话记忆与持久化存储的落地实践 FastAPI Agent 函数调用实战:我让 AI 学会了“自己动手查天气“ 初探:用 FastAPI 搭建你的第一个 AI Agent 接口 FastAPI 少有人提的实用技巧:把 Depends 依赖提到路由层,代码少写60% FastAPI 生产环境静态文件完全指南:从 /favicon.ico 404 到 HSTS 混合内容,一次全根治 用了loguru我才明白,Python日志还能这么写 FastAPI 后台任务:BackgroundTasks 的使用场景与注意事项 FastAPI配置管理避坑指南:从硬编码到 .env 与 pydantic_settings 类,连路由用法都给你捋清楚 FastAPI 文件上传避坑全指南:分块存盘、类型校验与安全兜底 FastAPI + Pydantic 模型终极实战手册:从能跑就行到固若金汤,这些技巧你一定用得上 FastAPI + SQLAlchemy 2.0 通用CRUD操作手册 —— 从同步到异步,一次讲透 FastAPI订单防超卖实战:从数据库锁到Saga分布式事务,这一篇给你理清了 FastAPI 生产环境避坑指南:用 Alembic 管理数据库迁移,别再手动改表结构了! FastAPI服务半夜又挂了?先别急着重启,查查你的数据库连接池“池子”是不是漏了 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 Vue 3 组合式 API 香是香,但从Vue2迁移时你可别像我当初一样踩进这 3 个深坑里 我用fastapi-scaff搭了个项目,两天工期缩到两小时,老板以为我开挂了 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! FastAPI自动生成的API文档太丑?我花了一晚上把它改成了客户愿意付费的样子 告别手写 API 胶水代码:FastAPI 与 Vue 的“契约自动机” OpenAPI 实战 FastAPI + Vue 前后端分离实战:我的项目结构“避坑指南” FastAPI + Celery 实战:异步任务里调用 Redis 和数据库的全解析,及生产级组织方案 FastAPI里玩转Redis和数据库的正确姿势,别让异步任务把你坑哭了! FastAPI + Celery 实战:异步任务的坑与解法,我帮你踩了一遍 FastAPI子应用挂载:别再让root_path坑你一夜 FastAPI项目半夜报警吵醒你?聊聊告警这事儿怎么搞! 别再数据线了!用FastAPI 5分钟搭个局域网文件+剪贴板神器 FastAPI单元测试实战:别等上线被喷才后悔,TestClient用对了真香! FastAPI状态共享秘籍:别再让中间件、依赖和路由“各自为政”了! FastAPI实战:WebSocket vs Socket.IO,这回真给我整明白了! 从0到1,FastAPI + PostgreSQL + Tortoise ORM 实战避坑指南 FastAPI + PostgreSQL 实战:给应用装上“缓存”和“日志”翅膀 FastAPI + PostgreSQL 实战:从入门到不踩坑,一次讲透
掏出手机就能搭个 WebDAV 同步服务器?这操作有点香
一名程序媛呀 · 2026-06-16 · via 博客园 - 一名程序媛呀

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

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

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

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

如果你也搭好了,或者遇到了什么奇葩问题,欢迎回来告诉我。
顺手的话,点个赞,收个藏,加个关注,后面我还会分享更多这种“小工具解决大烦恼”的经验。咱们下次见!👋