Skip to content
返回博客比较

NoMachine 替代方案:开源、以 Linux 为先的远程桌面选择

GoDesk Editorial Team9 分钟阅读
NoMachine 替代方案:开源、以 Linux 为先的远程桌面选择

你喜欢 NoMachine 在 Linux 上提供的低延迟 NX 风格会话,但你讨厌闭源二进制、许可上的意外或有限的自托管选项。如果你的痛点是想要一个开源、以 Linux 为先、且便于自托管和隐私审计的 NoMachine 替代品……

你喜欢 NoMachine 在 Linux 上提供的低延迟 NX 风格会话,但你讨厌闭源二进制、许可上的意外,或有限的自托管选项。如果你的痛点是想要一个开源、以 Linux 为先、且便于自托管和隐私审计的 NoMachine 替代品,本指南比较了切实可行的选项,并说明何时某个工具优于另一个工具。

人们选择 NoMachine 的原因 — 以及它可能令人失望的地方

NoMachine 受欢迎是有原因的:它在 Linux 上提供响应迅速的远程桌面会话,支持音频和 USB 转发,并使用 NX 风格的协议,能够对显示更新进行激进的压缩和缓存。许多管理员在服务器和工作站上运行它,因为在相同链路上它通常感觉比纯 VNC 或普通 RDP 更快。

但其缺点促使人们寻求替代方案:NoMachine 的某些版本客户端/服务端为闭源,混合商用/家庭使用场景下的许可模型可能让人困惑,并且企业功能在不同平台上并不一致。如果你需要完全自托管、可再现构建或可审计性——或者你更偏好以 Linux 为先、并需要清晰的网络与安全控制——采用不同的方案更合理。

在 NoMachine 替代品中应关注什么(以 Linux 为先 的清单)

  • 开源许可(能够审计、派生和自托管服务器组件)。
  • 协议效率 —— 自适应压缩、帧差传输,以及在 100–500 kbps 链路上的良好表现。
  • 音频和 USB/视频 转发(如果你需要多媒体远程工作)。
  • NAT 穿透和可选云中继 —— 应该是可选的;你要能够运行自己的中继。
  • 认证选项:SSH 密钥/LDAP/SAML/2FA,以满足企业需求。
  • 传输与加密:支持 TLS 1.2/1.3 和 AES-256,用于会话加密。
  • 以 Linux 为先 的 UX:Wayland/X11 支持、无头服务器的会话恢复,以及在主要发行版(Debian/Ubuntu、RHEL/CentOS/Alma、Fedora)上的软件包可用性。
  • 运维工具:远程启动脚本、容器化服务器、用于审计的指标/日志记录。

开源、以 Linux 为先 的替代方案 — 实用比较

下面比较了 Linux 为先 的用户通常在考虑取代 NoMachine 时实际使用的开源选项。针对每项我列出权衡和典型用例。

GoDesk(开源、友好自托管)

是什么:GoDesk 是一个开源远程桌面解决方案,具有以 Linux 为先 的支持,并以安全自托管为重点。它支持加密连接、文件传输和会话控制,适用于局域网和互联网环境。

为什么考虑它:GoDesk 的设计便于自托管并能与现有的 Linux 管理工具集成。如果你想在防火墙后运行一个产品,并希望有明确的托管与配置自动化路径,GoDesk 旨在成为一个可替换 NoMachine 的选项。

局限:如果你需要开箱即用的最低延迟多媒体转发或一些复杂的 USB-over-IP 功能,某些专有解决方案可能仍然领先。关于功能对等和迁移说明,请参见 GoDesk 下载和定价 页面(/download,/pricing)。

RustDesk

是什么:RustDesk 提供一个可自托管的远程桌面,客户端和服务端都是开源的。它基于现代代码库(Rust),目标是成为“开源版 AnyDesk”;提供可选的云中继服务,或允许你自己托管 rendezvous 和 relay 服务器。

适用场景:适合临时支持和个人使用,部署简单。提供良好的 Windows/Linux/macOS 客户端和直接的 NAT 穿透。社区版在你不想建立复杂基础设施时很有吸引力。

局限:尽管 RustDesk 在许多工作流中活跃开发并具备性能,但它在可配置性上可能不如由底层工具组装的自托管栈。有关支持和商业对比,请参见我们的 rustdesk-vs-anydesk 文章。

x2go

是什么:x2go 使用基于 FreeNX/NX 概念的 NX 后端,通过 SSH 提供快速的图形会话。它高度以 Linux 为中心,针对桌面会话而非对物理显示的屏幕共享进行了优化。

适用场景:多用户无头服务器,需要为每个用户提供独立桌面会话的场景——例如远程开发环境或实验室。由于高效的压缩,在低带宽链路上表现良好。

局限:不适合屏幕共享现有的物理 X11/Wayland 会话(通常会创建新的会话)。相对于其他项目,Windows 和 macOS 客户端的成熟度有限。

Apache Guacamole

是什么:Guacamole 是一个 HTML5 网关,允许你通过浏览器访问 RDP/VNC/SSH 会话。它是基于服务器的(Tomcat),设计用于集中访问管理。

适用场景:集中化环境和仅浏览器工作流。非常适合支持终端、工单集成,以及不希望用户安装本地客户端的场景。

局限:用户体验取决于后端协议(RDP/VNC)。对于低延迟多媒体或 USB 重定向,Guacamole 通常不如原生 NX 类客户端顺畅。

XRDP + 本地 Linux 客户端(Remmina、Vinagre)

是什么:XRDP 在 Linux 上暴露一个兼容 Windows 的 RDP 端点,本地客户端如 Remmina 或 FreeRDP 从桌面端连接。RDP 成熟且被广泛支持;现代实现包含网络级认证和 TLS。

适用场景:异构 Windows/Linux 环境中以 RDP 为标准,且需要与 Windows 客户端轻松互操作的情形。RDP 对于许多桌面任务来说性能良好。

局限:历史上 Linux 上的 RDP 实现会在 Wayland 和某些桌面栈的会话恢复方面遇到问题。音频和设备重定向支持在不同栈间不一致,但在改善中。

TigerVNC / noVNC

是什么:VNC 是经典的屏幕共享协议。TigerVNC 是高性能的服务端/查看器组合;noVNC 通过 websockets 将 VNC 会话暴露到浏览器。

适用场景:简单的远程控制、快速的基于浏览器的访问以及对无头机器的管理员访问。适用于像素精确度比低延迟多媒体更重要的任务。

局限:VNC 相较于 NX 风格协议往往带宽效率较低。除非使用高级编码层,否则在相同感知响应性下会使用更多带宽。

协议与性能说明:实际期望

协议很重要。NX 风格协议(NoMachine、x2go)针对桌面语义进行了优化——发送原语和压缩差分,这为典型 GUI 工作负载带来更低的感知延迟和带宽使用。RDP 在同样被优化,并且在有 2–5 Mbps 可用带宽时,常能在 1080p 下以 30–60 fps 表现良好。VNC 变体更简单,除非加入高效编码器,否则通常更吃带宽。

实际带宽指导:命令行工具和编辑器在 100–300 kbps 下可以舒适使用。典型桌面使用(网页浏览、办公应用)需要 500 kbps–2 Mbps 才能有可用体验。流畅的 1080p 视频或快速滚动取决于帧率和压缩,通常需要 3–6 Mbps 或更多。延迟在 50 ms 以下感觉灵敏;100–200 ms 对大多数远程管理任务可接受,但对交互性强的多媒体会有明显影响。

安全基础:优先选择支持 TLS 1.3 和 AES-256-CBC/GCM 的实现用于会话加密,并与 SSH 或企业 SSO 集成进行认证。仅将经过充分审计的服务暴露到互联网,优先使用反向代理/中继进行 NAT 穿透,而不是打开大量入站端口。RDP 默认使用 TCP 3389;SSH 使用 TCP 22;NoMachine 常监听 TCP 4000 —— 切换工具时,请审查需要开放哪些端口。

如何选择替代品 —— 按用例的建议

  • 在 Linux 服务器上远程开发(多用户、无头):选择 x2go 或容器化桌面会话;x2go 针对该用例进行了调优。
  • 临时支持且基础设施最少:RustDesk 易上手,且在需要时提供自托管选项。
  • 基于浏览器的集中访问(无需安装客户端):Guacamole。
  • 希望协议兼容性的混合 Windows/Linux 场所:XRDP + Remmina/FreeRDP 适用于基于 RDP 的工作流。
  • 开源、自托管优先、以 Linux 为中心且平衡功能与可审计性的 NoMachine 替代:评估 GoDesk(试试 /download)并配合我们的自托管指南(/self-hosted-remote-desktop-guide)。

迁移清单 —— 从 NoMachine 转到开源栈

从 NoMachine 迁移主要是将功能映射到替代方案并准备用户。使用此清单:

  1. 清点你依赖的功能(音频、USB 重定向、会话恢复、文件传输、多显示器)。将每项功能匹配到候选工具——有些功能可能需要组合工具(例如用于显示的 XRDP + 用于声音的 PulseAudio 隧道)。
  2. 在你的环境中测试性能。用一小组试点并测量感知延迟和带宽。记录基线使用情况(例如远程工作期间的平均带宽)以便比较。
  3. 规划认证与访问控制。如果你在 NoMachine 中使用 LDAP/AD,请配置替代方案使用相同后端或提供迁移路径(SSH 密钥、PAM、SSO)。
  4. 决定 NAT 穿透策略。如果用户需要在不做端口转发的情况下从互联网访问,规划中继/rendezvous(RustDesk、GoDesk,或为基于 WebRTC 的系统自部署 TURN/STUN 解决方案)。
  5. 定义日志与监控。确保服务器日志(认证、会话时间、IP)转发到你的 SIEM 或按策略保留。
  6. 记录回滚步骤,以便在试点期间出现阻塞问题时能快速回退到 NoMachine。

安全与运维加固

即便使用开源工具,运维安全依然重要。有若干实用步骤可让远程桌面部署更安全:

  • 尽可能将远程桌面服务器放在经过认证的网关或 VPN 之后运行——这样能限制直接暴露到互联网的风险。
  • 对用户登录使用基于密钥的 SSH 认证或 SSO;对能禁用密码认证的服务器端点禁用密码认证。
  • 启用会话加密(TLS 1.2/1.3),优先使用 AEAD 密码套件(AES-GCM)。定期轮换 TLS 证书并验证客户端/服务端证书链。
  • 使用基于主机的允许列表、限速和类似 fail2ban 的保护以减缓暴力破解尝试。
  • 记录会话开始/结束、源 IP 和用户名;将日志转发到集中采集器以便保留与审计。

何时继续使用 NoMachine 或专有解决方案

诚实评估:在某些狭窄领域专有产品仍占优势。如果你的优先事项是开箱即用的 USB-over-IP、用于媒体制作的最高保真视频流或有厂商 SLA 的保证,像 NoMachine(商业版)、TeamViewer 或 AnyDesk 可能更合适。TeamViewer 和 AnyDesk 提供打磨良好的跨平台客户端、商业支持和全球中继;接受这些权衡:闭源与厂商锁定。

如果你的优先事项是透明度、控制权和在没有厂商许可歧义的情况下自托管的能力——并且你能接受一些配置工作——长期来看开源替代方案会更适合你。

进一步阅读与实操步骤

如果你想探索具体迁移指南和安全自托管模式,请查看本站的这些实用资源:我们的 self-hosted-remote-desktop-guide 涵盖部署模式与加固,rustdesk-vs-anydesk 比较了一个开源对手与流行的专有竞争者。有关一般的设置与避免端口转发的 NAT 穿透,请参见 remote-desktop-without-port-forwarding。

试用再决定:在 DMZ 或云实例中搭建测试服务器,配置服务器端日志,并与高权限用户做为期两周的试点以发现缺失功能。测量带宽与延迟,并确认你的备份与事件响应流程对远程会话有效。

最后说明:如果以 Linux 为先、开源与自托管是优先事项,你将在 GoDesk、RustDesk、x2go、Guacamole 和 XRDP 中找到合适的权衡 —— 根据你是否需要按用户会话的桌面、浏览器访问或最严格的多媒体转发来选择。

准备好测试一个开源、以 Linux 为先 的 NoMachine 替代了吗?从 /download 下载 GoDesk 并尝试自托管实例 —— 或在评估托管选项时查看我们的 /pricing。如果你需要指导,我们的 self-hosted-remote-desktop-guide 提供从试点到生产的逐步说明。