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)都具有这个能力。问题不在于「能不能记录按键」,而在于:
- 代码是否开源可审查(MyKVM 是 ✅)
- 按键是否只发送到你指定的机器(需要确认没有外传)
- 传输是否加密(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.rs 和 quic_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 能力全景扫描