如何在CentOS8上使用X2Go设置远程桌面
作者选择了 Software in the Public Interest (SPI) 作为 Write for DOnations 计划的一部分来接受捐赠。
介绍
通常,基于 Linux 的服务器没有预装图形用户界面 (GUI)。 每当您想在您的实例上运行 GUI 应用程序时,典型的解决方案是使用虚拟网络计算 (VNC)。 不幸的是,VNC 解决方案可能缓慢且不安全。 许多还需要大量的手动配置。 相比之下,X2Go 提供了一个可工作的“云桌面”,具有始终在线、可远程访问且易于扩展的计算系统和快速网络的所有优势。 它也比许多 VNC 解决方案响应速度更快、更安全。
在本教程中,您将使用 X2Go 创建一个可以远程访问的 XFCE 桌面环境。
本教程中描述的设置在以下情况下很有用:
- 您需要访问基于 Linux 的操作系统,并带有桌面环境,但无法将其安装在您的个人计算机上。
- 您在多个位置使用多个设备(例如,个人笔记本电脑、工作笔记本电脑),但想要一个具有相同工具、外观、文件和性能的持久工作环境。 想象一个场景,您忘记随身携带您的工作笔记本电脑,或者它发生故障,您必须将其送去维修。 由于远程桌面上的一切都保持不变,因此您不必重新安装您喜欢用来完成工作的整套实用程序。 您只需登录到远程桌面,无论您从什么设备登录,一切都将与您离开时完全一样。
- 您的 Internet 服务提供商为您提供的带宽很少,但您需要访问数十或数百 GB 的数据。 例如,您可以利用服务器非常快的网络下载 100GB 的数据。 由于服务器本身是使用带宽的服务器,因此您无需使用 Internet 服务提供商每月分配给您的配额。 您只需为向您发送远程桌面图像所需的网络带宽付费,相比之下,这非常小。
- 长时间运行的作业会使您的本地计算机数小时或数天不可用。 想象一下,您必须编译一个大型项目,这将在您的笔记本电脑上花费 8 个小时。 在您的项目编译时,您将无法观看电影或做任何其他资源密集型的事情。 但是,如果您在服务器上运行该作业,那么您的计算机现在可以自由地执行其他任务。
- 您正在与一个团队合作,并且所有成员都可以拥有一台公共的共享计算机,他们可以访问该计算机以在项目上进行协作。
先决条件
在开始本教程之前,您需要:
- 具有 2GB 或更多 RAM 的 CentOS 8 x64 实例。 2GB 是最小的,但如果您计划运行需要大量内存的应用程序,那么 4GB 或更大的服务器是理想的。 如果您愿意,可以使用 DigitalOcean Droplet。
- 具有
sudo
权限和 SSH 密钥的用户。 请按照本指南开始:使用 CentOS 8 进行初始服务器设置。 第四步,按照提示配置防火墙,不要输入命令firewall-cmd --permanent --add-service=http
。 此命令在您的服务器上打开帖子80
,您不需要。
第 1 步 — 在您的服务器上安装桌面环境
启动服务器并配置防火墙后,您现在可以安装图形环境了。
首先,升级您实例上的所有软件包:
sudo dnf upgrade
在本教程中,您将安装 XFCE 作为桌面环境。 XFCE 不使用合成等图形效果,使其与 X2Go 更兼容,并允许优化屏幕更新通过网络发送的方式。 换句话说,它可能是最容易使用 X2Go 的一种,因为一切都可以立即运行。 LXDE 也应该开箱即用。 MATE 和 KDE 桌面环境也可以工作,但可能需要一些变通方法,例如,禁用合成以提高性能和响应能力。
如果您喜欢不同的桌面环境,则必须将本教程中的 sudo dnf groupinstall Xfce
等命令替换为 sudo dnf group install "KDE Plasma Workspaces"
以安装 KDE
,然后配置 Session在 X2Go 客户端中输入 到 KDE。 您还可以安装多个桌面环境,并排安装,然后在每次使用 X2Go 客户端登录时选择您喜欢启动的一个。
您现在需要安装的软件包不包含在 CentOS 的默认存储库中,因此您必须启用 Extra Packages for Enterprise Linux (EPEL) 存储库:
sudo dnf install epel-release
一些 X2Go 服务器实用程序还依赖于 PowerTools 存储库中的一些软件包,您可以使用以下命令启用它们:
sudo dnf config-manager --set-enabled PowerTools
最后,您现在可以安装 XFCE 桌面环境:
sudo dnf groupinstall Xfce
CentOS 提供了一个相当简单的 XFCE 环境,但您可以使用简单的 sudo dnf install name_of_application
命令添加您需要的任何其他实用程序(例如,网络浏览器、图像编辑器)。
现在安装了桌面环境,是时候建立一种在本地计算机上查看它的方法了。
第 2 步 — 在服务器上安装 X2Go
X2Go 带有两个主要组件:服务器,它启动和管理远程计算机上的图形会话,以及客户端,您安装在本地计算机上以查看和控制远程桌面或应用程序。
要在您的服务器上安装 X2Go,请键入以下命令:
sudo dnf install x2goserver
此时,您的服务器不需要进一步设置。 但是,请记住,如果您遵循 使用 CentOS 8 的初始服务器设置中的 设置 SSH 密钥 的建议,那么您需要在每个服务器上都提供您的 SSH 私钥您打算从本地计算机登录到远程桌面会话。 如果您没有设置 SSH 私钥,请确保选择强密码。
注意: 请记住,如果内存不足,Linux 内核可能会突然终止某些应用程序,从而导致工作丢失。 如果您使用的是 DigitalOcean Droplet,并且您注意到您的程序需要更多 RAM,您可以暂时关闭您的 Droplet 并升级(调整大小)到具有更多内存的程序。
您已配置您的服务器。 输入 exit
或关闭终端窗口。 其余步骤将侧重于在本地计算机上配置客户端。
第 3 步 — 在本地安装 X2Go 客户端
X2Go 开箱即用。 如果您在本地机器上使用 Windows 或 macOS,您可以在此处下载 X2Go 客户端软件。 如果您使用的是 Debian 或 Ubuntu,您可以在本地机器上使用以下命令安装 X2Go 客户端:
sudo apt-get install x2goclient
下载软件后,您就可以安装它了。 打开安装程序并选择您的首选语言。 现在同意许可并让向导指导您完成剩余的步骤。 通常,不应有任何理由更改这些步骤中预填充的默认值。
X2Go 开箱即用,但它也可以高度定制。 如果您想了解更多信息,请访问 X2Go 的官方文档。
现在您已经安装了桌面客户端,您可以配置其设置并连接到 X2Go 服务器以使用您的远程 XFCE 桌面。
第 4 步 — 连接到远程桌面
当您第一次打开 X2Go 客户端时,会出现一个窗口。 如果没有,请单击左上角菜单中的 Session,然后选择 New session ...。
在 会话名称 字段中,输入有助于区分服务器的内容。 如果您计划连接到多台机器,则使用会话名称特别有用。
在 Server 下的 Host 字段中输入服务器的 IP 地址或完全限定域名 (FQDN)。
在 Login 字段中输入您用于 SSH 连接的用户名。
由于您在第二步中安装了 XFCE,因此选择 XFCE 作为您的 Session type。
最后,因为您使用 SSH 密钥连接到服务器,所以单击 Use RSA/DSA key for ssh connection 旁边的文件夹图标并浏览到您的私钥。 如果您没有选择使用更安全的 SSH 密钥,请将其留空; 每次登录时,X2Go 客户端都会要求输入密码。
其余的默认设置现在就足够了,但是随着您对软件的熟悉,您可以根据您的个人喜好微调客户端。
按下 OK 按钮后,您可以通过单击框右上角包含会话名称的白框来启动图形会话。
如果您在本地计算机上运行 OS X,OS X 可能会提示您安装 XQuartz,这是运行 X11 所必需的。 如果是这样,请按照说明立即安装它。
几秒钟后,您的远程桌面将出现,您可以开始与之交互。
您可以使用一些有用的键盘快捷键在基于 Windows 和 Linux 的操作系统上获得更好的体验。
注意: 前两个选项在现代 Windows 版本上可能会出现错误行为。 此时您仍然可以测试它们,以防更高版本的 X2Go 解决问题。 如果它们失败了,请避免以后使用相同的键盘快捷键。
CTRL+ALT+F
将打开和关闭全屏模式。 在全屏模式下工作感觉更像是本地桌面体验。 全屏模式还可以帮助远程机器而不是本地机器获取键盘快捷键。
CTRL+ALT+M
将最小化远程视图,即使您处于全屏模式。
CTRL+ALT+T
将断开与会话的连接,但让 GUI 在服务器上运行。 这只是一种无需注销或关闭服务器上的应用程序即可快速断开连接的方法。 如果您单击窗口的关闭按钮,也会发生同样的情况。
最后,有两种方法可以结束远程会话并关闭其中运行的所有图形程序。 可以从XFCE的【X37X】开始菜单【X51X】远程注销,也可以点击主界面右下角带圆圈和小线条的按钮(如电源/待机图标) X2Go 屏幕。
第一种方法更简洁,但可能会使会话管理软件等程序继续运行。 第二种方法将关闭所有内容,但如果进程无法干净退出,则可能会强制关闭。 无论哪种情况,请务必在继续之前保存您的工作。
您现在已经成功访问并配置了您的远程桌面。
结论
在本教程中,您使用 X2Go 为 CentOS 操作系统创建了一个健壮的远程 GUI 环境。 现在您已启动并运行,以下是有关使用此桌面的一些想法:
- 您可以通过创建一个 git 存储库来集中您的开发工作。
- 您可以安装 IDE/代码编辑器,例如 NetBeans 或 Eclipse。 您还可以 通过 Remote-SSH 插件 使用 Visual Studio Code 进行远程开发。
- 您可以配置一个Web服务器来测试Web应用程序。 通过在远程桌面上打开浏览器并导航到地址栏中的
localhost
,您可以测试您正在处理的 Web 应用程序,而无需不断地将文件重新上传到某个远程服务器。 一切都封装在 X2Go 用于查看远程桌面的安全和私有 SSH 连接中。 这意味着虽然您在连接到互联网的服务器上测试您的网站,但您正在处理的网络应用程序只能由您查看,不可公开访问,因此您不必担心意外泄漏未完成和未完成的工作。 - 您还可以使用良好的备份方案来增强您的远程桌面,以保护您的工作环境和基本数据,以防万一出现问题。 使用 DigitalOcean,当您对特定设置感到满意时,您还可以对 Droplets 进行快照。 通过这种方式,您可以测试有风险的更改并快速恢复到已知的工作状态(如果需要),这在典型的 Windows 计算机上并不容易做到。 快照还允许您克隆特定设置。 这样就可以为所有团队成员提供他们自己的私有远程桌面,就开发工具而言,他们可以在类似的环境中执行工作。 但这样一来,他们每个人都可以根据自己的喜好自定义环境,并使用自己的文件集。
总而言之,您可以创建一个完整的开发环境,包括所有的花里胡哨,从您使用的代码编辑器到运行和测试该代码所需的软件。
如果您想了解更多信息,请访问 X2Go 的官方文档网站。