Skip to content

Latest commit

 

History

History
290 lines (199 loc) · 12.8 KB

File metadata and controls

290 lines (199 loc) · 12.8 KB

LocalSend

CI 状态 Translations Packaging status

主页 • Discord • GitHub • Codeberg

English (Default) • 中文

注意:中文文档更新可能不够及时,请以英文文档为准。

LocalSend 是一个自由、开源的应用程序,允许你在本地网络上安全地与附近设备分享文件和消息,无需互联网连接。

关于

LocalSend 是一个跨平台应用程序,使用 REST API 和 HTTPS 加密实现设备之间的安全通信。与依赖外部服务器的其他消息应用程序不同,LocalSend 不需要互联网连接或第三方服务器,因此成为本地通信的快速可靠解决方案。

截图

iPhone截图 PC截图

下载

Packaging status

建议从应用商店或软件包管理器下载该应用,因为该应用没有自动更新功能。

Windows macOS Linux Android iOS Fire OS
Winget App Store Flathub Play Store App Store Amazon
Scoop Homebrew Nixpkgs F-Droid
Chocolatey DMG Installer Snap APK
EXE Installer AUR
Portable ZIP TAR
DEB
AppImage

了解更多关于发行渠道的信息。

Windows 二进制文件已签名。了解更多关于代码签名政策的信息。

兼容性

平台 最低版本 备注
Android 7.0 最后一个支持 Android 5 和 6 的版本是 v1.17.0。
iOS 13.0 最后一个支持 iOS 12 的版本是 v1.17.0。
macOS 11 Big Sur 请使用 OpenCore Legacy Patcher 2.0.2 (见 #1005)
Windows 10 最后一个支持 Windows 7 的版本是 v1.15.4 。未来也许会将更新的版本向后移植至兼容 Windows 7 。
Linux 不适用 依赖:Gnome:xdg-desktop-portal 和 xdg-desktop-portal-gtk;KDE:xdg-desktop-portal 和 xdg-desktop-portal-kde

设置

在大多数情况下,LocalSend 应该可以直接使用。但是,如果你在发送或接收文件时遇到问题,可能需要配置防火墙以允许 LocalSend 在你的本地网络上通信。

流量类型 协议 端口 操作
传入 TCP, UDP 53317 允许
传出 TCP, UDP 任意 允许

在 Linux 上,以 ufw 为例:sudo ufw allow 53317。使用 firewalld 时:sudo firewall-cmd --permanent --add-port=53317/tcp、sudo firewall-cmd --permanent --add-port=53317/udp,然后执行 sudo firewall-cmd --reload。

另外,请确保禁用路由器上的 AP 隔离。通常默认情况下应禁用它,但某些路由器可能会启用它(比如访客网络)。 更多信息见 故障排查。

便携模式

(在 v1.13.0 中引入)

创建一个名为 settings.json 的文件,放置在与可执行文件相同的目录中。 此文件可以为空。 应用程序将使用此文件来存储设置,而不是默认位置。

隐藏式启动

(更新于 v1.15.0)

使用 --hidden 命令行参数隐藏式启动(只在系统托盘里显示)此应用(例如: localsend_app.exe --hidden)。

在 v1.14.0 或更早的版本中,如果设置了 autostart 标志,并且启用了隐藏设置,则应用程序将会隐藏式启动。

工作原理

LocalSend 使用安全通信协议,允许设备通过 REST API 进行通信。所有数据都通过 HTTPS 安全地发送,并且 TLS/SSL 证书会在每台设备上动态生成,确保最大的安全性。

欲了解更多关于 LocalSend 协议的信息,请参阅文档。

依赖层级

依赖层级

开始使用

要从源代码编译 LocalSend,请按照以下步骤进行操作:

  1. 直接安装 Flutter 或使用 fvm 安装(所需版本见 .fvmrc)。
  2. 安装 Rust。
  3. 克隆 LocalSend 代码库。
  4. 执行 cd app 进入 app 目录。
  5. 运行 flutter pub get 下载依赖项。
  6. 运行 flutter run 启动应用程序。

Note

LocalSend 目前需要老版本的 Flutter (具体见 .fvmrc) 因而一些构建问题也许是系统安装的 Flutter 版本和 LocalSend 所需的 Flutter 版本不一致导致的。 为了在开发过程中保持一致性,LocalSend 使用 fvm 来管理此项目的 Flutter 版本。 安装 fvm 后,请运行 fvm flutter 而非 flutter 。

命令行界面

LocalSend CLI 是一个基于 LocalSend 协议 v2 的终端客户端。 运行 localsend-cli --help 查看所有可用选项和快捷键。

使用 send 命令发送一个或多个文件、目录,或两者混合:

localsend-cli send report.pdf photo.jpg ./project-backup

该命令会打开已发现设备的列表;以交互方式选择目标设备并按 Enter 开始传输。

如需跳过交互式设备列表直接选择目标,请传入其确切的别名或 IP 地址:

localsend-cli send --to "Cute Tomato" report.pdf
localsend-cli send --to 192.168.27.26 report.pdf

别名必须能唯一确定一台已发现的设备。IP 地址会通过 HTTPS 在 LocalSend 的默认端口(53317)上直接探测。

目录会被递归收集。所选根目录的名称及其嵌套路径会在接收端保留。空目录不会被发送,因为 LocalSend 传输的是文件条目而非目录条目。

贡献

我们欢迎任何有兴趣帮助改进 LocalSend 的人士贡献。如果你想贡献,有几种方式可以参与:

翻译

你可以帮助将此应用程序翻译成其他语言。我们使用 Weblate 平台来管理翻译。

另外,你也可以 fork 这个仓库并手动添加翻译。

翻译在 app/assets/i18n 目录。编辑 _missing_translations_<locale>.json 或 strings_<locale>.i18n.json 文件来添加或更新翻译。

Translation status

注意: 用 @ 装饰的字段不是用于翻译的;它们在应用程序中没有任何用处,仅仅是关于文件的信息性文本或为翻译者提供上下文。

Bug 修复和改进

  • Bug 修复: 如果发现 bug,请创建一个带有清晰描述问题及解决方法的拉取请求。
  • 改进: 有改进 LocalSend 的想法吗?请先创建一个问题来讨论为什么需要这个改进。

欲了解更多信息,请参阅贡献指南。

故障排查

问题 平台(发送端) 平台(接收端) 解决办法
设备不可见 任何 任何 确保关闭路由器的AP隔离。如果AP隔离是开着的,设备间的连接会被禁止。
设备不可见 任何 Windows 确保将你的网络配置为“私有”网络。当你的网络为公共网络时 Windows 会更具限制性。
设备不可见 macOS, iOS 任何 尝试在系统设置中的“隐私”下切换“本地网络”权限。
设备不可见 任何 任何 如果开启了 VPN,请允许本地/局域网流量,或暂时关闭 VPN。部分 VPN 默认会阻止本地网络连接。
设备不可见 任何 任何 使用手动发送直接输入接收端的 IP 地址。如果可行,请将该设备添加到收藏,之后会直接探测它。
速度太慢 任何 任何 使用 5 Ghz 频段;关闭发送和接收端设备的数据加密。
速度太慢 任何 安卓 已知的问题。见 flutter-cavalry/saf_stream#4

构建

以下命令仅供维护者使用。请确保在 app 目录下运行。

Android

传统 APK

flutter build apk

用于 Google Play 的 AppBundle

flutter build appbundle

iOS

flutter build ipa

macOS

flutter build macos

Windows

传统方式

flutter build windows

本地 MSIX 应用

flutter pub run msix:create

商店就绪版

flutter pub run msix:create --store

Linux

传统方式

flutter build linux

AppImage

appimage-builder --recipe AppImageBuilder.yml

Snap

说明见 localsend/snap/README.md

贡献者

Localsend 贡献者