Ubuntu22.04 vnc远程黑屏

一、原因

原因是Ubuntu22.04使用的gnome启用了Wayland。vnc、teamviewer、向日葵、todesk等均无法使用或者远程黑屏等。

简单的说vnc、teamviewer、向日葵、todesk等均基于xorg实现(xorg太流行),并不兼容Wayland,所以vnc无法正常使用。

realvnc官方也明确说明,目前在Linux上无法支持 Wayland。

GNOME是一套桌面环境,包括一系列应用程序。比如显示管理器,窗口管理器,firefox浏览器等都是XClient。

Xorg:广义的说已经成为一种统称它是Linux上通用的桌面环境(后端)服务器(X11的一种具体开源实现)。

X Window System(又称为X11):以前好像说是一种Linux桌面后端的协议或者规范?应该也提供了一个基本抽象库。如今广泛使用的实现的似乎只有Xorg,所以现在大多时候,X11、Xorg、X Server说的都是一个东西就是Linux桌面的X11后端服务器,也就是Xorg。

Wayland是新一代的Linux桌面后端服务器的协议(或者说规范)而且其也实现了一个此协议的基本库,但是这个不属于具体实现,只是提供一个协议的基础抽象。它有一个参考实现叫Weston。Gnome和KDE(也是一个桌面环境前端)似乎也都有对应的Wayland实现。

因为X11已经很老了,而且有很多问题不好在原有基础上动刀了等等一系列原因,才有的Wayland。

二、现象复现

2.1 按照往常惯例在设置,共享,启用远程桌面,勾选vnc协议,如下图:

2.2 vnc viewer直接输入ip,Ubuntu弹出提示,点允许,连接成功了,但如下图2完全黑屏,仅有鼠标指针,完全无法使用;

 

三、解决方案 

两种思路,一种登录界面切换到Xorg,另一种使用Windows自带的远程桌面mstc

3.1、一般的主流发行版本在登陆时都可以切换到Xorg,此时常用远程软件就可以使用,如下图:

此时还需要在vnc viewer里改一下下图参数,不然还是黑屏‘

 3.2、如下图Wayland居然支持了Windows自带的远程桌面mstc;