rquickshare:Linux/macOS 上的 NearbyShare/QuickShare 开源实现(Rust)
rquickshare 是用 Rust 实现的 NearbyShare/QuickShare 桌面客户端,让 Linux 与 macOS 电脑可以和 Android 设备通过 Wi-Fi 局域网互传文件。项目提供 .dmg、.deb、.rpm、AppImage 等发行包以及 AUR、Nix 安装方式,仅限于同一 Wi-Fi 局域网使用,并附带蓝牙广播、防火墙端口等常见问题处理说明。
社区作者 · zZz
它解决什么问题
rquickshare 是 Android「附近共享/快速共享」(NearbyShare/QuickShare)协议在桌面端的 Rust 实现,目标平台为 Linux 和 macOS,让桌面电脑可以与 Android 设备通过 Wi-Fi 局域网互传文件。
核心用途
- 在 Linux / macOS 与 Android 之间进行本地文件共享,不依赖云端中转。
- 作为跨平台桌面端接收端与发送端,替代仅限 Android/Chrome OS 的原生功能。
主要特性与说明(依据来源正文)
- 提供最新 release 下载;安装包名称中包含所支持的最低 GLIBC 版本,可用 ldd --version 查看本机版本。
- 在 v0.11.5 之前,RQuickShare 同时发布 main 与 legacy 两个版本:legacy 面向较老的 Ubuntu 版本兼容,main 面向较新 Ubuntu 版本的后续支持。
- macOS 直接安装 .dmg,可能需先在「系统设置 > 隐私与安全性 > 安全性」中允许该应用安装(会出现请求权限的对话框)。
- Linux 需要 libayatana-appindicator 或 libappindicator3 之一,安装文件理论上会自动安装这些依赖,若未安装需手动处理。
- 限制:仅支持 Wi-Fi 局域网,所有设备必须处于同一网络。
- 项目作者说明其仍处于开发中(WIP),当前主要支持 Linux,设计可能随版本变化。
- 致谢基于 NearDrop(grishka)与 QNearbyShare(vicr123)等开源项目实现。
常见问题要点
- Android 看不到电脑:确认双方在同一 Wi-Fi,且网络允许 mDNS 通信;公共网络(咖啡厅、机场等)可能不允许。
- 电脑看不到 Android:Android 并不总是广播其 mDNS 服务。Linux 版 RQuickShare 的实现会广播蓝牙广告,使 Android 随后开放其 mDNS(需要电脑有蓝牙)。其他变通方式:在 Android「文件」应用中进入「Nearby Share」标签页;或使用快捷方式工具创建指向指定 intent 的快捷方式(Method A:Activity 为 com.google.android.gms.nearby.sharing.ReceiveSurfaceActivity;Method B:Action 为 com.google.android.gms.RECEIVE_NEARBY、Mime type 为 */*)。来源提示三星对 Quick Share 做了改动,上述变通方式可能无效。
- 分享文件时手机「随机」出现又消失:仅使用蓝牙时属于正常现象,Android 会周期性注销服务,再次检测到蓝牙消息时才重新出现。
- 关闭窗口后无法重新打开:应用可能仍在运行(窗口关闭后驻留系统托盘)。可用 ps aux | grep r-quick-share 确认,并在应用内点击三个点后选择「Stop app on close」改为关闭即退出。
- 防火墙拦截连接:可修改配置文件设置固定端口。Linux 路径 ./.local/share/dev.mandre.rquickshare/.settings.json;macOS 路径 Library/Application \ Support/dev.mandre.rquickshare/.settings.json;可用 find $HOME -name ".settings.json" 定位。修改后 JSON 必须保持合法(若 "port" 是最后一项则不能加逗号,否则配置会被重置),例如 {"...existing_config...", "port": 12345}。默认端口由操作系统随机分配。
- Linux + NVIDIA 显卡出现空白窗口或无法运行:可用环境变量方式启动 env WEBKIT_DISABLE_COMPOSITING_MODE=1 rquickshare,或尝试 legacy 版本。
适用对象
- 需要在 Linux 或 macOS 电脑与 Android 手机之间进行局域网文件互传的用户。
- 不愿使用云端传输、偏好本地直传的开发者与普通用户。
- 关注 Rust 桌面应用与近场共享协议实现的技术人员。
配图 1 为项目演示图。
许可证:来源正文未提供许可证信息,待核验。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
准备工作:安装包文件名中包含所支持的最低 GLIBC 版本,可用 ldd --version 查看本机 GLIBC 版本后再选择对应版本下载。
一、macOS
- 直接安装 .dmg。
- 若系统阻止安装,需先在「系统设置 > 隐私与安全性 > 安全性」中允许该应用安装(会出现请求权限的对话框)。
二、Linux
- 安装依赖:RQuickShare 需要下列库之一——libayatana-appindicator 或 libappindicator3。理论上安装文件会自动安装这些依赖,若未安装成功需手动安装。
- 按发行版选择安装包:
通用 deb / Debian: sudo dpkg -i r-quick-share_${VERSION}.deb
RPM: sudo rpm -i r-quick-share-${VERSION}.rpm
DNF(优先于 RPM):
sudo dnf install r-quick-share-${VERSION}.rpm
AppImage(无需 root):
chmod +x r-quick-share_${VERSION}.AppImage执行后既可双击运行,也可在命令行运行:
./r-quick-share_${VERSION}.AppImage三、非官方安装方式 AUR(Arch,使用 yay 等 AUR helper): yay -S r-quick-share
Nix: $ nix-shell -p rquickshare (nix-shell 会临时修改 $PATH 环境变量,可在决定永久安装前先试用。)
四、首次运行注意事项
- 仅支持 Wi-Fi 局域网:电脑与 Android 设备必须处在同一网络。
- 若 Android 看不到电脑,检查同一 Wi-Fi 与网络是否允许 mDNS(公共网络可能被禁止)。
- 若电脑看不到 Android:Linux 版会广播蓝牙广告以促使 Android 开放 mDNS(需要电脑具备蓝牙);也可在 Android「文件」应用进入「Nearby Share」标签页;或创建指向指定 intent 的快捷方式(Method A:Activity 为 com.google.android.gms.nearby.sharing.ReceiveSurfaceActivity;Method B:Action 为 com.google.android.gms.RECEIVE_NEARBY、Mime type 为 */*)。三星设备因 Quick Share 改动,上述方式可能无效。
- 关闭窗口后应用可能仍在后台运行(驻留系统托盘),可用 ps aux | grep r-quick-share 检查;如需关闭即退出,在应用内点击三个点后选择「Stop app on close」。
- 防火墙拦截时设置固定端口:
linux
vim ./.local/share/dev.mandre.rquickshare/.settings.json
mac
vim Library/Application \ Support/dev.mandre.rquickshare/.settings.json
to be sure
find $HOME -name ".settings.json" 修改后 JSON 必须保持合法,例如若 "port" 是最后一项则不能有逗号,否则配置会被重置: { ...existing_config..., "port": 12345 } 默认端口为随机(由操作系统决定)。
env WEBKIT_DISABLE_COMPOSITING_MODE=1 rquickshare 或改用 legacy 版本。
- Linux + NVIDIA 显卡若出现空白窗口或无法运行,可使用: