局域网文件共享桌面应用,支持多用户权限管理、文件上传下载、在线预览。
服务端
- 启停 HTTP 文件服务(自定义端口,局域网可访问)
- 用户管理(增删改 + 密码加密存储)
- 共享目录管理(添加 / 删除 / 按用户设置读写权限)
客户端
- 连接管理(保存 / 编辑 / 删除连接信息,一键连接)
- 文件浏览(列表展示、类型图标、排序、面包屑导航)
- 文件操作(上传 / 下载 / 新建文件夹 / 重命名 / 复制 / 剪切 / 粘贴 / 删除)
- 右键菜单(文件区域 + 空白区域)
- 在线预览(图片缩放、视频播放、文本查看,独立窗口打开)
- 传输列表(上传 / 下载分 Tab、进度 / 速度 / 时间、打开文件所在目录)
设置
- 开机启动
- 启动后自动开启服务
- 关闭行为(直接退出 / 最小化到托盘)
- 默认下载目录
🌐 在线体验:http://fileshare.lykj.top
| 连接管理 | 文件列表 | 权限管理 |
| 手机端 · 连接 | 手机端 · 文件 |
| 层级 | 技术 |
|---|---|
| 框架 | Tauri v2 |
| 前端 | React 19 + TypeScript + Ant Design 6 + Zustand |
| 构建 | Vite 7 |
| 后端服务 | axum 0.8(HTTP + multipart + streaming) |
| 数据库 | SQLite(rusqlite bundled) |
| 认证 | JWT(jsonwebtoken) |
| 客户端请求 | reqwest(native-tls) |
| 并发控制 | 自定义 Readers-Writer Lock |
src/ # 前端
├── pages/
│ ├── client/ # 客户端浏览(连接管理、文件列表、预览)
│ ├── server/ # 服务端管理(服务控制、用户、共享目录、权限)
│ └── settings/ # 设置页面
├── hooks/ # 业务逻辑(连接、文件操作、传输)
├── services/ # Tauri invoke 封装
├── stores/ # Zustand 状态管理
├── layouts/ # 侧边栏布局
├── utils/ # 工具函数(文件类型、格式化、预览窗口)
└── types/ # TypeScript 类型定义
src-tauri/src/ # 后端
├── server/ # axum HTTP 服务(路由、文件操作、认证)
├── client/ # 远程连接客户端
├── commands/ # Tauri 命令层
├── db/ # SQLite 数据库(建表、用户、共享、连接、设置)
├── lock/ # 文件锁管理器
├── tray.rs # 系统托盘
├── utils/ # 工具(路径安全校验)
└── lib.rs # 应用入口
环境要求
- Bun 1.0+(包管理与构建)
- Rust 1.77+
- Tauri CLI (
bun run tauri)
启动开发
bun install
bun run tauri dev构建生产包
bun run tauri build三平台同源码,需在对应系统上各自构建打包。
| 平台 | 产物 | 注意点 |
|---|---|---|
| Windows | .msi / .exe |
首次开启服务自动放行防火墙(调用 netsh/powershell),若被自动生成的 Block 规则拦截会先删除再放行 |
| Linux | .deb / .AppImage |
需先装系统库 libwebkit2gtk-4.1-dev、libssl-dev(native-tls 依赖 OpenSSL);不自动配置防火墙,如有 ufw/firewalld 需手动放行服务端口 |
| macOS | .dmg / .app |
native-tls 走系统 Secure Transport,无额外依赖;不自动配置防火墙,首次联网可能弹系统授权 |
- 防火墙自动配置仅 Windows 生效,Linux/macOS 下为空操作(axum 绑定
0.0.0.0即可被局域网访问)。 - TLS 统一用
native-tls:Windows 走 Schannel、macOS 走 Secure Transport、Linux 依赖系统 OpenSSL(rustls 在 Windows 部分网络环境有兼容性问题,故不使用)。
MIT