仅 9MB!魔改中文 Dufs,在飞牛 NAS 上搭一个超轻量文件分享服务
不知道你有没有过这种需求:想在家里养一个轻量的文件服务,能上传管理文件、能甩个链接给别人分享、最好还能直接丢个静态页面上去,复制链接就能打开。
我之前也找了一圈,Nextcloud 功能强但太重,占用高、依赖多;其它一些方案要么缺这缺那,要么配置麻烦。直到看到 Dufs 这个项目——一个用 Rust 写的 utility file server,单二进制、体积小、该有的功能基本都自带,目前 GitHub 上已经有 10k+ star。

原版是英文界面,没有中文切换,部分操作也不太顺手。社区里有人做了中文魔改版(JunWan666/dufs),顺手补上了中文界面、网页初始化账号、拖拽上传提示等。这篇文章就记录一下我在飞牛 NAS 上用 Docker 部署它、并配合 cpolar 做公网访问的全过程。
Dufs 是什么
Dufs 的官方定位很直白:一个支持静态文件服务、上传、搜索、访问控制和 WebDAV 的 utility file server。
它做的事情很简单——把某个目录、甚至单个文件,快速暴露成一个可以通过浏览器、命令行和 WebDAV 客户端访问的服务。不需要数据库,也不需要复杂的配置文件,一个可执行文件就能跑起来。
它最直观的特点就是「轻」:
- 单二进制:整个程序就是一个可执行文件,没有外部依赖,下载解压就能用。
- 体积小:编译后的二进制大约在 2MB 到 9MB 之间(取决于编译选项和平台),这就是我们常说的「9MB」。
- 跨平台:官方提供 Windows、macOS、Linux 的版本,也支持 Docker 部署。
这个体量意味着你把它扔到任何一台机器上——云服务器、NAS、甚至树莓派——都几乎零负担。
常用的功能基本都齐了
Dufs 虽然轻,但日常文件操作基本都覆盖到了:
- 静态文件服务:直接托管目录或单个文件,浏览器打开就能浏览和下载。
- 文件上传:支持拖拽上传文件/文件夹,支持断点续传。
- 在线编辑:可以在浏览器里直接创建、编辑文本文件。
- 搜索:按文件名模糊搜索。
- 权限控制:支持用户名密码认证,可以设置只读或读写权限。
- WebDAV:可以挂载为网络驱动器,Windows / macOS / Linux 都支持。
- 文件夹打包下载:整个文件夹一键打包成 ZIP。
- curl 调用:方便命令行操作和自动化。
这些能力不需要额外安装任何插件,Dufs 本身就带了。这也是我最后选它的原因。
部署:Docker 一条命令拉起
我平时用 NAS 比较多,部署直接走 Docker——不用管系统环境,一条命令拉起来就能跑,也有图形化管理界面,后面迁移也方便。
我用的是社区打包的中文镜像,基于上游 Dufs 做了中文适配。如果你也想试试,可以直接用命令拉取:
1 | docker run -d --restart unless-stopped \ |
如果你习惯在 NAS 的 Docker 图形界面里点,也可以照着下面步骤来。以飞牛 NAS 为例:

- 打开 Docker,确保 Docker 服务已经启动;
- 在左侧「镜像仓库」页搜索镜像
tannic666/dufs,标签保持latest默认即可,点击下载; - 下载完成后进入「本地镜像」页,点击右侧的「创建容器」;
- 勾选「开机自启动」,下一步;
- 在「高级设置」的存储位置里,把你想共享的文件夹挂载到容器内的
/data(也可以新建一个目录); - 最后点击「创建容器」。
容器跑起来后,在「容器」页把鼠标移到右侧的链接图标上,就能看到映射出来的端口,直接点击即可跳转到项目页面。
第一次打开记得点页面上的「设置密码」,给项目初始化一个管理员账号。如果打算放比较重要的文件,建议密码设复杂一点。
功能体验
容器跑起来之后我用了挺长时间,常用的功能基本都试了试,挑几个实用的说一下。
中文界面
魔改版把原版的英文界面换成了中文,菜单、按钮、提示都是中文,用起来顺手很多。如果习惯英文,在设置里也能切回去。

拖拽上传
直接把文件拖进页面,会出现全屏提示告诉你文件会传到当前目录,松手就开始上传,进度条走完就传好了。
复制链接分享
文件传完后,鼠标移到文件上,右侧有个「复制链接」按钮,点一下链接就到剪贴板了。把这个链接发给别人,对方不用装任何客户端,点开就能直接访问。
注意:刚部署完时文件链接还是 NAS 的局域网地址,目前只能同一个局域网下访问,公网访问可以看后面章节。
托管静态页面
我最初的需求里就有「丢个静态页面上去,复制链接就能访问」。Dufs 可以直接把 HTML 文件当静态资源跑——把 index.html 传到目录里,浏览器打开对应链接就能看到页面。做好的网页往里一放,链接发给朋友,对方用浏览器打开就能看效果。
WebDAV 挂载
Dufs 支持 WebDAV。在 Windows 资源管理器里「映射网络驱动器」,填上 http://飞牛NAS的IP:5000,输入账号密码,就能把 Dufs 挂成网络盘。如果 Windows 自带挂载方式连接失败,可以试试用 HTTPS 地址,或通过支持 WebDAV 的客户端连接。
文件夹打包下载 / 在线编辑 / 搜索 / 权限
- 文件夹右侧有下载按钮,点一下自动打包成 ZIP,适合一次拿走整个目录;
- 小文本文件可以直接在浏览器里编辑,也能按文件名搜索,临时改个配置、找文件很方便;
- 在设置里可以调整未登录访客的权限,包括全站只读、仅允许访问
public目录、以及禁止匿名访问。全站只读模式下,还可以按需开启「通过完整链接访问指定文件」。
公网访问:用 cpolar 把端口映射到外网
前面复制的文件链接还是 NAS 的局域网地址,在家里打开没问题,但手机关掉 Wi-Fi、或者把链接发给外地的朋友就访问不到了。
接下来用 cpolar 把飞牛 NAS 上 Dufs 的 5000 端口映射到公网,这样从外面也能打开文件页面,而飞牛的管理后台不需要对外开放。

安装 cpolar
先在系统设置里打开 SSH 功能,然后用 SSH 连进飞牛 NAS 的终端:
1 | ssh 飞牛用户名@你的Nas系统IP地址 |
进入后切换到 root(输入密码时不会显示):
1 | sudo -i |
然后执行下面命令安装 cpolar:
1 | sudo curl https://get.cpolar.sh | sh |
安装完成后查看服务状态,显示 active 即为正常启动:
1 | sudo systemctl status cpolar |
在浏览器中输入飞牛 NAS 的 IP + 9200 端口访问 Web UI 管理界面(例如 http://192.168.50.212:9200/),注册并登录账号即可进入后台。
创建隧道(免费随机域名)
随机域名方式更适合临时测试或短期使用,公网地址会在一段时间后变化,不适合长期固定访问,但配置简单、可以免费体验。
在左侧「隧道管理 → 隧道列表」里,点击「创建隧道」或编辑现有隧道,协议选择 http,本地地址填写 Dufs 的访问端口 5000,保存后点击「状态 → 在线隧道列表」,就能看到生成的公网地址(http 和 https 各一个,免去配置 SSL 证书的麻烦)。
固定二级子域名(长期推荐)
固定二级子域名需要 cpolar 基础套餐及以上。如果准备长期用它分享文件、托管静态页面或连接 WebDAV,更推荐配置固定域名,省去反复更换地址的麻烦。
- 登录 cpolar 官网后台,进入「预留」页面,找到「保留二级子域名」,填写地区、自定义名称(如
dufs01,名称唯一不可重复)和备注,点击保留; - 回到飞牛 NAS 上的 cpolar Web UI,编辑前面的 Dufs 隧道,把域名类型改为「二级子域名」,填入刚保留的名称,更新即可。
配置完成后,在线隧道列表里 Dufs 的隧道就会变成固定公网地址,浏览器访问验证一下,连里面存放的 HTML 文件也能正常显示。以后分享链接不用再因为地址变化而重发。
总结
折腾下来,Dufs 基本满足了最初的需求:把 NAS 上的一个目录挂出来,就能在浏览器里管理和分享文件,顺手放几个静态页面也很方便。这次社区二次开发主要补上了中文界面和网页初始化账号,日常用起来更顺手。
- 临时分享资料:上传文件后复制链接,按需设置访客权限;
- 做好的 HTML 页面也能放进去,方便发给朋友看效果;
- 配合 cpolar 固定域名,出门也能访问,WebDAV 的连接地址不用反复修改。
如果你也想给旧电脑或 NAS 加一个轻量文件服务,可以部署试试。原项目在 sigoden/dufs,中文魔改版在 JunWan666/dufs,使用中遇到问题欢迎去提反馈。
一个用 Rust 写的轻量级文件服务器:支持静态文件服务、上传、搜索、访问控制与 WebDAV。单二进制、零依赖、跨平台,编译后仅约 9MB,可托管静态页面、断点续传、文件夹打包下载,非常适合跑在 NAS 或低配机器上做私有文件服务。中文魔改版由社区维护。
项目地址:github.com/sigoden/dufs | 中文魔改版:JunWan666/dufs




