主要功能
- 虚拟 Display 创建:通过 Xvfb 生成一个不占用物理屏幕的虚拟 display 服务。输入为命令行参数,输出为虚拟显示环境,不消耗 GPU 资源。
- VNC 协议转换:x11vnc 将 Xvfb 创建的 display 转为 RFB 协议。输入是 X11 显示数据,输出是 VNC 可识别的画面流,支持键盘与鼠标事件转发。
- 按需启动机制:服务仅在执行启动命令后运行,不常驻后台。输入为
x11vnc -create参数,输出为即时开启的远程桌面,对服务器 CPU 占用极低(一般低于 5%)。 - 多平台客户端兼容:VNC Viewer 支持 Windows、macOS、Linux。输入是服务器 IP 加端口(格式如
:12345),输出为完整桌面画面,分辨率跟随客户端窗口自适应。 - 密码认证保护:启动时通过
-passwd参数设置连接密码。输入为明文密码字符串,输出为加密的 RFB 认证握手,防止未授权访问。
使用要求
- 掌握 Ubuntu SSH 登录、命令执行、文件编辑基础操作。
- 服务器需开放对应端口(如 12345),并在防火墙中放行。
- 客户端需安装 VNC Viewer 软件,版本不限。
核心优势
- 轻量无显示输出:Xvfb 作为虚拟帧缓冲,不产生实际屏幕信号。相比完整 Xorg 方案,内存占用减少约 60%,适合无显卡的云服务器场景。
- 一键启动快速部署:单条命令即可同时完成 display 创建和 VNC 服务启动。从执行到可连接,耗时不超过 3 秒。
如何使用
- 安装系统依赖库:
sudo apt-get install -y xauth xterm x11-common x11-xkb-utils xfonts-base xfonts-encodings xfonts-utils xserver-common - 安装 Xvfb:
sudo apt-get install -y xvfb - 安装 x11vnc:
sudo apt-get install -y x11vnc - 启动服务:
x11vnc -rfbport 12345 -passwd CrekeNet -create -forever - 客户端新建连接,输入
服务器IP:端口号,用密码登录。 - 在 VNC 终端内运行
xview显示图片:sudo apt-get install -y xloadimage后,执行xview qqlogo_1x.png(图片需先下载至服务器)。
同类竞品对比
| 对比维度 | Ubuntu + Xvfb + x11vnc | TightVNC Server | TigerVNC Server |
|---|---|---|---|
| 核心架构 | 虚拟 display + 协议转换,无物理输出 | 直接捕获物理屏幕(X11 捕获) | 基于 X11 扩展,支持直接帧缓冲访问 |
| 显示依赖 | 不依赖物理显卡,纯 CPU 渲染 | 需要 Xorg 运行环境,占用系统显示资源 | 依赖现有 X 会话,无法独立创建虚拟屏 |
| 资源占用 | 按需启动,空闲时零开销,内存约 50MB | 常驻后台,空闲时仍占用约 120MB | 常驻服务,内存占用约 80-100MB |
| 密码认证 | 命令行明文传参,启动后固定 | 支持加密配置文件,可动态修改 | 支持 PAM 认证,安全性更高 |
| 启动方式 | 单条命令完成 display + VNC 启动 | 需要先配置 X 会话,再启动 VNC 服务 | 需手动指定显示编号,配置较繁琐 |
| 适用场景 | 无显示器的云服务器、临时远程桌面需求 | 已有桌面环境的远程控制 | 需要高帧率、低延迟的桌面操作 |
应用场景
- 云服务器(如主机实测)的图形界面操作。没有物理显示器,通过 Xvfb 虚拟屏运行轻量 GUI 程序。
- 自动化测试环境。在无头服务器上启动浏览器或应用,通过 VNC 观察运行状态。
- 临时远程协助。无需安装完整桌面环境,快速开启 VNC 供他人调试。
适用人群
- 具备 Linux 命令行基础的系统管理员。
- 需要在 Ubuntu 云服务器上运行图形化工具的开发者。
- 搭建自动化测试或 CI/CD 图形界面的运维人员。
安装、启动 VNC
VNC 远程桌面原理
- Xorg:Linux 下主流图形窗口系统,提供显示服务。
- X11:X Window 系统协议,负责图形界面通信。
- VNC:基于 RFB 协议的远程桌面软件,传输画面和输入事件。
- x11vnc:轻量 VNC 服务端,将 X11 显示转为 VNC 协议。
- Xvfb:虚拟帧缓冲,不产生实际屏幕输出。
工作流程:Xvfb 创建虚拟 display → x11vnc 连接并转为 RFB 协议 → 客户端通过 VNC Viewer 访问。优点:按需开启,不影响服务器性能。
安装步骤
- 安装系统库:
sudo apt-get install -y xauth xterm x11-common x11-xkb-utils xfonts-base xfonts-encodings xfonts-utils xserver-common - 安装 Xvfb:
sudo apt-get install -y xvfb - 安装 x11vnc:
sudo apt-get install -y x11vnc
启动命令
x11vnc -rfbport 12345 -passwd CrekeNet -create -forever
参数说明:-rfbport 指定端口(如 12345),-passwd 设置密码,-create 自动创建虚拟 display,-forever 保持服务运行。启动后输出成功信息即可连接。
连接 VNC 远程桌面
- 下载 VNC Viewer(支持多平台,以 Windows 为例)。
- 安装后新建连接:填写
服务器IP:端口号,设置名称。 - 右击连接选择 Connect,安全提示点 Continue。
- 输入密码(默认 CrekeNet),成功进入 Linux 远程桌面。
简单应用:显示图片
在 VNC 终端内操作:
- 安装 xloadimage:
sudo apt-get install -y xloadimage - 下载图片:
wget http://www.zhujishice.cn/www/images/qq2012/qqlogo_1x.png - 显示图片:
xview qqlogo_1x.png
图片会出现在桌面左上方。







这一切,似未曾拥有