← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

【GitHub 项目】MyKVM:一套键鼠跨三系统,比 Synergy 更轻量的开源替代

安全/漏洞 阅读原文(微信)↗

320 星、Rust + Tauri、QUIC 加密传输、免费开源。但它在安全上有点问题——我们来逐个排查。

━━━ ━━━ ━━━

MyKVM 解决的问题很直观:你桌上有台 Mac 一台 Windows 甚至一台 Linux,每次切换要伸手摸另一套键鼠,传个文件还得靠微信发自己。这体验确实难受。

市面上的方案大致分几类:

  • 硬件 KVM 切换器:靠谱,但要额外接线、占桌面空间、贵的上千
  • Synergy / Barrier:老牌软件 KVM,但 Synergy 收费,Barrier 停止维护了
  • Mouse Without Borders(微软出品):只支持 Windows
  • MyKVM:新出的开源方案,全平台,免费

它的工作方式很简单:安装后在机器上选择「服务器」或「客户端」,同一局域网自动发现,鼠标划过屏幕边缘就跳到另一台机器,键盘跟着走,剪贴板自动同步。

━━━ ━━━ ━━━

技术细节

项目是用 Rust + Tauri 写的。Rust 负责底层——输入捕获和转发、QUIC 加密传输、剪贴板同步。前端是 React/TypeScript 的 GUI,用来配置屏幕布局和设备连接。

传输层用的是 QUIC(基于 UDP 的 TLS 1.3 加密协议),比传统的 TCP+TLS 握手更快,延迟更低。这是它性能表现的基础。

两个端口:

  • UDP 47833:设备发现(明文,无认证)
  • UDP 47834:键鼠输入 + 剪贴板传输(QUIC/TLS 1.3 加密,证书锁定)

━━━ ━━━ ━━━

安全隐患分析

这是重点。我从项目 Readme 和代码结构分析,列出几个风险点:

🔴 风险 1:发现协议完全明文

UDP 47833 端口上的设备发现使用的是纯 UDP 广播,没有任何加密和认证。这意味着局域网里任何设备都可以:

  • 伪造发现包,伪装成另一台设备加入你的键鼠网络
  • 监听到局域网里有谁在用 MyKVM
  • 获取显示器的分辨率和布局信息(虽然不是敏感数据,但泄露了终端信息)

🔴 风险 2:尚无用户配对机制

没有用户配对、没有 PIN 码、没有设备白名单。只要在同一网段,任何运行 MyKVM 的设备都可以尝试加入你的布局。在家庭网络问题不大,但如果你在公司 Wi-Fi、公共网络、或者跟陌生人共享同一子网,这就是风险。

🔴 风险 3:输入通道的安全假设

项目自己写得很清楚:「Trusted LAN only」「prototype」「not hardened for hostile networks」

键鼠输入和剪贴板虽然是 QUIC/TLS 加密的,但加密只解决「被窃听」的问题,不解决「被授权」的问题。如果一台恶意设备成功加入了布局,它可以:

  • 接收你的键盘输入(这就是为什么有人问 keylogger)
  • 向你的机器注入键盘/鼠标事件
  • 读取你的剪贴板内容

🟡 风险 4:macOS 权限要求

macOS 端需要启用 辅助功能(Accessibility)和输入监控(Input Monitoring)权限。这两个权限本身就是敏感的——任何拥有这些权限的软件理论上可以记录你的按键。你需要信任 MyKVM 的开发者不会做坏事。它目前是开源的(MIT),但没有代码签名公证(self-signed),第一次打开会被 Gatekeeper 拦住。

🟡 风险 5:自签名证书,无验证链

QUIC 连接用的是程序启动时自动生成的自签名证书,通过发现协议广播给对端。客户端做证书锁定(certificate pinning),这比完全不做要好,但自签名证书的信任链是脆弱的——如果第一次连接时中间人拦截了发现包并注入了自己的证书,后续通信就可能被劫持。

━━━ ━━━ ━━━

它算 keylogger 吗?

技术上说:MyKVM 本身不是 keylogger,但它具有 keylogger 的能力。

区别在于意图。MyKVM 设计用来将键盘输入转发到另一台机器,它必须捕获按键事件。任何键鼠共享软件(包括 Synergy、Barrier、Mouse Without Borders 甚至微软的 Remote Desktop)都具有这个能力。问题不在于「能不能记录按键」,而在于:

  1. 代码是否开源可审查(MyKVM 是 ✅)
  2. 按键是否只发送到你指定的机器(需要确认没有外传)
  3. 传输是否加密(MyKVM 是 ✅ QUIC/TLS)

从代码审查的角度看,src-tauri/src/input.rs 是输入捕获和转发的核心,项目结构清晰,恶意隐匿的难度较高。但 320 星 + 2 个月的项目,社区审计还不充分。

结论:信任基础是「开源 + MIT + Rust 底层 + 社区审查中」。如果你不信任,请自行审查代码后再使用。

━━━ ━━━ ━━━

加固方案

如果你决定在局域网内使用 MyKVM,可以采取以下措施降低风险:

✅ 必须在可信局域网使用

这是最基础也最重要的原则。不要在公司公共网络使用。最好是你自己管理的家庭网络、独立的 VLAN,或者两台机器之间的直连网络。

✅ 防火墙限制端口访问

如果两台机器之间有防火墙,限制 UDP 47833/47834 只允许特定 IP 通信:

# Linux 例子:只允许 192.168.1.100 连接
sudo ufw allow from 192.168.1.100 to any port 47833 proto udp
sudo ufw allow from 192.168.1.100 to any port 47834 proto udp

✅ 配置静态 IP + 手动连接

不要依赖自动发现,手动指定 IP 地址:

  • 为两台设备分配固定 IP
  • 在 MyKVM 里手动添加对端 IP
  • 可以考虑在防火墙上屏蔽 UDP 47833 端口(发现端口不用了,手动连接直接走 47834)

✅ 不在不信任的网络上使用

酒店 Wi-Fi、咖啡店、公司访客网络——不要在这类网络上使用 MyKVM。

✅ 定期审查代码更新

该项目处于早期快速迭代阶段(当前 0.1.x),每次更新时查看 input.rsquic_transport.rs 的变更,确认没有可疑的数据外传逻辑。

✅ 用 WireGuard 加一层隧道

如果你真的需要在不可信网络上使用,可以先在两台机器之间建立 WireGuard 隧道,然后让 MyKVM 在 WireGuard 接口上通信。这样即使发现协议是明文的,底层链路已经被 WireGuard 加密了。

━━━ ━━━ ━━━

跟同类项目的简单对比

项目 平台 传输加密 安全模型 许可 状态
MyKVM Mac/Win/Linux QUIC/TLS 1.3 Trusted LAN MIT ✅ 活跃(2个月)
Barrier Mac/Win/Linux Trusted LAN GPL 停止维护
Synergy Mac/Win/Linux TLS(付费版) Trusted LAN 商业 活跃但收费
Mouse Without Borders Windows 仅 Trusted LAN 免费 维护中
Input Leap Mac/Win/Linux 无(计划中) Trusted LAN GPL Barrier 的活跃分支

MyKVM 是目前唯一一个原生使用加密传输(QUIC/TLS)的开源软件 KVM,而且跨三平台。它的安全模型不完美,但诚实——Readme 主动说了自己目前不适用于不可信网络。这一点比那些号称「安全」但不解释具体实现的项目要靠谱。

━━━ ━━━ ━━━

后记: MyKVM 作为一个刚发布两个月的项目,技术上选对了路子(Rust 底层 + QUIC 加密 + 证书锁定)。它最大的短板不在于加密或代码质量,而在于缺少最基础的配对/认证机制——这导致整个安全模型依赖于局域网本身的信任。对于家庭网络或你自己管理的两台机器,它已经足够好用。对于公司环境或跨不可信网络的使用,可以等后续版本加上配对/PIN 机制后再评估,或者先用 WireGuard 封装一层。项目的开发节奏挺活跃的(两个月发了多个版本),安全加固应该迟早会来。

━━━ ━━━ ━━━

━━━ ━━━ ━━━

*本文完。欢迎关注 LeisureLinux,发现开发者该用的好东西,说真话不吹牛。*

再见 ChromeOS,你好 Aluminium:谷歌 PC 战略的十年"大地震"

Ubuntu 26.10 上下文感知桌面深度解读:AI 能力全景扫描

深度分析:Linux 内核如何通过启发式算法识别恶意 USB 设备

2026 系统架构演进:50个核心概念及规范 (2026版)

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)