源码湾 源码湾

dufs 文件服务器:3.3MB 单文件,带 WebDAV,一条命令开跑

源码湾
2小时前发布
资源信息 Windows / Linux 双平台,解压即用。
版本
v0.47.0
授权
Apache-2.0
体积
3.7 MB
语言
Rust
数据库
无
演示
https://github.com/sigoden/dufs
夸克网盘 无提取码 下载

今日下载 0 累计下载 0 还剩 5 个

家里那台旧笔记本装了 Linux,存着几百 G 的照片和备份;手机上想看一张,得先开电脑、开文件管理器、找到目录——最后往往放弃,直接用微信传。

装一套 Nextcloud 太重,跑个 Samba 又只能在局域网里用 Windows 访问,手机端体验约等于没有。真正想要的东西很简单:一个地址,打开就是目录,点一下就能下载,最好还能当网盘挂到系统里。

dufs 就是干这个的。单个可执行文件 3.3MB,没有配置文件也能跑,自带网页界面和 WebDAV,Apache-2.0 协议,GitHub 上 1.1 万个 Star。启动到端口可连,Windows 0.35 秒、Linux 0.03 秒。上传、下载、删除、搜索、图片预览全都在,Windows 和 Linux 都跑过一遍,下面把数字和踩到的坑一起写清楚。

dufs 是什么,和 FileBrowser 差在哪

这一类工具里最有名的是 FileBrowser,本站之前单独写过。两者的定位其实不完全一样:

  • FileBrowser 是一个应用。有用户体系、分享链接、命令执行,界面做得像个网盘产品,单文件 20MB 出头。
  • dufs 更像一把瑞士军刀。3.3MB,默认只读,加 --allow-upload 才能写,光靠命令行参数就能配完,不落配置文件。
  • WebDAV 是 dufs 的主打。它本身就是个 WebDAV 服务器,能直接映射成网络驱动器;FileBrowser 这块要弱一些。

功能上 dufs 该有的都有:目录列表、上传下载、删除重命名、在线搜索、图片和文本预览、打包下载整个文件夹、多账号权限。

代价同样明确:它没有用户注册、没有分享链接、没有外链统计。它解决的是「把目录挂出来」,不是「做一个网盘产品」。

我的测试环境

  • Windows:Windows 11,解压后直接运行,没装服务、没写注册表
  • Linux:CentOS Stream 9,x86_64,香港节点,走面板 Web 终端操作
  • 共享目录:两边的测试目录里都放了子目录和普通文件
  • 验证方式:网页打开列表 → 上传一个文件 → 读回校验内容 → 删除 → PROPFIND 验证 WebDAV → 加账号验证鉴权

部署:Windows 只要一条命令

解压 dufs-v0.47.0-x86_64-pc-windows-msvc.zip,里面只有一个 dufs.exe,3.3MB。

dufs.exe D:\共享目录 -p 5000

浏览器打开 http://127.0.0.1:5000 就能看到列表。默认是只读的:能看能下,不能改。要开放上传就加参数:

dufs.exe D:\共享目录 --allow-all -p 5000

实测从执行命令到端口可连 0.35 秒,没有「初始化数据库」之类的等待。

部署:Linux 一样

tar xzf dufs-v0.47.0-x86_64-unknown-linux-musl.tar.gz
chmod +x dufs
./dufs /data/share --allow-all -p 5000

注意发布的是 musl 静态链接版,不依赖 glibc,扔到任何 x86_64 Linux 上都能跑,不用管系统版本。实测启动 0.03 秒,比 Windows 快一个数量级。

常用参数

它没有配置文件也能用,参数直接写在命令后面:

  • -p 5000:端口;-b 0.0.0.0:绑定地址
  • --allow-upload / --allow-delete / --allow-search:按需放开
  • --allow-all:一次全开
  • -a "user:pass@/:rw":加账号,rw 可读写,只读用 r
  • --enable-cors:给别的前端调用时打开
  • --hidden "*.log,*.tmp":列表里藏掉某些文件

实测数据

同一套操作,两个平台分别跑,下面每个数字都是当次跑出来的:

  • 主程序体积:Windows dufs.exe 3.30MB;Linux 3.97MB(musl 静态链接)
  • 启动到端口可连:Windows 0.348 秒;Linux 0.030 秒
  • 网页列表:GET / 返回 200、text/html
  • 上传下载删除:PUT 201 → 读回内容逐字节一致 → DELETE 204
  • WebDAV:PROPFIND Depth:1 返回 207 且带 multistatus,OPTIONS 的 DAV: 1, 2, 3 两边一致
  • 鉴权:不带凭据 401,带正确账号 200
  • 整合包:3.69MB(双平台主程序 + 使用说明 + LICENSE)

跨平台一致性有个硬证据:Linux 那份安装包在本地和服务器上分别下载,sha256 逐字节相同(c715c44b…),说明官方发的是同一份产物,不存在平台定制差异。

解压即用也验了一遍:解到全新目录,直接跑包里的 exe,0.348 秒可连,上传返回 201、PROPFIND 返回 207。

界面长什么样

目录列表 - dufs 文件服务器:3.3MB 单文件,带 WebDAV,一条命令开跑

首页就是目录列表:左边文件夹和文件图标,中间是修改时间和大小,右边一排操作按钮(下载、移动到、重命名)。顶上那排图标依次是回到根目录、上传、新建文件夹、新建文件、搜索。

子目录 - dufs 文件服务器:3.3MB 单文件,带 WebDAV,一条命令开跑

点进子目录,路径显示在左上角,可以点回去。列表排序由表头控制,点一下「名称」就按名字排。

图片预览 - dufs 文件服务器:3.3MB 单文件,带 WebDAV,一条命令开跑

图片、文本、Markdown 都能直接在浏览器里打开,不用先下载。上面这张就是共享目录里的图片直接预览的效果。

手机端 - dufs 文件服务器:3.3MB 单文件,带 WebDAV,一条命令开跑

手机上不用装 App,浏览器打开就是同一套界面,自动变窄。局域网里把地址发给别人,对方点开就能拿文件。

两个真实的坑

第一个,--render-index 不是「渲染目录列表」。 我一开始想当然地加了这个参数,结果首页直接 404。看帮助才明白:它是「请求目录时返回该目录下的 index.html,找不到就 404」,是给纯静态站点用的。想要目录列表,什么都不用加——默认就是内置界面。

第二个,--auth 的规则写法和配置文件不同。 命令行里 -a "admin:口令@/:rw" 是有效的(实测 401/200 都对),但同样一条规则搬进 YAML 就会被拒:

error: line 12 column 3: Invalid auth value

这一条我踩了两次,所以这次的整合包里只给命令行用法,不给配置文件模板——没验证过的写法不往包里放,免得你照着抄然后启动失败。

另外提醒一句:默认只读,不少人部署完发现「上传按钮点了没反应」,其实只是没加 --allow-upload。

上线:常驻与安全

命令行跑着关窗口就断,正式用挂成服务。

Linux 用 systemd,ExecStart 指向 dufs 并带上共享目录和端口;Windows 用 nssm 或任务计划程序。

对外开放前必须做两件事:

  • 加账号。不加 -a 的话,同网段任何人打开这个地址就能翻你的目录。
  • 别裸奔公网。前面套 Nginx + HTTPS,只让 443 对外,5000 只监听内网。

这几类人适合,这几类不适合

适合:

  • 有台常开的机器,想把手里的目录共享给手机、平板、别的电脑
  • 需要一个能挂载成网络驱动器的 WebDAV 服务
  • 想要极简部署,不想为「共享个文件夹」装一整套网盘系统
  • 在内网做临时文件中转,用完就关

不适合:

  • 要做多用户网盘产品的人。它没有注册、没有分享外链、没有配额
  • 需要在线预览 Office 文档、在线协作编辑的人
  • 完全不设防就想扔公网的人,那样等于把硬盘目录公开了
  • 需要审计日志、回收站、版本管理的人

常见问题

源码获取

建议先转存到自己网盘再下载。手机上打开链接点右下角「保存到网盘」,回头在夸克 App 的「我的网盘」里下载。

实测说明

本文截图全部来自本站实测环境(源码湾 yuanmawan.com),实测版本 dufs v0.47.0,许可证 Apache-2.0。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
OωO
取消