返回资讯中心
外部精选
软件工程
#开发者实时流

Panosync:自托管中继的端到端加密剪贴板同步工具

来源标题:Show HN

Panosync 是一款端到端加密的剪贴板同步工具,支持在 macOS、Linux 和 Windows 之间跨网络同步复制粘贴内容。用户需自建一个小型中继服务器,但它只能转发无法解密的密文,仅能看到 IP、时间与消息大小。项目已提供 Homebrew 安装和脚本安装两种方式。

Hacker News 最新msefabayindir2026/11/12 · 今天21 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

在一台电脑上复制,在另一台电脑上粘贴。端到端加密。 终端录像由 VHS 制作:一个本地 relay 和两个使用独立剪贴板的客户端。 brew install msbayindir/tap/panosync # macOS 和 Linux;或者不用 Homebrew: curl -fsSL https://raw.githubusercontent.com/msbayindir/panosync/main/install.sh | sh panosync 让你的 macOS、Linux 和 Windows 机器之间的剪贴板保持同步,即使它们位于不同的网络。一切都在你的设备上端到端加密;你在中间自托管的小型 relay 服务器只转发它无法读取的字节。 目录:工作原理 · 快速开始 · 命令 · 安全模型 · 与其他方案对比 · 故障排查 · 开发 · 许可证 macOS relay(你的服务器) Ubuntu ┌───────────────┐ wss:// ┌─────────────────────┐ wss:// ┌───────────────┐ │ Cmd+C │ │ │ │ │ │ 用你的密钥 │ ────────────► │ 转发密文 │ ────────────► │ 解密, │ │ 加密 │ │ 到同一通道上的 │ │ 写入 │ │ │ ◄──────────── │ 其他设备 │ ◄──────────── │ 剪贴板 │ └───────────────┘ │ │ └───────────────┘ │ 可见:IP、时序、 │ Windows ◄─────────────────► │ 消息大小 │ │ 永不可见:密钥或 │ │ 文本内容 │ └─────────────────────┘ 在第一台设备上运行 panosync setup 会生成一个随机的 32 字节密钥。 每台设备从该密钥派生(使用 BLAKE3)出一个加密密钥和一个独立的 channel id。 设备通过 /ws?channel=<channel id> 连接到 relay。 relay 按 channel id 对连接分组,并将每条消息转发给组内的其他设备。 每条消息在离开设备前都用 XChaCha20-Poly1305 加密。 完整的协议和威胁模型见 docs/architecture.md。 你需要一个可通过 wss://(基于 TLS 的 WebSocket)访问的 relay,以及每台机器上的客户端。 relay 在 8080 端口上使用明文 ws://,并期望在它前面有一个反向代理来处理 TLS。 下面是简版说明;docs/self-hosting.md 详细介绍了 Coolify、Docker、systemd、Caddy、nginx 和仅限本地网络的配置,并说明了每种配置的测试环境。 没有域名?Coolify 的 sslip.io 地址也可以(例如 https://panosync.1.2.3.4.sslip.io)。 docker run -d --name panosync-relay --restart unless-stopped -p 8080:8080 ghcr.io/msbayindir/panosync-relay:latest 在它前面放任意 TLS 反向代理。使用 Caddy 时,整个配置就是: panosync.example.com { reverse_proxy localhost:8080 对于 nginx,需要 WebSocket Upgrade 头;参见 docs/self-hosting.md。 从源码运行:cargo run --release -p panosync-relay(设置 PORT 可更改端口)。 brew install msbayindir/tap/panosync 该 formula 安装与 release 页面相同的预编译二进制文件,brew services start panosync 会在登录时启动 panosync。 curl -fsSL https://raw.githubusercontent.com/msbayindir/panosync/main/install.sh | sh 该脚本会为你的操作系统和 CPU 选择正确的二进制文件,用 release 的 SHA256SUMS 校验其 SHA-256,并将其安装到 ~/.local/bin(可用 PANOSYNC_INSTALL_DIR=/usr/local/bin 覆盖,用 PANOSYNC_VERSION=v0.1.0 固定版本)。如果你愿意,可以先读一下:install.sh。 Windows:从最新 release 下载 panosync-x86_64-pc-windows-msvc.zip,解压并将 panosync.exe 放到 PATH 中的某个位置。 手动下载:每个 release 都提供 aarch64-apple-darwin、x86_64-apple-darwin、x86_64-unknown-linux-gnu、aarch64-unknown-linux-gnu 和 x86_64-pc-windows-msvc 的压缩包,以及 SHA256SUMS。 这些二进制文件未做代码签名。在 macOS 上,如果你是用浏览器下载的,请清除一次隔离标志: xattr -d com.apple.quarantine ./panosync。 cargo-binstall:cargo binstall --git https://github.com/msbayindir/panosync panosync 会从 release 下载适用于你平台的预编译二进制文件(panosync 不在 crates.io 上,因此需要 --git)。 从源码安装:cargo install --git https://github.com/msbayindir/panosync panosync(需要 Rust 1.88+)。 在第一台设备上,不带密钥运行 setup。会生成一个新密钥: panosync setup --server wss://panosync.example.com 它会打印出要在其他每台设备上运行的确切命令: panosync setup --server wss://panosync.example.com --key <your key> 任何拿到此密钥的人都能读取你的剪贴板。请通过 croc、LocalSend 或手动输入等方式传递它,不要通过聊天或邮件。之后可用 panosync key 再次打印它。 panosync 在一台机器上复制,在另一台机器上粘贴。日志会显示 sent (26 bytes) 和 received (26 bytes)。剪贴板内容永远不会写入日志,只记录其长度。 命令 土耳其语别名 作用 panosync / panosync start baslat 开始同步 panosync setup --server <url> [--key <key>] kurulum --sunucu … --anahtar … 配置此设备;不带 --key 时生成新密钥 panosync key anahtar 打印密钥,用于添加另一台设备 panosync config ayar 打印配置文件的路径 panosync pause <minutes> duraklat 正在运行的客户端在该时长内停止发送剪贴板变更。panosync pause 0 恢复 pause 适用于复制密码这类时刻:暂停期间复制的文本永远不会被发送,即使暂停结束后也不会。来自其他设备的传入文本仍会被应用。结束时间存储在配置文件旁边的 paused_until 文件中,因此无论 panosync 是否在运行,该命令都有效。 配置目录在 Linux 上是 ~/.config/panosync,在 macOS 上是 ~/Library/Application Support/panosync,在 Windows 上是 %APPDATA%\panosync。设置 PANOSYNC_CONFIG_DIR 可使用其他目录(例如在一台机器上运行两个客户端)。 Windows 注意事项。panosync 在 Windows 上不会自行设置文件权限。配置文件存储在 %APPDATA%\panosync\config.toml,默认继承你的用户配置文件的权限(你的账户、SYSTEM 和 Administrators)。可用 icacls "%APPDATA%\panosync\config.toml" 检查。%APPDATA% 是漫游配置文件,因此在启用了漫游配置文件的域加入机器上,密钥可能会被复制到域的配置文件服务器;请避免这种配置,或将该密钥视为其管理员已知。 panosync 只做一件事。其他工具做的要多得多,其中可能有一个更适合你。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →