1. 前言
因为远程工作的原因,同时Ubuntu上有需要GUI界面启动的程序,所以研究了一下如何远程桌面登录。
网上已经有一些教程指导该如何登录,但是我按照那些文章并不能实现登录,其中出现了
-
connection problem,giving up问题
-
No configured security type is supported 问题
-
安装xrdp 后,鼠标和键盘无法使用的问题
经过查找各种教程,在反复试验之后,终于找到了一种方法(但并不算完美,后面会详说不完美之处),算是解决了上面的那些问题。
我这里用到的Ubuntu和Windows的版本如下:
Ubuntu18.04 LTS
Windows10 Pro
下面就开始介绍我的做法。
2. Ubuntu侧的准备
2.1 从 [设定] 工具 开启 屏幕 共享
打开Unbuntu的 [设定] 工具,找到 [Sharing] 页面
将 [Screen Sharing] ([屏幕共享] )设定打开(下面页面左上角的按钮设置为 [ON] )
如果需要设置密码,在[Password]栏里设置密码
2.2 设置防火墙
通过以下命令可以查看防火墙的启动情况
$ sudo ufw status
如果是 inactive的话,可以不需要任何设置。
如果需要开启防火墙的话,那需要打开5900端口
$ sudo ufw allow 5900
$ sudo ufw reload
$ sudo ufw status
2.3 设置Gsettings
通过Windows连接的时候,需要将通信的加密处理关掉。关于Vino的说明[1]请看注释。
(这里是不完美之处之一,因为远程桌面之间的通信内容没有加密,在security方面是有瑕疵的。当然,如果是公司内的局域网,则没有这个问题)
$ sudo gsettings set org.gnome.Vino require-encryption false
2.4 安装 xdrp
xrdp[2]是Microsoft RDP服务器的免费开源实现,可以通过以下命令安装
sudo apt-get install xrdp
sudo systemctl restart xrdp
但是,在实际的连接过程中,我的电脑会报如下的错误
- connection problem,giving up问题
通过如这个文章中[3]提到的方法,也许可以解决该问题。
这个问题的原因是在安装xrdp的时候,xorgxrdp这个包并没有被完美安装进去[4]。
但是我是按照如下方法解决的。但是请注意,这个方法会更换内核,有一定风险!(不完美之处二)
2.5 切换HWE内核到GE内核
HWE(Hardware Enablement)[5]和xrdp的匹配并不好,所以需要将HWE切换到GE(Generic)内核。
- 查看HWE的状态
hwe-support-status
- 卸载HWE
sudo telinit 3 #登录 console
sudo apt update
sudo apt -y purge ubuntu-desktop xorg # 替换xorg
sudo apt install linux-generic # 安装GE
sudo apt purge linux-generic-hwe-18.04 # 删除HWE
sudo reboot
- 重新安装xorg,以及桌面相关
sudo telinit 3
sudo apt purge xserver-xorg-core-hwe-18.04 xserver-xorg-input-all-hwe-18.04 xserver-xorg-legacy-hwe-18.04 linux-headers-generic-hwe-18.04 linux-image-generic-hwe-18.04 # 删除HWE相关组件
dpkg -l | grep hwe # 确认系统里是否还有HWE相关的内容,如果有的话删除
sudo apt install xserver-xorg-core
sudo apt install ubuntu-desktop xserver-xorg xserver-xorg-video-all xserver-xorg-input-all libgl1-mesa-dri libgl1-mesa-glx
sudo reboot
重启后,再通过命令hwe-support-status命令查看,如果什么都不输出,说明切换完成
3 Windows侧的准备
3.1 使用自带的远程登录工具
在Windows自带的远程工具中输入要远程登录的PC的名字(或者IP)后,会出现如下的画面。
将登录模式改为[console], 并输入你在Ubuntu侧设置的密码,即可登录了。
登录后的画面如下。
3.2 使用VNC工具登录
VNC的工具有很多,我使用的TightVNC[6]是一个开源的软件。
下载安装以后,打开[TightVNC Viewer],会出现如下画面
按照提示输入密码
同样可以连接上去。
4 后记
我在实现Ubuntu远程登录的过程中,还遇到过,TightViewer报错到的下面问题
- No configured security type is supported 问题
以及以下的问题
- 安装xrdp 后,鼠标和键盘无法使用的问题
这两个问题,都在我安装本文的【切换HWE内核到GE内核】的步骤,将HWE切换到GE以后,就不再发生。其中原因并没有深究。