Ubuntu 下 VNC 闪退一般不是单一原因,先给你一个快速定位思路,再列出常见原因与对应解决办法。你可以按顺序排查,基本都能解决。
Ubuntu 默认使用 GNOME + Wayland,而大多数 VNC 不支持 Wayland。
✅ 解决方法:切换到 Xorg
sudo nano /etc/gdm3/custom.conf
取消注释:
WaylandEnable=false
然后重启:
sudo reboot
如果你用的是 TightVNC / TigerVNC / x11vnc,但没指定桌面环境。
✅ 检查 ~/.vnc/xstartup
nano ~/.vnc/xstartup
✅ GNOME 桌面推荐配置
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XKL_XMODMAP_DISABLE=1
exec gnome-session
或(Ubuntu 20.04+):
exec /usr/bin/gnome-session
然后:
chmod +x ~/.vnc/xstartup
多个 VNC 实例或端口被占用会导致闪退。
✅ 杀掉旧进程
vncserver -kill :1
✅ 重新启动
vncserver :1 -geometry 1920x1080 -depth 24
如果 VNC 是用 root 启动但连接普通用户,也会闪退。
✅ 建议
最小化安装 Ubuntu 可能没装完整桌面。
✅ 补全 GNOME
sudo apt install ubuntu-desktop gnome-session gdm3
查看 VNC 日志:
cat ~/.vnc/*.log
常见错误:
dbus 错误 → 缺环境变量gnome-session 缺失 → 桌面没装Permission denied → 权限问题如果你只是远程用,推荐:
✅ x11vnc(最稳)
sudo apt install x11vnc
x11vnc -display :0
✅ TigerVNC(服务器常用)
sudo apt install tigervnc-standalone-server
| 检查项 | 是否 |
|---|---|
| 关闭 Wayland | ✅ |
| xstartup 可执行 | ✅ |
| 使用普通用户 | ✅ |
| 查看 VNC 日志 | ✅ |
| 桌面环境已安装 | ✅ |
你可以直接贴出:
~/.vnc/*.log 报错内容我可以 直接给你一份可用的 xstartup 配置。