VNC 在 Ubuntu 突然闪退(闪一下就断)很常见,通常不是“VNC 本身坏了”,而是桌面环境、权限或配置冲突导致的。下面按最常见原因 → 解决办法给你排查。
Ubuntu 默认使用 GNOME + Wayland,而大多数 VNC 不支持 Wayland,会直接闪退。
判断方法:
echo $XDG_SESSION_TYPE
wayland → 就是它解决办法(推荐): 切换到 Xorg(X11)
✅ 90% 的闪退问题到这一步就解决了
比如你用的是 tigervnc / x11vnc / vncserver,但:
ubuntu-desktop~/.vnc/xstartup 配置错误检查桌面是否完整安装:
dpkg -l | grep ubuntu-desktop
典型的 xstartup(适用于 Ubuntu 20.04 / 22.04):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/xinit/xinitrc
或(GNOME):
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
gnome-session &
⚠ 注意:
chmod +x ~/.vnc/xstartup如果你之前跑过 VNC,可能端口被占用。
检查:
ps aux | grep vnc
杀掉旧进程:
vncserver -kill :1
然后重新启动:
vncserver :1
无显示器时,某些 Ubuntu 仍会崩溃。
解决方案:
sudo apt install xserver-xorg-video-dummy
或使用 x11vnc:
x11vnc -display :0 -forever -shared
ls -ld ~/.vnc
如果是 root 创建过:
sudo chown -R $USER:$USER ~/.vnc
xfce4sudo apt install xfce4 xfce4-goodies
xstartup:
startxfce4 &
x11vnc -display :0
| 检查项 | 命令 |
|---|---|
| Wayland? | echo $XDG_SESSION_TYPE |
| VNC 是否运行 | `ps aux |
| xstartup 是否可执行 | ls -l ~/.vnc/xstartup |
| 桌面是否安装 | `dpkg -l |
你可以直接发我:
~/.vnc/*.log)echo $XDG_SESSION_TYPE 的输出我可以一步步给你精确到“改哪一行”的解决方案。