🎧 Listen to this article: हिंदी · English · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
🌍 Read this in your language: हिंदी · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
运行远程桌面服务往往会产生高昂的成本和带宽限制,因为需要中继服务器来传输每个屏幕帧。一种更高效的方法是将控制平面与媒体平面分离,利用 Cloudflare Workers 和 WebRTC。
架构方案
传统的远程桌面服务通过中继服务器集中处理所有流量,从而造成瓶颈。可以通过拆分职责来优化此架构:
- 控制平面:由 Cloudflare Workers 管理,通过 WebSocket 处理 API 请求、身份验证和信令。
- 媒体平面:由 WebRTC 管理,促进屏幕内容和用户输入的点对点传输,绕过中继服务器。
控制平面详解
Cloudflare Workers 充当控制平面的骨干。它们高效地管理:
- API 请求:使用无服务器函数处理请求和响应。
- 身份验证:通过基于令牌或其它身份验证机制确保安全访问。
- WebSocket 信令:促进对等节点之间连接的建立。
对于后端状态管理,利用了 Cloudflare 的一系列存储解决方案:
- D1:Cloudflare 用于结构化数据的无服务器 SQL 数据库。
- KV:用于会话数据的低延迟键值存储。
- R2:用于较大文件或 Blob 的对象存储。
- Durable Objects:用于 Worker 调用之间的一致状态,实现协调。
通过 WebRTC 实现点对点媒体传输
WebRTC 在对等节点之间提供直接通信通道,传输:
- 屏幕内容:无需中央服务器的实时共享。
- 用户输入:键盘、鼠标和剪贴板数据无缝流动。
这种设置降低了延迟并消除了对昂贵媒体中继的需求,直接影响性能和成本。
替代 VPS 部署选项
对于 Cloudflare Workers 不可行的环境,可以采用传统的 VPS 设置。这包括:
- Node.js:用于运行应用程序逻辑。
- SQLite:作为轻量级数据库解决方案。
- Docker:用于容器化和管理部署。
该技术栈为偏好本地部署解决方案的用户提供了有效的替代方案。
GsDesk:开源实现
开源项目 GsDesk 实现了这一架构,专注于发现和身份验证,而不处理媒体中继。它允许开发者:
- 探索并修改信令与控制逻辑。
- 扩展功能以满足特定需求。
实现注意事项
部署此类系统时,请考虑:
- 可扩展性:利用 Cloudflare 的边缘网络实现全球覆盖。
- 安全性:实现强大的加密和身份验证机制。
- NAT 穿透:必要时使用 STUN/TURN 服务器处理 NAT 和防火墙。
- 浏览器兼容性:确保跨目标浏览器的 WebRTC 支持。
核心要点
- 成本效益:消除中继服务器可降低运营成本。
- 性能:点对点连接降低了延迟并提升了用户体验。
- 灵活性:在 Cloudflare Workers 和基于 VPS 的部署之间进行选择。
- 开源:GsDesk 为定制的远程桌面解决方案提供了基础。
Linux Server Hardening Checklist
30 practical steps to take a fresh Linux box from default to defensible. Enter your email — you'll get the PDF instantly, plus new posts on Linux, security & AI.
Free. No spam — unsubscribe in one click.


Responses
Sign in to leave a response.