适用于:✔️ Linux VM ✔️ 灵活规模集
如果不熟悉 Linux,或者要快速进行故障排除,使用远程桌面可能比访问安全外壳 (SSH) 更方便。 本文详细介绍如何为运行 Ubuntu 的 Linux VM 安装和配置桌面环境 (xfce) 和远程桌面 (xrdp)。
注意
与使用本地桌面相比,通过 Internet 使用远程桌面将会引入明显的“延迟”(输入延迟)。 这可能受多种因素影响,包括本地 Internet 速度和与托管虚拟机的数据中心的距离。 此延迟通常不反映 VM 本身的性能。
先决条件
本文和提供的步骤来自测试 Ubuntu 24.04 和 SUSE Enterprise Linux 15。
如果需要创建 VM,请使用以下方法之一:
注意
在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud 来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud。
在 Linux VM 上安装桌面环境
Azure 中的大多数 Linux VM 默认情况下未安装桌面环境。 Linux VM 通常使用 SSH 连接而不是桌面环境进行管理,但有多个桌面环境可供你选择安装。 根据所选的桌面环境,最多会占用 2 GB 的磁盘空间,并最长需要十分钟来安装和配置所有所需的包。
以下示例在 Ubuntu VM 上安装轻型 xfce4 桌面环境。
首先,通过 SSH 连接到 VM。 以下示例使用用户名 azureuser 连接到名为 myvm.chinanorth.cloudapp.chinacloudapi.cn 的 VM。 使用自己的值:
ssh azureuser@myvm.chinanorth.cloudapp.chinacloudapi.cn
如果要使用 Windows 并且需要有关使用 SSH 的详细信息,请参阅如何将 SSH 密钥用于 Windows。
对于 Ubuntu 24.04
使用 apt : 安装所有必需的包:
sudo apt update
sudo apt install xfce4 xfce4-session xrdp
sudo systemctl enable xrdp
适用于 SUSE Enterprise Linux 15
使用 zypper : 安装所有必需的包:
sudo zypper in xorg-x11-server xterm xorg-x11-xauth xrdp ssl-cert xhost xclock
sudo systemctl enable xrdp
在 Ubuntu 24 上,需要向 xrdp 用户授予证书访问权限:
sudo adduser xrdp ssl-cert
以下步骤适用于两种分发版(Ubuntu 24 和 SUSE Enterprise Linux 15)
告诉 xrdp 在启动会话时要使用的桌面环境。 配置 xrdp 以使用 xfce 作为桌面环境,如下所示:
echo xfce4-session >~/.xsession
重新启动 xrdp 服务使更改生效,如下所示:
sudo systemctl restart xrdp
设置本地用户帐户密码
如果在创建 VM 时已为用户帐户创建密码,请跳过此步骤。 如果仅使用 SSH 密钥身份验证,并且未设置本地帐户密码,请在使用 xrdp 之前指定密码以登录到 VM。xrdp 无法接受使用 SSH 密钥进行身份验证。 以下示例为用户帐户 azureuser 指定密码:
sudo passwd azureuser
注意
指定密码不会将 SSHD 配置更新为允许密码登录(如果当前不允许)。 从安全角度看,可能想要使用基于密钥的身份验证通过 SSH 隧道连接到 VM,并连接到 xrdp。 如果是这样,请跳过以下创建网络安全组规则的步骤,以允许远程桌面流量。
为远程桌面流量创建网络安全组规则
若要允许远程桌面流量到达 Linux VM,需要创建网络安全组规则以允许端口 3389 上的 TCP 访问 VM。 有关网络安全组规则的详细信息,请参阅什么是网络安全组?你还可以使用 Azure 门户创建网络安全组规则。
以下示例在端口 3389 上使用 az vm open-port 创建网络安全组规则。 使用 Azure CLI(而不是与 VM 的 SSH 会话),打开以下网络安全组规则:
az vm open-port --resource-group myResourceGroup --name myVM --port 3389
使用远程桌面客户端连接 Linux VM
打开本地的远程桌面客户端,并连接到 Linux VM 的 IP 地址或 DNS 名称。
输入 VM 上的用户帐户的用户名和密码,如下所示:
进行身份验证后,将加载 xfce 桌面环境,其外观类似于以下示例:
如果本地 RDP 客户端使用网络级别身份验证 (NLA),则可能需要禁用该连接设置。 XRDP 目前不支持 NLA。 还可以考虑其他支持 NLA 的替代 RDP 解决方案,例如 FreeRDP。
疑难解答
如果无法使用远程桌面客户端连接到 Linux VM,请在 Linux VM上使用 netstat 验证 VM 是否正在侦听 RDP 连接,如下所示:
sudo netstat -plnt | grep rdp
以下示例显示正在按预期方式侦听 TCP 端口 3389 的 VM:
tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN 53192/xrdp-sesman
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 53188/xrdp
如果 xrdp-sesman 服务未在侦听,请在 Ubuntu VM 上重新启动该服务,如下所示:
sudo systemctl restart xrdp
请查看 Ubuntu VM 上的 /var/log 中的日志,以获得该服务可能未响应的原因的指示。 也可以在远程桌面连接尝试期间监视 syslog 以查看任何错误:
tail -f /var/log/syslog
如果用户在远程桌面客户端中未收到任何响应,并且在系统日志中看不到任何事件,则此行为指示远程桌面流量无法到达 VM。 查看网络安全组规则,以确保有规则允许端口 3389 上的 TCP。 有关详细信息,请参阅排查应用程序连接问题。
后续步骤
有关为 Linux VM 创建 SSH 密钥和在 Linux VM 上使用 SSH 密钥的详细信息,请参阅在 Azure 中为 Linux VM 创建 SSH 密钥。
有关从 Windows 使用 SSH 的信息,请参阅如何在 Windows 中使用 SSH 密钥。