TigerVNC 在 Ubuntu 的兼容性测试方法
一 测试目标与环境准备
二 快速冒烟测试步骤
sudo apt update && sudo apt install -y tigervnc-standalone-server tigervnc-common tigervnc-viewervncpasswdvncserver :1 -geometry 1280x720 -depth 24vncserver -list、vncserver -kill :1ss -ltnp | grep 5901(应看到 0.0.0.0:5901 或 :::5901)sudo ufw allow 5901/tcp服务器IP:1 或 服务器IP:5901三 功能与场景测试用例
| 测试项 | 前置条件 | 操作步骤 | 预期结果 | 排查要点 |
|---|---|---|---|---|
| 桌面环境兼容性 | 已安装 GNOME/Xfce | 在 ~/.vnc/xstartup 中分别配置 exec gnome-session 或 exec startxfce4 后启动 :1 |
均能进入对应桌面 | 若黑屏,检查是否安装了对应桌面包(如 ubuntu-desktop 或 xfce4) |
| 多会话与端口 | 无 | 依次启动 :1 :2 :3 |
分别占用 5901/5902/5903,可并行连接 | 端口冲突时更换显示号或释放占用 |
| 分辨率/色深 | 客户端支持 | 启动时指定 -geometry 1920x1080 -depth 24 |
桌面按设定分辨率/色深显示 | 客户端缩放/渲染设置不当会导致模糊 |
| 剪贴板双向 | 服务端/客户端均启用剪贴板 | 服务端会话内运行 vncconfig -nowin &;客户端开启 Clipboard 选项;双向复制文本/图片 |
两端可互相粘贴 | 若单向不通,检查 vncconfig 是否运行、客户端选项、安装 xclip/xsel |
| 输入法/键盘布局 | 安装中文输入法 | 在 VNC 会话内切换 中/英、全角/半角、Ctrl/Caps | 输入法切换与按键映射正常 | 某些桌面需额外配置输入法前端 |
| 文件传输 | 客户端支持 | 使用支持文件拖放的客户端进行上传/下载 | 文件传输成功且校验一致 | 部分 VNC 客户端不支持,需换用支持者 |
| 稳定性与性能 | 长时间运行 | 保持会话 >2 小时,执行窗口/视频/滚动等操作 | 无明显崩溃/断连/高 CPU | 检查日志 ~/.vnc/*.log,降低色深/分辨率对比 |
| 加密与本地监听 | 安全测试 | 对比 -localhost(仅本地)与 -localhost no(监听所有接口) |
仅本地监听时外部不可达;放开后外部可达 | 结合防火墙策略,避免误开放 |
| SSH 隧道 | 可 SSH 访问 | ssh -L 5901:127.0.0.1:5901 user@server 后连接 localhost:1 |
隧道方式可连且更安全 | 适用于公网/受限网络环境 |
| 系统服务托管 | systemd | 为 vncserver@:1 创建 systemd 单元并启用开机自启 |
重启后自动恢复会话 | 注意 Type=forking、PIDFile 与 ExecStartPre=-/usr/bin/vncserver -kill :%i 配置 |
四 判定标准与常见兼容性问题处理
~/.vnc/xstartup 的 exec 行是否正确;必要时查看 ~/.vnc/*.log 定位。vncserver -localhost no 或调整服务配置,使服务监听 0.0.0.0 并配合防火墙放行 5901/tcp。vncconfig -nowin &,客户端开启剪贴板选项,安装 xclip/xsel,避免 -noclipboard。vncserver -list 查看占用,改用 :2/:3 或释放占用端口。sudo ufw allow 5901/tcp)或使用 SSH 隧道 规避暴露面。