-
黑屏、灰屏或仅出现“X”光标
多由桌面环境未正确启动或缺失组件导致。优先检查是否安装了桌面(如 ubuntu-desktop),并使用匹配的 xstartup:
- XFCE 示例:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
- GNOME Flashback(适用于部分 Ubuntu 22.04 场景):
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP=“GNOME-Flashback:GNOME”
export XDG_MENU_PREFIX=“gnome-flashback-”
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check
完成后执行:chmod +x ~/.vnc/xstartup,再重启会话。若仍异常,查看日志 ~/.vnc/<主机名>:1.log 定位。
-
仅本地可连、远程超时或“Timed out waiting for a response”
通常是未正确放行远程访问或参数不当:
- 启动会话时确保包含 -localhost no(或配置为监听外部地址),例如:vncserver :1 -localhost no。
- 防火墙放行对应端口(显示号 :1 对应 5901/tcp):sudo ufw allow 5901/tcp。
- 客户端使用 IP:5901 连接,并优先选用 TigerVNC Viewer 以避免客户端兼容差异。
-
端口冲突、会话残留或“A VNC/X11 server is already running”
先清理旧进程与端口占用:
- vncserver -kill :1
- ss -tuln | grep 5901 或 netstat -tuln | grep 5901
- 必要时 pkill -9 Xvnc 后再启动新会话。
-
权限与目录/文件权限错误
避免使用 root 直接启动 VNC;确保 ~/.vnc 目录与 ~/.vnc/passwd 权限正确:
- chmod 700 ~/.vnc;chmod 600 ~/.vnc/passwd
- chown -R <用户>:<用户> ~/.vnc
- systemd 服务文件中 User/Group 指定为普通用户,PIDFile 与实际路径一致。