LanNook:在局域网里,把手机和电脑真正连起来
手机和电脑之间传文件,常见做法无非是接数据线、走网盘,或再装一个第三方工具。它们都能用,只是有时显得绕:两台设备明明在同一个房间,文件却要先传到云端,再从另一端下载回来。
LanNook 想把这件事收回到局域网里解决。电脑端启动服务,手机用浏览器连接;在同一个可信网络中,文件直接在设备之间流动,不需要注册云端账号,也不必把内容交给公共存储服务。
项目概览
- 项目地址:by-fengqiao/lannook
- 适用场景:家庭、工作室、办公室等可信局域网内的临时文件交换
- 核心边界:它是局域网传输工具,不是云盘,也不负责远程备份
为什么做它
很多需求其实很小:把手机里一组照片拷到电脑,或者把电脑上的压缩包临时发给手机。可在常见流程里,常常要经历登录、上传、等待同步,再下载一次。
如果设备本来就在一起,这段绕路没有太多必要。LanNook 不试图覆盖远程访问或云端同步,而是把事情限定为两件:让同一局域网中的设备建立连接,然后完成文件传输。
这也意味着它有明确的使用条件:手机和电脑需要处在能够互相访问的网络中。公共 Wi-Fi、访客网络,或开启客户端隔离的网络,可能无法正常连接。
从扫码到传输
启动 LanNook 后,电脑端会给出局域网地址和连接二维码。手机可以扫码,也可以在浏览器输入完整地址。
不要填 localhost
手机浏览器中的 localhost 和 127.0.0.1 指向的是手机自己,而不是电脑。连接时应使用电脑显示的局域网地址。
手机发起连接后,电脑端会展示设备授权请求。可以查看设备名称、平台和连接状态,再决定只允许这一次,还是加入信任列表。局域网并不天然等于安全;电脑端主动确认设备,至少避免了“被发现就开放”的情况。
手机端直接调用浏览器的文件选择器。照片、视频、文档和压缩包都可以选择,不需要另装移动端 App。
电脑端可以把文件拖进页面,也可以通过文件选择器添加。接收端用浏览器打开移动页面即可取回文件。
传输任务会集中显示在“传输中心”,可查看等待、进行中、完成、失败或取消的记录。发送大文件时,页面还会给出进度、已传输大小、实时速度和预计剩余时间,便于判断任务是在正常推进,还是已经停住。
文件校验解决什么问题
传输完成不代表文件一定完好。网络抖动、连接中断或写入异常,都可能让接收的文件不完整。
LanNook 会在传输结束后生成 SHA-256 指纹,用户可以展开查看并手工比对。它只回答“文件有没有变化”,并不判断文件是否安全,也不能代替杀毒软件或备份。
数据和安全边界
设备记录、授权状态和传输历史保存在运行 LanNook 的电脑本地,文件传输以局域网连接为主。项目不要求注册账号,也不把公共云端当作默认中转站。
这减少了对第三方云服务的依赖,但不替用户判断网络是否可信。连接前仍应确认网络环境,不要随意授权陌生设备。
桌面端与手机端各自做什么
LanNook 的桌面端使用 Tauri 2,负责启动局域网服务、管理设备授权、保存本地记录和处理文件操作。手机端通过浏览器访问移动页面,因此无需单独维护 Android 或 iOS 客户端。
桌面应用面向 Windows、macOS 与 Linux,并可放到系统托盘中运行。设置中可以决定关闭窗口后直接退出,还是继续在后台提供服务。界面支持中英文切换,首次启动会说明启动服务、扫码连接、电脑端授权和传输文件的基本步骤。
技术实现
前端使用 Vue 3、TypeScript、Vite 与 Pinia;桌面能力由 Rust 和 Tauri 2 提供。局域网服务基于 Axum 与 Tokio,设备发现使用 mDNS,实时状态通过 WebSocket 推送,本地数据保存到 SQLite。
文件传输包含分片处理、断点续传和完整性校验。Vue 负责界面与交互,Rust 处理本地服务、文件系统和跨平台桌面能力,两部分各自做自己擅长的事。
安装与运行
可从 GitHub Releases 下载适合系统的版本:
- Windows:
.exe、.msi - macOS Intel / Apple Silicon:
.dmg - Linux:
.AppImage、.deb
git clone https://github.com/by-fengqiao/lannook.git
cd lannook
npm ci
npm run tauri dev构建安装包:
npm run tauri build它适合什么,不适合什么
我更愿意把 LanNook 看成“附近设备传文件”的工具。它把局域网内的连接和传输做得更直接,剩下的选择仍由使用者自己决定。
项目按 GPL-3.0-only 许可证开源。遇到问题或有改进想法,可以前往 GitHub Issues 反馈。