发布时间:2026/9/5 19:01:10
LocalSend 全平台使用与构建指南:安装渠道、网络配置到源码级实现剖析 LocalSend 全平台使用与构建指南安装渠道、网络配置到源码级实现剖析【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend本篇指南基于 LocalSend 项目官方 README白俄罗斯语版 README_BE.md整理并深度扩充系统讲解这款开源跨平台 AirDrop 替代方案的下载渠道与兼容性、防火墙/路由器网络配置、便携模式与隐藏启动参数以及「无需互联网即可安全传文件」这一核心机制在 Rust 核心库中的实现依据。读完后你可以独立完成 LocalSend 在各平台的安装、排障、从源码构建Android/iOS/macOS/Windows/Linux 五个平台命令一应俱全并理解端口 53317、settings.json便携模式、--hidden参数背后的真实代码路径。LocalSend 是什么LocalSend 是一款免费、开源的跨平台程序通过REST API HTTPS 加密在局域网内的设备之间安全地交换文件与消息。与依赖外部服务器的其他传输/分享工具不同LocalSend不需要互联网连接也不需要任何第三方服务器——设备之间直接通信因此是快速、可靠的局域网互联方案。其核心工作方式所有数据均通过 HTTPS 传输TLS/SSL 证书在每台设备上即时生成运行时动态签发无需依赖任何预置 CA从源码结构看该能力由核心库 packages/core/src/crypto/cert.rs 所在的crypto模块含cert.rs、hash.rs、nonce.rs、token.rs提供支撑设备发现与数据传输遵循 LocalSend 自定义协议官方另有独立的 protocol 文档仓库本仓库中的协议实现位于 packages/core/。下载渠道与平台兼容性官方建议从应用商店或系统包管理器安装因为 LocalSend 本身没有自动更新机制。仓库内还收录了各平台的打包配置例如 app/linux/packaging/deb/make_config.yaml 与 app/linux/packaging/rpm/make_config.yaml。各平台安装渠道一览平台官方渠道WindowsMicrosoft Store、Winget、Scoop、Chocolatey、EXE 安装器、Portable ZIP后两者从 Releases 最新构建获取macOSApp Store、Homebrew、DMG 安装器Releases 最新构建LinuxFlathub、Nixpkgs、Snap、AUR、TAR / DEB / AppImageReleases 最新构建AndroidPlay Store、F-Droid、APKReleases 最新构建iOSApp StoreFire OSAmazon 商店Windows 二进制文件经过代码签名签名策略详见 CODE_SIGNING.md。注意非官方 MSIX 构建基于最新提交的构建可供尝鲜测试但其稳定性不作保证全部代码变更会在发布页同步列出。系统兼容性要求平台最低版本备注Android5.0—iOS12.0—macOS11 Big Sur更旧的 Mac 可借助 OpenCore Legacy Patcher 2.0.2见上游 issue #1005 的讨论Windows10支持 Windows 7 的最后一个版本是 v1.15.4未来可能逆向移植更新版本Linux视发行版而定GNOME 需xdg-desktop-portal与xdg-desktop-portal-gtkKDE 需xdg-desktop-portal与xdg-desktop-portal-kde网络配置防火墙端口与路由器设置大多数情况下 LocalSend 安装后即可开箱即用。但如果收发文件失败通常需要放行防火墙并检查路由器设置。防火墙规则流量方向协议端口操作入站InboundTCP、UDP53317允许出站OutboundTCP、UDP任意允许这个 53317 端口不是魔法数字——它就是核心库中广播发现的默认端口在 packages/core/src/multicast/mod.rs 中定义为常量pub const DEFAULT_PORT: u16 53317;仓库内多个测试packages/core/tests/v2_server.rs、packages/core/tests/v2_tls_pinning.rs以及 URL 构造逻辑packages/core/src/http/client/url.rs都围绕该端口验证了https://ip:53317/api/localsend/v2/...这类注册/信息接口地址印证了文档中「入站放行 53317TCPUDP」这条规则的必要性设备既要通过 UDP 广播被同网段设备发现也要在该端口上接受对端的 HTTPS 请求。路由器侧关闭 AP 隔离AP Isolation请确认路由器上已关闭接入点隔离。它默认在多数路由器上是关闭的但部分设备尤其是访客网络场景会默认开启一旦开启客户端之间的连接会被直接禁止表现为「互相看不到设备」。桌面端进阶用法便携模式Portable Modev1.13.0 引入在可执行文件所在目录创建一个名为settings.json的文件可以为空文件。程序会改为把设置保存在该文件里而不是默认位置。从源码可以确认其实现app/lib/util/shared_preferences/shared_preferences_portable.dart 中的SharedPreferencesPortable会解析可执行文件路径并在其同级目录拼接settings.json当虚拟盘如 ImDisk 内存盘导致Platform.resolvedExecutable抛异常时会回退到当前工作目录见该文件第 30–38 行的容错处理。判断逻辑位于 app/lib/provider/persistence_provider.dart在 Windows/Linux/macOS 上检测到该文件存在即启用便携设置并记录日志Using portable settings.。作为对照Windows 下默认非便携设置路径为%AppData%\LocalSend\settings.json。隐藏启动v1.15.0 更新以--hidden参数启动可让程序只在系统托盘通知区域运行不显示主窗口localsend_app.exe --hidden在 v1.14.0 及更早版本中只有当autostart参数被传入且「隐藏启动」设置开启时程序才会隐藏启动v1.15.0 起改为显式的--hidden参数。该参数在源码中是统一常量 app/lib/util/native/autostart_helper.dart 中的startHiddenFlag --hidden并且三个平台的开机自启实现都会把它写进启动入口Linux写入~/.config/autostart/应用名.desktop的Exec行Windows写入注册表HKCU\Software\Microsoft\Windows\CurrentVersion\Run的LocalSend值macOS通过setLaunchAtLoginMinimized设置为登录时最小化启动。依赖层次结构LocalSend 的代码组织遵循清晰的三层依赖项目内提供了可视化依赖图从源码结构看依据 support/docs/dependency-hierarchy.d2 的定义文件各层职责为层目录语言职责App/app/Dart/Flutter跨平台图形界面应用本仓库主工程CLI/cli/Rust命令行界面cli/src/main.rsServer/server/RustWebRTC 信令服务器server/src/controller/ws_controller.rsLocalSend Isolates/packages/localsend_isolates/Dart Rust后台线程Isolate与 Rust 绑定层Core/packages/core/Rust实现 LocalSend 协议的核心库发现、HTTP、加密、WebRTCApp 依赖 Isolates 层Isolates/CLI/Server 都依赖 Core 层Core 不反向依赖任何上层。该 SVG 图由 D2 描述文件渲染生成support/docs/README.md 给出了在仓库根目录重新生成它的命令d2 --theme 4 --dark-theme 200 --layout elk --pad 32 support/docs/dependency-hierarchy.d2 support/docs/dependency-hierarchy.svg从源码运行 LocalSend按以下步骤可以从源码构建并运行 LocalSend安装 Flutter——直接安装或经由fvm管理所需版本见 .fvmrc安装 Rust 工具链克隆 LocalSend 仓库cd app进入应用目录flutter pub get拉取依赖flutter run启动应用。注意Flutter 版本锁定当前仓库通过 .fvmrc 固定 Flutter 版本其内容为{ flutter: 3.41.9 }。因此构建问题常常源于「仓库要求的版本」与「本机已安装版本」不一致。为了让开发更可预期项目推荐使用fvm管理 Flutter安装fvm后用fvm flutter替代flutter执行命令。参与贡献项目欢迎任何形式的外部贡献。翻译翻译通过 Weblate 平台localsend/app 项目协作管理也可以直接 fork 本仓库手动添加翻译翻译文件位于 app/assets/i18n/添加或更新某个语言时编辑对应的_missing_translations_locale.json或locale.json例如 app/assets/i18n/zh-CN.json。生成产物对应 app/lib/gen/ 中的strings_locale.g.dart。注意以开头的字段不需要翻译程序不会使用它们它们只是文件或上下文信息供译者参考。修 Bug 与功能改进修 Bug发现问题后直接提交 Pull Request并清晰描述问题与修复方式功能改进先在 issue 区发起讨论说明改进动机再动手实现。完整流程见 CONTRIBUTING.md。故障排查问题平台发送方平台接收方解决方案设备互相不可见任意任意确认路由器已关闭 AP 隔离开启时设备间连接会被禁止设备互相不可见任意Windows确认网络配置文件设为「专用私人」对「公用」网络 Windows 会执行更严格的限制设备互相不可见macOS、iOS任意尝试在系统设置「隐私」中切换「本地网络」权限的开关速度过低任意任意改用 5 GHz 频段并在两台设备上同时关闭加密功能速度过低任意Android已知问题源于底层saf_stream插件的限制上游 flutter-cavalry/saf_stream issue #4各平台打包构建命令以下命令面向项目维护者需在app/目录下执行。Android普通 APKflutter build apkGoogle Play 用的 AppBundleflutter build appbundleiOSflutter build ipamacOSflutter build macosWindows普通构建flutter build windows本地 MSIX 包flutter pub run msix:create商店就绪的 MSIX 包flutter pub run msix:create --storeLinux普通构建flutter build linuxAppImageappimage-builder --recipe AppImageBuilder.ymlSnap构建说明位于上游独立的localsend/snap仓库本仓库不含该子项目。仓库support/scripts/目录中还提供了各平台的自动化打包脚本可作为上述命令的参考实现例如 support/scripts/compile_android_apk.sh、support/scripts/compile_windows_msix_signed.ps1、support/scripts/compile_mac_dmg.sh 等。小结LocalSend 的价值在于把「局域网传输」做成了零依赖外部服务的方案设备发现走 UDP 广播核心库 packages/core/src/multicast/数据通道走运行时自签证书的 HTTPSpackages/core/src/crypto/界面层由 Flutter 跨平台承载并通过 Rust 绑定packages/localsend_isolates/把重活丢到后台线程。理解上面这份「防火墙 53317 AP 隔离 便携模式 --hidden」配置清单后绝大多数「搜不到设备」的问题都能定位到路由器或防火墙层面而依赖图与.fvmrc版本锁定则为你二次开发或从源码构建提供了明确的可复现前提。【免费下载链接】localsendAn open-source cross-platform alternative to AirDrop项目地址: https://gitcode.com/GitHub_Trending/lo/localsend创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/9/5 19:01:10

Mac 菜单栏整理实操:用 Ice 隐藏图标、拖拽重排的完整指南

Mac 菜单栏整理实操:用 Ice 隐藏图标、拖拽重排的完整指南 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice 先看一个完成状态:MacBook 顶部只留下 Wi-Fi、电池、时间和一两个自…

2026/9/5 19:51:14

AGENTS.md 完整教程:5 步让 AI 编码助手听懂你的项目

AGENTS.md 完整教程:5 步让 AI 编码助手听懂你的项目 【免费下载链接】agents.md AGENTS.md — a simple, open format for guiding coding agents 项目地址: https://gitcode.com/GitHub_Trending/ag/agents.md 上次让 AI 编码助手写个接口,代码…

2026/9/5 19:51:14

中小理发店极简会员管理系统:从需求分析到技术实现全解析

简介:这是一套专为中小理发店、社区店及夫妻店设计的轻量级会员管理源码系统,聚焦真实经营场景,解决客户信息分散、充值消费难追溯、员工业绩统计低效等痛点。资源共74个文件,包含37个Java后端逻辑文件、5个Vue前端页面组件、11张…

2026/9/5 19:51:14

DeepSeek V4 Pro 0813版结构化评测与生产切换指南

模型圈子里,DeepSeek V4 Pro 0813 正式版这种带着日期的版本号,最容易引发两类反应:一是立刻去聊天窗口试几句,二是担心自己错过了一次重要升级。两类反应都能理解,但真正有价值的是第三种:先把“新版本来了…

2026/9/5 19:51:14

C++ Qt MySQL图书管理系统实战:面向真实图书馆的高性能桌面方案

简介:本资源是一个基于C与Qt框架开发、后端集成MySQL数据库的完整图书管理系统,面向计算机专业本科生课程设计、毕业设计及C/GUI开发初学者,解决图书信息录入、读者管理、借阅归还、批量导入等典型业务场景的工程实践需求。压缩包共56个文件&…

2026/9/5 2:46:54

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/5 2:46:52

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/5 2:44:34

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/5 0:04:47

流式背压机制:避免前端渲染卡死与内存暴涨的滑动窗口限流

流式背压机制:避免前端渲染卡死与内存暴涨的滑动窗口限流在大模型流式输出(Streaming)与智能体实时推流的架构中,生产环境中经常出现一种“上下游生产消费速率严重失衡”的极端情况: 生产端极速产出:大模型…

2026/9/5 2:45:13

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/5 2:30:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/5 2:46:50

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…