Configs2026年5月18日·1 分钟阅读

noVNC — Browser-Based VNC Client for Remote Desktop Access

noVNC is a JavaScript VNC client library and web application that provides remote desktop access directly through a web browser. It connects to any standard VNC server via a WebSocket proxy, eliminating the need to install a native VNC client on the viewing machine.

Agent 就绪

这个资产会安全暂存

这个资产会先安全暂存。复制的指令会要求 Agent 读取暂存文件,并在激活脚本、MCP 配置或全局配置前先确认。

Stage only · 17/100策略:需暂存
Agent 入口
任意 MCP/CLI Agent
类型
CLI Tool
安装
Stage only
信任
信任等级:Established
入口
noVNC Browser VNC Client
安全暂存命令
npx -y tokrepo@latest install 4c93281c-52d6-11f1-9bc6-00163e2b0d79 --target codex

先暂存文件;激活前需要读取暂存 README 和安装计划。

Introduction

noVNC is an open-source VNC client implemented entirely in JavaScript and HTML5 Canvas. It runs inside any modern web browser, connecting to a VNC server through a WebSocket-to-TCP proxy called websockify. This makes remote desktop access possible without installing any client software.

What noVNC Does

  • Renders a live remote desktop session in the browser using HTML5 Canvas
  • Connects to standard VNC servers (TigerVNC, TightVNC, x11vnc, etc.) via websockify
  • Supports clipboard sharing between the local browser and the remote desktop
  • Handles keyboard and mouse input including special key combinations
  • Provides a responsive UI that adapts to mobile browsers with touch input

Architecture Overview

noVNC is a pure client-side JavaScript application. It speaks the RFB (Remote Framebuffer) protocol over a WebSocket connection. Since VNC servers speak raw TCP, a WebSocket-to-TCP bridge called websockify sits between the browser and the VNC server. The client decodes pixel updates using multiple encoding types (Tight, ZRLE, Hextile, Raw) and paints them to an HTML5 Canvas element. Input events are captured from the browser and sent back as RFB messages.

Self-Hosting & Configuration

  • Serve the noVNC HTML and JS files from any web server (Nginx, Apache, or the built-in proxy)
  • Run websockify as a standalone proxy pointing to your VNC server's host and port
  • Enable TLS on websockify with --cert and --key flags for encrypted connections
  • Embed noVNC in other applications using the JavaScript library API
  • Deploy behind a reverse proxy with WebSocket pass-through for production setups

Key Features

  • Zero-install remote access — works in any browser with WebSocket support
  • Supports multiple VNC encodings for efficient bandwidth use
  • Touch-friendly interface for tablet and phone access
  • Embeddable as a JavaScript library in custom web applications
  • TLS encryption when paired with websockify over HTTPS

Comparison with Similar Tools

  • Apache Guacamole — full remote access gateway with auth and session management; noVNC is a lightweight client library
  • SPICE HTML5 — targets SPICE protocol for virtual machines; noVNC speaks standard VNC/RFB
  • RustDesk — peer-to-peer remote desktop with NAT traversal; noVNC requires a VNC server and proxy setup
  • xrdp — RDP-based remote access; noVNC uses the VNC protocol and runs in the browser

FAQ

Q: Do I need to install anything on the client machine? A: No. noVNC runs entirely in the browser — just navigate to the URL.

Q: Is it secure? A: Use websockify with TLS (wss://) and VNC server passwords. For production, place it behind an HTTPS reverse proxy with authentication.

Q: Can I connect to multiple desktops? A: Each noVNC instance connects to one VNC server. Use a gateway like Apache Guacamole or run multiple websockify instances for multi-target access.

Q: Does it work on mobile? A: Yes. The interface supports touch gestures and virtual keyboard input on iOS and Android browsers.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产