作者选择了 Software in the Public Interest (SPI) 作为 Write for DOnations 计划的一部分来接受捐赠。
介绍
通常,基于 Linux 的服务器没有预装图形用户界面 (GUI)。 每当您想在您的实例上运行 GUI 应用程序时,典型的解决方案是使用虚拟网络计算 (VNC)。 不幸的是,VNC 解决方案可能缓慢且不安全。 许多还需要大量的手动配置。 相比之下,X2Go 提供了一个可工作的“云桌面”,具有始终在线、可远程访问且易于扩展的计算系统和快速网络的所有优势。 它也比许多 VNC 解决方案响应速度更快、更安全。
在本教程中,您将使用 X2Go 创建一个可以远程访问的 Ubuntu 20.04 XFCE 桌面环境。 此云桌面将包含与您在个人计算机上安装 Ubuntu 20.04 和 XFCE 环境时获得的相同实用程序(几乎与 Xubuntu 设置相同)。
本教程中描述的设置在以下情况下很有用:
- 您需要访问基于 Linux 的操作系统,并带有桌面环境,但无法将其安装在您的个人计算机上。
- 您在多个位置使用多个设备,并希望使用相同的工具、外观、文件和性能获得一致的工作环境。
- 您的 Internet 服务提供商为您提供的带宽很少,但您需要访问数十或数百 GB 的数据。
- 长时间运行的作业会使您的本地计算机数小时或数天不可用。 想象一下,您必须编译一个大型项目,这将在您的笔记本电脑上花费 8 个小时。 在您的项目编译时,您将无法观看电影或做任何其他资源密集型的事情。 但是,如果您在服务器上运行该作业,那么您的计算机现在可以自由地执行其他任务。
- 您正在与一个团队合作,拥有一台共享的计算机对他们很有好处,他们可以访问该计算机以在项目上进行协作。
先决条件
在开始本教程之前,您需要:
- 具有 2GB 或更多 RAM 的 Ubuntu 20.04 x64 实例。 2GB 是最小的,但如果您计划运行需要大量内存的应用程序,那么 4GB 或更大的服务器是理想的。 如果您愿意,可以使用 DigitalOcean Droplet。
- 具有
sudo
权限和 SSH 密钥的用户。 请按照本指南开始:使用 Ubuntu 20.04 进行初始服务器设置。 确保完成第 4 步并将防火墙配置为限制除 OpenSSH 之外的所有连接。
第 1 步 — 在您的服务器上安装桌面环境
启动服务器并配置防火墙后,您现在可以为 X2Go 服务器安装图形环境了。
首先,更新包管理器关于可用的最新软件的信息:
sudo apt-get update
在本教程中,您将安装 XFCE 作为桌面环境。 XFCE 不使用合成等图形效果,使其更兼容 X2Go 并优化屏幕更新。 作为参考,LXDE 桌面环境 和 MATE 桌面环境(禁用合成)也可以正常工作,但是您必须更改本教程中安装桌面的命令环境。 例如,您可以键入 sudo apt-get install lubuntu-desktop
而不是 sudo apt-get install xubuntu-desktop
来安装 LXDE
。
XFCE有两种安装方式; 最小桌面环境或完整桌面环境。 您的最佳选择将取决于您的需求,我们将在下面介绍。 选择两个之一。
完整的桌面环境
推荐用于大多数用例。 如果您不想亲自挑选所需的每个组件,而是希望有一套默认的软件包,例如文字处理器、Web 浏览器、电子邮件客户端和其他预装配件,您可以选择 xubuntu-desktop
。
安装和配置完整桌面环境。 完整桌面环境类似于从可引导 DVD/USB 记忆棒安装 Xubuntu 到本地 PC 时所获得的环境:
sudo apt-get install xubuntu-desktop
当提示选择显示管理器时,选择 lightdm。
最小的桌面环境
或者,如果你想安装一个小的核心包集,然后通过手动添加你需要的任何东西来构建它们,你可以使用 xubuntu-core
元包。
元包不包含单个包; 相反,元包包含整个包集合。 安装元包使用户免于手动安装大量组件。
安装 xfce4
以及支持它所需的所有其他依赖项:
sudo apt-get install xubuntu-core
您已经安装了图形环境。 现在您将建立一种远程查看它的方法。
第 2 步 — 在服务器上安装 X2Go
X2Go 带有两个主要组件:服务器,它启动和管理远程计算机上的图形会话,以及客户端,您安装在本地计算机上以查看和控制远程桌面或应用程序。
在以前的 Ubuntu 版本(18.04 之前)中,x2goserver 不包含在默认存储库中,因此您必须按照以下步骤获取软件包。 我们将链接留在这里,仅供参考,以防软件包在未来版本的 Ubuntu 中被删除。 幸运的是,代号为 Focal Fossa 的 Ubuntu 20.04 在其默认存储库中包含了您需要的软件包,因此安装速度更快。
要在您的服务器上安装 X2Go,请键入以下命令:
sudo apt-get install x2goserver x2goserver-xsession
此时,您的服务器不需要进一步设置。 但是,请记住,如果您遵循 使用 Ubuntu 20.04 的初始服务器设置中的 设置 SSH 密钥 的建议,那么您需要在每个服务器上都提供您的 SSH 私钥您打算使用的本地机器。 如果您没有设置 SSH 私钥,请确保选择强密码。
注意: 请记住,如果内存不足,Linux 内核可能会突然终止某些应用程序,从而导致工作丢失。 如果您使用的是 DigitalOcean Droplet,并且您注意到您的程序需要更多 RAM,您可以暂时关闭您的 Droplet 并升级(调整大小)到具有更多内存的程序。
您已配置您的服务器。 输入 exit
或关闭终端窗口。 其余步骤将侧重于在本地计算机上配置客户端。
第 3 步 — 在本地安装 X2Go 客户端
X2Go 开箱即用。 如果您在本地机器上使用 Windows 或 Mac OS X,您可以在此处下载 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 为 Ubuntu 操作系统创建了一个健壮的远程 GUI 环境。 现在您已启动并运行,以下是有关使用此桌面的一些想法:
- 您可以通过创建一个 git 存储库来集中您的开发工作。
- 您可以安装 IDE/代码编辑器,例如 NetBeans 或 Eclipse。 您还可以 通过 Remote-SSH 插件 使用 Visual Studio Code 进行远程开发。
- 您可以配置一个Web服务器来测试Web应用程序。
- 您还可以使用良好的备份方案来增强您的远程桌面,以保护您的工作环境和基本数据,以防万一出现问题。 使用 DigitalOcean,当您对特定设置感到满意时,您还可以对 Droplets 进行快照。 这样,您可以测试有风险的更改并始终返回到已知的工作状态。
如果您想了解更多信息,请访问 X2Go 的官方文档网站。