tightvncserver适合Ubuntu 22.04服务器版,因其自包含虚拟framebuffer,可独立启动X session,不依赖gdm3/lightdm或本地图形登录;而vino依赖完整GNOME会话、x11vnc需先运行X server,在无GUI的服务器上均易失败。

为什么用 tightvncserver 而不是 vino 或 x11vnc
Ubuntu 22.04 服务器版默认没图形界面,vino(GNOME 自带的 VNC)依赖完整桌面会话,启动失败率高;x11vnc 需已有 X server 运行,而新装系统连 Xorg 都没跑起来。只有 tightvncserver 是自包含的虚拟 framebuffer 实现,能独立拉起 X session,适合从零部署。
它不依赖系统显示管理器(gdm3、lightdm),也不需要登录用户已“在本地桌面登录”,这点对云服务器最关键——你 SSH 进去就能配,不用先图形登录再切回终端。
-
tightvncserver启动后监听localhost:5901,端口编号由显示号决定(:1→5901) - 它生成的
~/.vnc/xstartup是唯一入口,改错就黑屏,别直接抄网上旧脚本 - 不支持 Wayland,必须用 X11 桌面环境(Xfce、LXQt 等),GNOME/KDE 默认不行
vncserver 第一次运行就报错怎么办
常见错误是:Could not acquire name on session bus 或 Failed to connect to bus,本质是 D-Bus session 未初始化。这不是密码或权限问题,而是 vncserver 在无图形环境下尝试调用 GNOME 服务导致的。
绕过方法:不要等它自动创建默认 xstartup,手动建并赋权:
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 先运行
vncserver -kill :1(如果卡住就killall Xtightvnc) - 执行
mkdir -p ~/.vnc && touch ~/.vnc/xstartup - 用
nano ~/.vnc/xstartup写入(注意换行和空格):
#!/bin/bash xrdb $HOME/.Xresources xsetroot -solid grey export GDK_SCALE=1 export GDK_DPI_SCALE=1 startxfce4 &
再 chmod +x ~/.vnc/xstartup,最后 vncserver :1 —— 成功后日志末尾应有 Connections: accepted from ...
连接时提示“Authentication failed”但密码没错
这通常不是输错密码,而是 tightvncserver 对密码长度和字符敏感:必须是 6–8 位纯 ASCII 字符(字母+数字),含特殊符号(如 @、!)或中文会截断或解析失败。
- 重设密码用
vncpasswd(不是vncserver),它会写入~/.vnc/passwd - 检查文件权限:
ls -l ~/.vnc/passwd必须是-rw-------,否则服务拒绝读取 - 若用 root 用户配,但以普通用户启动
vncserver,密码文件路径不对(/root/.vnc/passwdvs/home/user/.vnc/passwd) - VNC Viewer 6.22 默认勾选 “Use default desktop” —— 关掉,手动填
IP:1(不是IP:5901)
防火墙放开哪个端口、怎么验证通了
别只开 5901 就完事。TightVNC 的实际通信分两路:控制通道(TCP 5901)+ Java viewer 插件通道(TCP 5801),后者常被忽略导致白屏。
- Ubuntu 默认用
ufw:sudo ufw allow 5901/tcp和sudo ufw allow 5801/tcp - 云服务器(阿里云/腾讯云)必须在安全组里额外放行这两个端口,控制台设置比系统防火墙优先级高
- 验证是否真通:
telnet your-server-ip 5901,能连上说明端口可达;若超时,99% 是云平台安全组没开 - 别用浏览器访问
http://ip:5801测试——新版 TightVNC 已移除内置 Web viewer,会 404
真正容易被忽略的是 xstartup 里漏掉 export GDK_SCALE=1 —— Ubuntu 22.04 默认启用 HiDPI 缩放,VNC 客户端不识别这个变量会导致界面元素错位或空白,加了才正常显示任务栏和窗口边框。

















