为了提高效率,安全性以及从命令行执行所有操作的能力,许多服务器不使用图形用户界面(GUI)。但是,有时您需要在远程服务器上运行GUI应用程序,例如在浏览器中测试网站或者您正在寻找具有完整桌面环境(DE)的远程可访问工作站时。
在运行Linux或其他*nix变体的远程计算机上与图形界面交互的典型解决方案是虚拟网络计算(VNC)。不幸的是,VNC出了名的迟缓,默认情况下不安全,需要大量的手动配置才能启动和运行。如果您使用其他系统,可以参考基于 CentOS 搭建 VNC 远程桌面服务和基于 Ubuntu 搭建 VNC 远程桌面服务的相关教程。
相比之下,X2Go提供了几个优点:
这样的设置在以下情况下很有用
在本教程中,我们推荐Debian而不是Ubuntu,因为某些版本的Ubuntu的默认DE,Unity与X2Go不兼容。而且,替代桌面环境有时会在Ubuntu上出现问题。
同样,我们推荐使用XFCE,因为它不需要运行专用视频卡,因此它与X2Go更兼容。但是,LXDE,Mate(禁用合成),甚至更老的KDE,Unity和Cinnamon(以及一些调整)也可以工作。
最后,Firefox-if xrender处于活动状态(默认情况下在Debian 8中) -通常可以为X2Go提供更流畅的体验。
完成本教程后,您将拥有一个可以远程连接的Linux桌面,其中包含与本地安装Debian XFCE完全相同的实用程序。此外,通过安装和配置防火墙,您可以保护远程桌面,使其更难以利用。
在开始学习本教程之前,您需要:
请记住,如果RAM耗尽,Linux内核将终止应用程序,您可能会丢失任务。
安装整个桌面环境会引入许多其他软件依赖性和建议,其中一些可能会尝试打开网络端口。例如,许多DE中包含的通用UNIX打印系统(CUPS)可能会尝试打开端口631.虽然像CUPS这样的服务在家里可能很有用,但我们不希望我们的服务器暴露在整个Internet上,所以阻止每个传入的连接是个好主意。唯一的例外是端口22,它将保持打开状态,以便我们能够连接SSH和X2Go。
为了保护我们的服务器,我们将使用简单防火墙(UFW),因为它不容易出现初学者错误,更易于理解和管理,并且更符合我们只允许连接到一个端口的目标。iptables和其他更复杂的防火墙更适合需要更细粒度细节的高级和复杂规则。
首先,安装UFW:
$ sudo apt-get install ufw
默认情况下,防火墙此时应处于非活动状态。您可以查看:
$ sudo ufw status verbose
结果应该是:
Status: inactive
当我们稍后阻止所有传入连接时,如果ufw
处于活动状态,则在此时验证状态对于避免锁定自身非常重要。
如果UFW已经激活,请使用以下命令将其禁用:
$ sudo ufw disable
现在,设置默认防火墙规则以拒绝所有传入连接并允许所有传出连接:
$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
并且,允许SSH连接到服务器(端口22):
$ sudo ufw allow 22
有了规则,让我们激活ufw:
$ sudo ufw enable
这将输出:
Command may disrupt existing ssh connections. Proceed with operation (y\|n)?
输入y
并按ENTER
以激活防火墙。
有了我们的防火墙,我们的服务器只有一个入口点,我们已准备好为X2Go服务器安装图形环境。
在本教程中,您将安装XFCE桌面环境。有两种方法可以实现此目的,但您只需选择一种-最小桌面环境或完整桌面环境。
最小的桌面环境:如果你想安装一个小的核心软件包,然后通过手动添加你需要的任何东西来构建它们,你可以使用xfce4
元数据包。
元数据包不包含自己的软件,它只依赖于要安装的其他软件包,允许一次安装整个软件包集合,而无需在命令行单独输入每个软件包名称。
安装xfce4
以及支持它所需的所有其他依赖项:
$ sudo apt-get install xfce4
完整的桌面环境:如果您不想手动挑选所需的每个组件,而是希望拥有一组默认的软件包,如文字处理器,网络浏览器,电子邮件客户端和其他预装的配件,那么您可以选择
task-xfce-desktop
。
安装和配置一个完整的桌面环境,类似于您在本地PC上通过可引导DVD获得的Debian XFCE:
$ sudo apt-get install task-xfce-desktop
现在我们已经安装并配置了我们的图形环境,我们需要设置一种从另一台计算机上查看它的方法。
X2Go带有两个主要组件:服务器,用于启动和管理远程计算机上的图形会话;客户端,我们在本地计算机上安装以查看和控制远程桌面或应用程序。
由于Debian在其默认存储库中不包含X2Go服务器,因此我们必须在包管理器的配置中添加额外的存储库。
首先,导入X2Go开发人员的公钥。这是一种安全措施,可确保我们只能下载和安装使用其私钥正确签名的软件包。
$ sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E
现在,将存储库添加到包管理器的配置文件中:
echo 'deb http://packages.x2go.org/debian jessie main' | sudo tee /etc/apt/sources.list.d/x2go.list
这将创建文件/etc/apt/sources.list.d/x2go.list
并向其添加行debhttp://packages.x2go.org/debian jessie main
,告诉包管理器在哪里可以找到补充包。
要刷新可用软件包的数据库,请输入以下命令:
$ sudo apt-get update
最后,在服务器上安装X2Go:
$ sudo apt-get install x2goserver x2goserver-xsession
此时,您的服务器无需进一步设置。但是,请记住,由于禁用SSH密码身份验证以提高安全性,因此您需要在要从中登录的任何计算机上使用SSH私钥。
我们现在完成了设置服务器并可以输入exit或关闭终端窗口。其余步骤将重点关注本地计算机的客户端。
如果您在本地计算机上使用Windows,则可以从http://code.x2go.org/releases/X2GoClient_latest_mswin32-setup.exe
下载客户端软件。
选择首选语言并同意许可后,向导将指导您完成安装过程的每个步骤。通常,没有任何理由可以更改这些步骤中预先填充或预先选择的任何默认值。
如果您在本地运行macOS,可以在http://code.x2go.org/releases/X2GoClient_latest_macosx_10_9.dmg
找到客户端软件。
双击.dmg文件以打开包含版权,许可证和X2Go客户端可执行文件的文件夹,然后双击可执行文件以启动客户端。
而且,如果您使用的是Debian或Ubuntu,您可以安装X2Go客户端:
$ sudo apt-get install x2goclient
如果您想了解有关客户的其他信息,或者您想从源代码构建,可以访问X2Go的官方文档。
现在已经安装了桌面客户端,我们可以配置其设置并连接到X2Go服务器以使用我们的远程XFCE桌面。
首次打开X2Go客户端时,应显示以下窗口。如果没有,请单击在左上角菜单上的会话,然后选择新建会话...。
在“会话名称”字段中,输入一些内容以帮助区分服务器。如果您计划连接到多台计算机,这可能特别有用,因为保存设置后,所有名称都将列在程序的主窗口中。
在“服务器”下的“主机”字段中输入服务器的IP地址或主机名。
在“ 登录”字段中输入用于SSH连接的用户名。
而且,由于这是我们在第二步中安装的内容,因此请选择XFCE作为您的会话类型。
最后,因为我们使用SSH密钥登录服务器,单击“ 使用RSA / DSA密钥进行ssh连接”旁边的文件夹图标,然后浏览到您的私钥。
其余的默认设置现在应该足够了,但随着您对该软件的熟悉程度越来越高,您可以根据个人喜好微调客户端。
按“确定”按钮后,您可以通过单击屏幕右上角包含会话名称的白色框来启动图形会话。
几秒钟后,将显示远程桌面,您可以开始与之交互。首次登录时,XFCE将询问您是否要使用默认配置或一个空面板。第一个选项将创建一个停靠在屏幕底部的矩形面板,其中包含一些有用的应用程序快捷方式(例如文件管理器,终端仿真器,浏览器等)。此选项还将在桌面上添加一个顶部面板,其中包括应用程序启动器,时钟,关机菜单等实用程序。
除非您已经熟悉XFCE,否则因为您将从头开始,选择空面板可能会更复杂。没有任务栏,没有时钟,没有预先配置的开始菜单;您可以自行将所有内容添加到空面板中。
此外,在基于Windows和Linux的操作系统上,您可以使用一些有用的键盘快捷键来获得更好的体验:
CTRL+ALT+F
将打开和关闭全屏模式。在全屏模式下工作可以感觉更像是本地桌面体验。此外,其他键盘快捷键将被远程操作系统而不是本地操作系统抓取。
CTRL+ALT+M
即使您处于全屏模式,也会最小化远程视图
CTRL+ALT+T
将断开与会话的连接,但让GUI在服务器上运行。这只是在不注销或关闭服务器上的应用程序的情况下断开连接的快速方法。如果单击窗口的关闭按钮,也会发生相同的情况。
最后,有两种方法可以结束远程会话,关闭其中运行的所有图形程序。您可以从XFCE的开始菜单远程注销,也可以单击屏幕主要部分右下角标有圆圈和小线条(如电源/待机图标)的按钮。
第一种方法更干净,但可能会使会话管理软件等程序运行。第二种方法将关闭所有内容,但如果进程无法完全退出,则可能会强行执行。在任何一种情况下,请务必在继续之前保存您的工作。
最后一点,虽然不是必需的,但可让我们进入XFCE的控制面板,导航到电源设置并禁用所有待机功能。如果您暂时不使用桌面,XFCE将尝试触发待机。虽然服务器在收到此请求时通常不会执行任何操作,但最好完全避免任何不可预见的行为。
您现在拥有一个可操作的“云桌面”,具有始终在线,可远程访问的计算系统的所有优势。
参考文献:《How to Set Up a Remote Desktop with X2Go on Debian 8》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。