你大概用过 AirDrop 在两台 iPhone 之间"咣当"一下甩出一张照片,但你有没有想过——把文件从 iPhone 发到 Windows PC、从 Mac 发到安卓平板——这件事为什么至今没有一个体面的原生方案?LocalSend 用 9.1 万颗星给出了一个答案:去中心化直连 + HTTPS 加密 + 一份 Flutter 代码覆盖 6 大平台。对开发者来说,它的架构选择、分发策略和安全实践,比"文件互传"本身更值得拆解。

一、一个被忽略的痛点:跨平台文件互传没有原生解
把一张 8MB 的截图从 iPhone 发到 Windows PC,把一份 PRD 从 Mac 拖到 Linux 开发机,把会议录音从安卓平板丢到 macOS 桌面——这些动作每天都发生在办公室、会议室、差旅酒店。
AirDrop 只活在苹果生态里;Windows 的"就近共享"对苹果设备隐形;Linux 基本只能靠 U 盘或网盘。跨平台文件互传是一个被生态割据逼出来的灰色地带。LocalSend 选了最直接的方式:在同一个 WiFi/局域网里,让设备互相发现并直连,全程不上云、不经过第三方服务器。
二、LocalSend 的核心定位
2.1 全平台覆盖
LocalSend 官方支持 6 大平台:
| 平台 | 最低要求 | 分发渠道 |
|---|---|---|
| Windows | Windows 10+ | Winget / Scoop / Chocolatey / 官网 MSI |
| macOS | macOS 11 Big Sur+ | Homebrew Cask / App Store / 官网 DMG |
| Linux | 桌面环境 + xdg-desktop-portal | AUR / Flathub / Snap / Nixpkgs |
| Android | Android 5.0+ | Google Play / F-Droid |
| iOS | iOS 12.0+ | App Store |
| Fire OS | — | Amazon Appstore |
一份 Dart/Flutter 代码,6 个平台编译产物,UI 一致性天然保证。
2.2 不只是文件,还能互发文字消息
支持文件 + 多语言文字消息,接收方可以选择保存路径。多设备同时传输、向局域网里所有打开 LocalSend 的设备群发——这些是基础能力。
2.3 完全离线
没有账号体系、没有云中转、没有强制注册。安装即用,离线可用——这点在会议室、差旅、隐私敏感场景下是硬指标。
三、技术架构:去中心化直连是怎么做到的
3.1 设备发现:mDNS
LocalSend 不维护中心服务器,设备发现依赖 multicast DNS(mDNS)——这是苹果 Bonjour、Android NSD、Avahi 的底层协议。换句话说,你打开 LocalSend,它会在局域网里喊一声"我在这儿",其他设备的 LocalSend 立刻看到你。
这是去中心化直连的关键:没有配对流程,没有邀请码,没有"加好友"。
3.2 数据通道:REST API + HTTPS + 端口 53317
设备互相发现后,通过 REST API over HTTPS 在专用端口 53317(TCP/UDP)建立加密隧道传输文件。文档明确给出防火墙放行指南,普通家用/办公路由器几乎不用配置。
3.3 为什么选 Flutter
- 一份代码 → 6 平台:避免每平台各养一个原生团队
- UI 一致性:不用为 Material/Cupertino/SwiftUI 各写一遍
- REST 协议天然契合:HTTP 是平台中立的,Flutter 调用标准 HTTP 客户端即可
当然 Flutter 也有它的代价——包体积、性能、对系统新 API 的延迟——但对工具型 app,跨平台覆盖的收益远大于这些成本。
3.4 局限性
- iOS/macOS:iOS 12.0+,macOS 11+,旧设备需 OpenCore Legacy Patcher
- Linux:依赖
xdg-desktop-portal,Gnome/KDE 各自需要装对应包 - 无自动更新:官方推荐从应用商店/包管理器装,避免手动更新散落
四、安全与隐私实践
| 维度 | 做法 |
|---|---|
| 传输加密 | 全程 HTTPS / TLS,接收方可验证证书 |
| 数据流 | 设备 → 设备,零中转,零服务器 |
| 账号体系 | 无需注册,匿名通信 |
| 代码签名 | Windows 二进制已签名,可验证来源(CODE_SIGNING.md 公开流程) |
| 防火墙 | 文档明确给出 53317/UDP+TCP 放行指引,避免"装上但传不动" |
"不经过第三方服务器"这一点在 2026 年依然重要——云端中转意味着数据多了一次落地,多了一份审计日志,多了一个潜在泄露面。对设计稿、合同、源码、未公开产品文档这类敏感文件,本地直连是更安全的选择。
五、分发渠道策略:把"安装门槛"压到最低
LocalSend 的多渠道覆盖做得非常彻底:
- macOS 用户:
brew install --cask localsend一行命令搞定 - Windows 用户:
winget install localsend或scoop install localsend - Linux 用户:AUR / Flathub / Snap / Nixpkgs 任选
- 移动用户:App Store / Google Play / F-Droid(重视开源隐私的用户首选 F-Droid)
- CLI 场景:官方提供
localsendCLI 工具,支持脚本化批量传输
这种"用户用什么平台就给什么渠道"的分发策略——把安装门槛压到"打开终端敲一行命令"或"打开应用商店点一下"——是开源工具从"圈内自嗨"走向"普通用户也能上手"的关键。
CONTRIBUTING.md 明确写出各平台分发规范,README 直接挂各平台安装命令——文档先行,安装命令能复制粘贴,这两件事决定了一个开源工具能不能破圈。
六、对开发者的启示
6.1 跨端工具的"协议中立"原则
LocalSend 选 REST API 作为内部通信协议,而不是自定义二进制协议。这意味着任何能发 HTTP 请求的客户端——Python 脚本、Shell 工具、另一个 Flutter app——都可以快速接入。
对 OpenClaw Skills 这种跨端协同场景的启示:协议层中立(HTTP/WebSocket/gRPC)比框架层绑定(必须用某个 SDK)更有长期价值。
6.2 去中心化直连的可行性
很多人以为"去中心化"必须上区块链、必须 P2P 网络库——LocalSend 用最朴素的 mDNS + 局域网 TCP/UDP 就在 90% 的真实场景里解决了问题。
启示:在选架构前先问"问题是不是真的需要这么复杂的解"。90% 的"跨设备互传"发生在同一个局域网里,mDNS + 直连就够了;只有跨广域网、需要 NAT 穿透的场景才需要更重的方案。
6.3 代码签名与发布流程
Windows 二进制签名流程(CODE_SIGNING.md 公开)+ 多平台分发渠道同步——这是"开源 ≠ 草台班子"的范本。对任何要做桌面端发布的开源项目,这套流程可以直接抄。
七、一句话总结
LocalSend 用 9.1 万颗星证明了:真正解决用户痛点的开源工具,不需要融资、不需要商业化、不需要营销预算——只要把"安装-使用-分发"三件事做到极致,社区会用 Star 投票。
如果你的工作流里有"跨平台文件互传"这个一直没解决的小痛点,今天就可以 brew install --cask localsend 试试;如果你是工具类开源项目的作者,LocalSend 的 Flutter + REST + mDNS + 多渠道分发组合,值得拆开抄一遍。
附:项目地址
- GitHub:https://github.com/localsend/localsend
- 官网:https://localsend.org