You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下登录x11vnc会话后出现空白(非黑屏)屏幕的问题排查与解决

问题成因与解决方案

我之前在无头Ubuntu服务器上配置x11vnc时也碰到过一模一样的问题——能进登录界面但登录后就是空白桌面,右键也没反应。结合我的排查经验,这个问题主要是以下几个原因导致的,给你一步步的SSH可操作解决方案:

核心成因分析

  • X显示会话绑定错误:x11vnc服务如果没正确关联LightDM正在运行的X显示端口,登录后新启动的桌面会话不会在VNC连接的显示上渲染。
  • 无头环境缺少虚拟显示器:物理显示器缺失时,桌面环境(比如Xfce)需要EDID信息来初始化显示输出,没有的话会导致桌面进程无法正常渲染界面。
  • 会话配置或权限问题:用户的桌面会话配置损坏,或者x11vnc服务运行权限不足,导致登录后桌面组件无法加载。

分步解决方案

1. 确保x11vnc绑定到LightDM的X显示

首先确认LightDM正在使用的X显示号,通常是:0:

ps aux | grep Xorg

你会看到类似/usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0的输出,记下显示号和认证文件路径。

接下来修改x11vnc的服务配置文件(默认路径是/etc/systemd/system/x11vnc.service):

[Unit]
Description=Start x11vnc at startup
After=multi-user.target

[Service]
Type=simple
# 替换成你刚才查到的显示号和认证文件路径
ExecStart=/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -display :0 -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

保存后重启服务:

sudo systemctl daemon-reload
sudo systemctl restart x11vnc

2. 配置虚拟显示器解决无头显示问题

无头服务器没有物理显示器,我们需要用xserver-xorg-video-dummy创建虚拟显示器:

  • 安装驱动:
sudo apt update && sudo apt install xserver-xorg-video-dummy -y
  • 创建Xorg虚拟显示器配置文件/usr/share/X11/xorg.conf.d/xorg-dummy.conf:
Section "Device"
    Identifier  "DummyDevice"
    Driver      "dummy"
    VideoRam    256000
EndSection

Section "Monitor"
    Identifier  "DummyMonitor"
    HorizSync   5.0 - 1000.0
    VertRefresh 5.0 - 200.0
    # 定义1920x1080分辨率的模式
    Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
EndSection

Section "Screen"
    Identifier  "DummyScreen"
    Device      "DummyDevice"
    Monitor     "DummyMonitor"
    DefaultDepth 24
    SubSection "Display"
        Depth 24
        Modes "1920x1080_60.00"
    EndSubSection
EndSection
  • 重启LightDM和x11vnc服务:
sudo systemctl restart lightdm
sudo systemctl restart x11vnc

3. 重置桌面会话配置

如果是用户会话配置损坏导致的问题,可以重置Xfce的会话配置:

# 先备份原有配置
mv ~/.config/xfce4 ~/.config/xfce4.bak
# 重启LightDM让系统生成新的默认配置
sudo systemctl restart lightdm

之后重新通过VNC登录,应该会加载默认的Xfce桌面。

4. 排查日志定位隐藏问题

如果以上步骤都没解决,查看x11vnc的实时日志,看看有没有报错信息:

journalctl -u x11vnc -f

在保持日志输出的状态下尝试VNC登录,观察日志里的错误提示(比如权限不足、依赖缺失等),再针对性修复。

内容的提问来源于stack exchange,提问作者kikiriki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 06:28:17