LocalSend 中文文档 下载 App

工作原理:两台设备如何互相发现

理解工作原理,对后面排查"搜不到设备"非常有帮助。这一页把官方公开的协议设计用日常语言转述一遍。技术细节以官方协议文档为准,功能可能随版本变化。

整体架构:没有中间商的点对点

绝大多数传文件方案都有一条"上传到服务器、对方再下载"的链路。LocalSend 的做法是:每台设备既是客户端也是服务器。打开应用后,你的设备会在本机启动一个 HTTP 服务,等待局域网里的其他设备来连接;发送文件时,你作为客户端直接连到对方那个服务上,把数据推过去。全程只有两台设备参与,所以速度取决于局域网本身,而不是某个服务商的带宽。

发现:我怎么"看见"附近的设备

两台设备互相认识,靠的是多播(组播)机制,默认参数是:

项目默认值
传输端口(TCP,HTTPS)53317
发现端口(UDP)53317
多播地址224.0.0.167

应用启动时会向这个多播地址广播一条"我在这里"的公告,里面带着设备名、设备类型、下载端口和指纹。同网段里所有开着 LocalSend 的设备都会收到,于是彼此的"附近的设备"列表就都有了对方。

多播不是在所有网络里都可用——一些路由器、访客网络或企业网会拦掉多播包。协议为此准备了退路:直接向已知的地址和端口发 HTTP 请求探测(收藏夹设备就是这样直达的),手动输入 IP 也属于这条退路。

传输:先谈清单,再传内容

一次真实的传输分两个阶段:

  1. 元数据协商:发送方先把文件清单(文件名、大小、类型)发给接收方,接收方弹窗询问"对方想发给你 N 个文件",你选择接受或拒绝。
  2. 正式传输:接受之后,文件内容通过 HTTPS 逐个送出,进度逐项显示,任何一方都可以中途取消。

这个"先谈后传"的设计解释了几个日常现象:为什么接收前总有确认弹窗(除非开了自动保存)、为什么取消只影响未完成的部分、为什么传输记录里能看到每个文件的独立状态。

加密:证书是现场生成的

连接走 HTTPS,但 LocalSend 没有也不可能去申请域名证书——它的做法是在每台设备上即时生成一张自签名证书,指纹取证书的 SHA-256 哈希值,用来区分设备、避免"自己发现自己"。接收方浏览器或对端应用信任这张证书即可建立加密通道。这也是为什么用浏览器打开链接分享页时会提示"证书不受信任",需要手动放行一次。

一句话总结

多播负责"找到你",HTTPS 负责"安全地把东西给你",两端设备自己包办一切——理解了这条链路,防火墙、AP 隔离、VPN 这些排查话题就都有的放矢了,对应内容见连接与发现分组。