一、安装桌面环境
Ubuntu 服务器通常使用命令行进行管理,并且默认没有安装桌面环境。如果你正在运行 Ubuntu 桌面版,忽略这一步。
在 Ubuntu 源仓库有很多桌面环境供你选择。一个选择是安装 Gnome,它是 Ubuntu 20.04 的默认桌面环境。另外一个选项就是安装 xfce。它是快速,稳定,并且轻量的桌面环境,使得它成为远程服务器的理想桌面。
运行下面任何一个命令去安装你选择的桌面环境:
- 安装 Gnome
sudo apt update
sudo apt install ubuntu-desktop
- 安装 Xfce
sudo apt update
sudo apt install xubuntu-desktop
取决于你的系统,下载和安装 GUI 软件包,将会花费一些时间。
二、安装 Xrdp
Xrdp 被包含在默认的 Ubuntu 软件源中。想要安装它,运行:
sudo apt install xrdp
一旦安装完成,Xrdp 服务将会自动启动。你可以输入下面的命令,验证它:
sudo systemctl status xrdp
输出将会像下面这样:
默认情况下,Xrdp 使用/etc/ssl/private/ssl-cert-snakeoil.key
,它仅仅对“ssl-cert” 用户组成语可读。运行下面的命令,将xrdp
用户添加到这个用户组:
sudo adduser xrdp ssl-cert
重启 Xrdp 服务,使得修改生效:
sudo systemctl restart xrdp
就这样。Xrdp 已经在你的 Ubuntu 服务器上安装好了,你可以开始使用它了。
三、Xrdp 配置
Xrdp 配置文件定位在/etc/xrdp
目录。对于基本的 Xrdp 链接,你不需要对配置文件做任何改动。
Xrdp 使用默认的 X Window 桌面环境(Gnome or XFCE)。
主要的配置文件被命名为 xrdp.ini。这个文件被分成不同的段,允许你设置全局配置,例如安全,监听地址,创建不同的 xrdp 登录会话等。
不管什么时候你对配置文件做出修改,你需要重启 Xrdp 服务。
Xrdp 使用startwm.sh
文件启动 X 会话。如果你想使用另外一个 X Window 桌面,编辑这个文件。
四、配置防火墙
Xrdp 守护程序在所有的网络接口上监听端口3389
。如果你在你的 Ubuntu 服务器上运行一个防火墙,你需要打开 Xrdp 端口。
想要允许从某一个指定的 IP 地址或者 IP 范围访问 Xrdp 服务器,例如192.168.117.131/24
,你需要运行下面的命令:
sudo ufw allow from 192.168.117.131/24 to any port 3389
如果你想允许从任何地方访问(由于安全原因,这种方式不鼓励),运行:
sudo ufw allow 3389
想要增加安全,你可以考虑 Xrdp 仅仅监听 localhost,并且创建一个 SSH 隧道,将本地机器的3389
端口到远程服务器的同样端口之间的流量加密。
五、连接 Xrdp 服务器
使用MobaXterm RDP连接服务器
在登录屏幕,输入你的用户名和密码,点击“OK”。
一旦登录,你将看到默认的 Gnome 或者 Xfce 桌面,它应该像下面这样:
现在你可以从你的本地机器上使用你的键盘和鼠标和远程桌面进行交互了。
六、连接黑屏问题
这个问题,主要是当你的本机没有注销的话,远程桌面就会黑屏,最佳解决策略就是退出本地登录,也就是注销登录,这个方法一定没问题。与windows那种完美的远程控制不同,在ubuntu中,本地登录和远程登陆是隔离开的,远程登录了不注销,那么本地就会黑屏,反过来本地登陆了不注销,远程就会黑屏。所谓注销就是logout,应该都懂,就是和关机、重启放在一起的那个选项。
或者使用网上的一些解决方案,编辑 /etc/xrdp/startwm.sh 文件:
1. 打开文件
sudo vim /etc/xrdp/startwm.sh
2. 添加配置
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
3. 重启xrdp服务
sudo systemctl restart xrdp.service
七、桌面优化
注意,一定要先修改下面配置文件,再远程连接,否则会黑屏,这个时候需要重启。
反正记住一句话,重启后不在本地登录,那么远程必不黑屏!
如果不做任何配置,启动之后的桌面是非常别扭的,因为是Gnome的原始桌面,没有左侧的任务栏,窗口也没有最小化按钮,等等一些列问题。解决方案也很简单:
1. 添加配置文件
vim ~/.xsessionrc
添加:
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
2. 重启xrdp服务
sudo systemctl restart xrdp.service