Azure Ubuntu 安装 LXDE 并开启远程桌面

Azure Ubuntu 安装 LXDE 并开启远程桌面

笔者需要在微软 Azure 的 VPS 安装的 Ubuntu 上临时使用 Linux GUI 应用程序。查阅了很多资料,在 X11 转发和 xrdp 远程桌面之间,选择了后者。经过反复摸索终于搞定,将主要操作步骤记录下来与读者分享。

远程桌面连接 Ubuntu

1. 用 SSH 远程连接到 VPS

此处 kukmoon 为用户名,999.999.999.999 为 VPS 的 IP 地址。

1
PS C:\Users\Kukmoon> ssh kukmoon@999.999.999.999

2. 安装无推荐软件的 LXDE 环境

笔者的 VPS 只有 1GiB 内存,需要轻量级桌面。对比了 LXDE 与 Xfce,笔者选择了 LXDE。此外,如果安装 Xfce,可参见本文的参考文献[1]

1
2
$ sudo apt update
$ sudo apt -y install --no-install-recommends lxde

注意:

  1. 以前安装 LXDE 时,系统会让用户在 gdm 和 lightdm 两个窗口管理器之间选一个,笔者选择了更轻量的 lightdm。
  2. 一年半以后,当笔者在一台新的 Azure VPS 上安装 LXDE 时,它没有让我选择窗口管理器,而是直接安装 Openbox 窗口管理器。

3. 安装并配置 xrdp

Xrdp 可以让用户通过微软远程桌面(mstsc)远程连接 Linux 的桌面。

1
2
3
$ sudo apt -y install xrdp   # 安装 xrdp
$ sudo systemctl enable xrdp # 开启 xrdp 服务
$ echo startlxde > ~/.xsession # 如果是 Xfce 需要按照参考文献[1]来操作

注意:如果 VPS 的操作系统是 Ubuntu 20 或以上,需要给访问远程桌面的用户赋予证书访问权限(此处 kukmoon 是用户名):

1
$ sudo adduser kukmoon ssl-cert

注意:低版本 Ubuntu 或者其他的 Linux 发行版可能还要安装 xauth。

1
$ sudo apt -y install xauth

4. (可选)安装中文支持

4.1 安装中文字体

安装 Unifont。笔者只用这一个就够了。

1
sudo apt -y install unifont

注意:Unifont 字体家族中的 Unifont Sample 是真·点阵字体。要让 Linux 桌面顺利地调用它,需要解除 Ubuntu 系统对点阵字体的限制。

1
sudo unlink /etc/fonts/conf.d/70-no-bitmaps.conf

然后,在 LXDE 和各种图形界面应用软件中把字体设置为 Unifont Sample,就可以在低分辨率的屏幕上清晰地显示了。

4.2 区域设置,安装中文输入法和其他中文字体

参见这篇文章 [2]

5. 配置防火墙放行端口

5.1 (可选)更改远程桌面默认端口

远程桌面的默认侦听端口为 3389,很多黑客会批量扫描一个 IP 段中的 3389 端口,寻找入侵对象。此时可以更换一个不常用的端口。

修改 /etc/xrdp/xrdp.ini 配置文件,将 port=3389 一行修改为其他的端口数值,此处修改为 port=23456

注意:后文所有端口都用 23456 举例;如果读者此处没有修改端口为 23456,按照后文操作时,记得仍然把端口设为 3389

5.2 配置 Ubuntu 防火墙放行远程桌面端口

1
$ sudo ufw allow 23456

5.3 在 Azure 的防火墙放行远程桌面端口

有两种方法:

方法一,命令行。 在 Azure CLI PowerShell 中执行以下命令:

1
PS /home/kukmoon> az vm open-port --resource-group myResourceGroup --name myVM --port 23456 --priority 910

其中 myResourceGroup 是 VPS 所在的资源组名称,myVM 是 VPS 的名称(Azure 把 VPS 当作虚拟机处理),23456 是 xrdp 服务的侦听端口,910 是防火墙规则的优先级。

方法二,图形界面。 在 Azure 的主页➡️虚拟机➡️Ubuntu➡️设置➡️网络里面添加一条入站规则,放行 23456 端口。
添加入站规则

5.4 重启 xrdp 服务

1
$ sudo systemctl restart xrdp

6. (可选)关闭 Linux 图形界面

为了节约 VPS 的内存和 CPU 资源,笔者需要永久关闭图形界面,只在必要时临时打开,用远程桌面连接到 VPS 进行操作,操作结束后再临时关掉。

永久关闭图形界面(重启后生效):

1
$ sudo systemctl set-default multi-user.target

永久打开图形界面(重启后生效):

1
$ sudo systemctl set-default graphical.target

针对 lightdm 或 gdm,临时关闭图形界面(立即生效):

1
2
3
$ sudo systemctl stop lightdm    # 关闭 lightdm 窗口管理器,如果之前安装了 gdm,需要把此处的 lightdm 改成 gdm
$ sudo systemctl stop xrdp # 关闭 xrdp 远程桌面服务
$ ps -ef | grep LXDE | grep -v grep | awk '{print $2}' | xargs kill -9 # 结束与 LXDE 相关的进程

针对 lightdm 或 gdm,临时打开图形界面(立即生效):

1
2
$ sudo systemctl start lightdm    # 开启 lightdm 窗口管理器
$ sudo systemctl start xrdp # 开启 xrdp 远程桌面服务,它会自动打开 LXDE 桌面

针对 openbox,临时关闭图形界面(立即生效):

1
2
3
$ sudo killall openbox    # 关闭 openbox 窗口管理器
$ sudo systemctl stop xrdp # 关闭 xrdp 远程桌面服务
$ ps -ef | grep LXDE | grep -v grep | awk '{print $2}' | xargs kill -9 # 结束与 LXDE 相关的进程

针对 openbox,临时打开图形界面(立即生效):

1
$ sudo systemctl start xrdp       # 开启 xrdp 远程桌面服务

注意:因为之前修改过 ~/.xsession 文件,所以当通过 xrdp 连接主机启动 X 会话时,就会运行 startlxde 启动 LXDE,而 LXDE 启动后又会连带打开 openbox 窗口管理器。

7. 注意事项

  1. Linux 在系统层面上是没有图形界面一说的。只是一部分应用程序才具有图形界面,窗口管理器与桌面环境也是应用程序,并非系统内核的一部分,这有一点像 DOS 与 Windows 3.x 的关系。

  2. Windows 从 NT3.1 开始,图形界面就是内核不可分割的一部分。啊啊,Windows 的内核已经是图形界面的形状了(误

  3. 用微软远程桌面登录 Linux 桌面的注意事项:通过用户名和密码而不是 SSH 密钥来登录。如果在 VPS 上安装操作系统时没设置用户的登录密码,需要重新设置一下。

8. 图片版权

题图:https://pixabay.com/zh/illustrations/ubuntu-computer-program-interface-3145957/

头图:该图片由PexelsPixabay上发布

9. 参考资料


求扫码打赏
“我这么可爱,请给我钱 o(*^ω^*)o”

Azure Ubuntu 安装 LXDE 并开启远程桌面
https://blog.kukmoon.com/016bea5ae5a6/
作者
Kukmoon谷月
发布于
2023年3月26日
许可协议