是否需要操控远程的 Ubuntu Linux 计算机?您可以设置 Ubuntu 的屏幕共享功能,以便在需要时进行远程控制。通过任何 VNC 客户端,您都可以连接到共享的屏幕。 接下来,我们将详细介绍如何操作。
Ubuntu 内置的“屏幕共享”:一个 VNC 服务器
当您通过 SSH 连接到远程 Ubuntu Linux 计算机时,您会得到一个终端窗口界面。对于诸如系统管理之类的许多任务来说,这已经足够好了,并且它具有轻量级连接的优点。因为没有图形从主机传输到本地客户端,所以设置起来既快捷又简便。
如果您需要在本地计算机上查看远程主机上运行的图形应用程序,可以通过 PuTTY 连接来实现,而且设置过程也十分简单。
但是,如果您的目标是像坐在远程计算机前一样,看到整个远程桌面呢? 这也很容易实现——您只需要使用“屏幕共享”,也被称为桌面共享。
要实现此目的,您需要在远程计算机上配置屏幕共享,并在本地计算机上使用一个 VNC 客户端。 而且,正如您可能已经猜到的,设置过程非常简单。
虽然本文主要关注 Ubuntu,但实际上这是 GNOME 的功能。 任何使用 GNOME 版本的 Linux 发行版都适用。 例如,Manjaro 和 Fedora 就拥有与下面所述相同的选项和设置。 我们在 Ubuntu 18.04 LTS 上完成了这个过程。
如何在远程主机上启用屏幕共享
以下是在您想要连接的远程 Ubuntu 计算机上进行设置的步骤。
在系统菜单中,点击设置图标。
在“设置”对话框中,点击侧面板中的“共享”,然后点击“共享”开关。
点击“屏幕共享”选项旁边的“关闭”,将其更改为“打开”。
会出现“屏幕共享”对话框。点击标题栏中的切换开关将其开启。
打开切换开关后,对话框底部的滑块也会更改为开启状态。
默认情况下,“访问选项”设置为“新连接必须请求访问”。这意味着每次连接都需要用户确认。如果您尝试远程连接,这将会影响操作,因此请设置密码。选择“需要密码”单选按钮,并在“密码”字段中输入密码。
此密码与任何用户帐户无关,但必须由远程客户端在连接时提供。 它仅限八个字符,因此请使其尽可能复杂。 如果您忘记了密码,可以随时重复这些步骤来重置密码。
输入密码后,关闭“屏幕共享”和“设置”对话框。
在发起连接请求时,密码会进行加密传输和验证。至于其余 VNC 流量是否加密,则取决于VNC 客户端的功能。这更多地是关于互联网连接的考虑。
除非您在两个站点之间设置了安全的 VPN 连接,或者 VNC 连接受到其他保护(例如通过 SSH 隧道),否则可以安全地假设连接未加密。 请避免通过该连接打开敏感或私人文档。
现在,我们需要配置一个客户端以连接到这台计算机,这就需要了解 IP 地址。
如何通过互联网访问远程系统
警告:我们建议仅在本地网络中使用 VNC。Ubuntu 的屏幕共享不允许您设置超过八个字符的密码。如果您想要远程连接,我们建议在与远程 Ubuntu 系统相同的网络上设置一个虚拟专用网络 (VPN) 服务器。从互联网连接到 VPN,然后通过 VPN 连接到 VNC 系统。这样可以避免将 VNC 服务器直接暴露在互联网上。但是,如果您确实希望通过互联网访问屏幕共享服务器,本节将向您展示如何操作。
如果您与远程 Ubuntu 计算机不在同一个网络上,则需要通过互联网连接到它。网络呈现给互联网的 IP 地址是其公共 IP 地址。它实际上是路由器的 IP 地址,由 互联网服务提供商(ISP)分配。因此,我们需要找到该 IP 地址。
最简单的方法是在远程 Ubuntu 计算机上的 Google 搜索栏中输入“我的 IP”,然后按 Enter 键。
知道这一点固然很好,但仅仅连接到远程计算机还不够。
想象一下,您想要给酒店里的某个人打电话。您不能直接拨打他们的房间号码。您首先给酒店打电话,告诉他们您想要与之交谈的客人的名字。总机接线员会检查酒店目录,并将您的电话转接到正确的房间。
网络上的路由器充当交换机操作员。因此,必须配置远程网络上的路由器,以将 VNC 连接请求转发到 Ubuntu PC。 这是一种称为端口转发的网络技术。
但是,让我们回顾一下。您的 ISP 可能为您分配了静态公共 IP 地址或动态公共 IP 地址。静态公共 IP 是永久的,而动态公共 IP 地址可能会在您重新启动路由器时发生变化。如果您的公共 IP 地址定期更改,远程计算机将不知道将其连接请求发送到哪个 IP 地址。
解决方案称为动态域名系统(DDNS)。您可以使用免费的 DDNS 提供商。 一般流程如下:
您在 DDNS 提供商处注册,并收到一个静态网址。
您将路由器配置为定期联系您的 DDNS 提供商,并告知其当前的 IP 地址。
DDNS 系统会更新您的网址记录,因此它始终指向您的 IP 地址。这意味着发送到您的网址的连接请求始终会转发到您当前正确的 IP 地址。
使用我们的酒店比喻,到目前为止,连接请求已到达酒店的总机。要完成连接,路由器必须执行端口转发。
路由器可以将到达特定端口的流量发送到特定计算机。一旦配置将 VNC 流量发送到特定计算机,所有传入的 VNC 连接请求都将定向到该计算机。
如果您打算通过互联网使用 VNC,我们建议使用非标准端口。默认情况下,远程 Ubuntu 计算机在 TCP/IP 端口 5900 上侦听 VNC 连接请求。
这是一个约定俗成的端口,但我们还是通过分析一些网络流量对其进行了验证:
我们可以通过使用非标准端口(例如 43025)从外部世界隐藏该信息。然后,必须配置远程路由器以将端口 43025(或者您选择的任何端口)的连接请求转发到端口 5900 上的 Ubuntu 计算机。
这就像给酒店打电话,要求与 43025 号房间的极客通话。总机接线员知道该极客实际上在 5900 号房间,并转接您的电话。极客不知道您要什么房间,他也不在乎。您不知道极客到底在哪个房间,您也不在乎。
您们之间的对话可以继续,这正是预期的结果。
如何从 Linux 系统连接
连接到我们的 Ubuntu 计算机的客户端计算机不必运行 Ubuntu。正如我们在配置 Windows 客户端时将会看到的,它甚至不必运行 Linux。
为了进一步说明连接的系统无关性,我们将从运行 Manjaro 的计算机进行连接。其他发行版的步骤相同。
我们将建立一个虚拟计算网络(VNC)连接,因此我们需要使用可以执行此操作的客户端。Remmina 是一个支持 VNC 的远程桌面客户端,它与许多 Linux 发行版捆绑在一起,包括 Ubuntu。 从其他发行版的包管理器中安装(如果还没有安装)非常容易。
按位于左侧 Ctrl 和 Alt 键之间的 Super 键,然后键入“remmina”的前几个字母。Remmina 图标将出现在屏幕顶部。
点击图标以启动 Remmina。
当 Remmina 对话框出现时,点击“+”号以创建新连接。
会出现“远程桌面首选项”对话框。您可以在此处输入有关与远程计算机连接的详细信息。这些信息可以保存并重复使用,因此您不必在每次连接时都重新输入它们。
为这个连接提供一个“名称”。您可以选择任何名称,但它应该可以识别您要连接的计算机。
您可以将“组”字段留空或提供一个组的名称。如果您配置了许多连接,则可以将它们分组为不同的类别,例如 Linux 计算机、Windows 计算机、总部、本地分支机构等。
从“协议”下拉菜单中选择“VNC – VNC 查看器”。现在会出现更多的字段,因为 Remmina 知道我们将要使用的协议。
在“服务器”字段中,输入远程计算机的 IP 地址或网络名称。“用户名”字段与 Linux 用户帐户无关;您可以在此处输入任何内容。“密码”必须是在远程 Ubuntu 机器上设置屏幕共享时使用的密码。
从“颜色深度”下拉菜单中选择一个值。较低的值反应速度更快,但屏幕会显得平淡且略有迷幻感。如果视觉效果对您来说并不重要,并且您更喜欢速度而不是美观,请选择较低的值。较高的值看起来更像实际的桌面。但是,在连接速度较慢的情况下,它们的更新速度可能会很慢,并且鼠标移动可能会不稳定。
从“质量”下拉菜单中选择“中”。如果连接后一切正常,您可以将其调整为更高的值以进行后续连接。但为了确保连接正常,“中”是一个很好的起点。
配置连接详细信息后,点击“保存”按钮。您将返回到 Remmina 主窗口,您的新连接将在此处列出。
双击连接以连接到远程 Ubuntu 计算机。远程计算机必须开机,并且设置屏幕共享的人必须登录。他会收到一条通知,说明您已连接并控制他的桌面,这只是一种礼貌。
请务必注意,您并没有登录到远程计算机 – 您正在接管已经登录的用户的会话。
Remmina 在您计算机上的一个窗口中向您显示远程桌面。您可以像坐在远程计算机前一样移动鼠标和使用键盘。
侧面板上的图标允许您最大化窗口、将远程桌面缩放到 Remmina 窗口、进入全屏视图等等。将鼠标悬停在图标上以获取工具提示,了解它们的功能。
完成远程连接后,点击侧面板底部的图标,断开与远程计算机的连接。
如何从 Windows 系统连接
Windows 与 VNC 连接中使用的加密存在兼容性问题,因此我们将选择使用加密。这样,可以使用加密的计算机可以正常连接,而没有加密的计算机则无法连接。
警告:您网络上的任何人都可以窃听连接。这是在本地网络或通过 VPN 而不是互联网上使用它的另一个原因!
在远程 Ubuntu 计算机上使用以下命令,使加密成为可选:
gsettings set org.gnome.Vino require-encryption false
如果您的 Windows 计算机上没有 RealVNC,请下载并安装它。安装过程很简单——只需点击“下一步”按钮并接受默认设置。
安装后,从“开始”菜单启动“VNC Viewer”应用程序。从“文件”菜单中选择“新建连接”。
会出现“属性”对话框。在“VNC 服务器”字段中输入远程 Ubuntu 服务器的 IP 地址或网络名称。
在“名称”字段中,键入此连接的名称,以便您识别出它连接到哪台远程计算机。您可以在“标签”字段中提供标签,也可以将其留空。
在“安全”组中,将“加密”下拉菜单设置为“让 VNC 服务器选择”。确保未选中“如果可能,使用单点登录 (SSO) 进行身份验证”和“如果可能,使用智能卡或证书存储进行身份验证”选项。
点击“确定”以保存您的设置。新连接的图标会出现在主窗口中。
双击该图标以连接到远程计算机。启动连接时,您将看到一个启动屏幕。
因为您将加密设置为可选,并且不会在 Windows 计算机上使用加密,所以您会看到一个警告对话框。
选中“不要在此计算机上再次警告我”复选框,然后点击“继续”。
您会在 RealVNC 窗口中看到远程 Ubuntu 计算机的桌面。
请记住,Windows VNC 连接未加密,因此请勿使用此连接打开私人文档或电子邮件。
永远不会太远
如果您需要远程访问 Ubuntu 计算机,现在您有了一个简单的方法来实现此目的。作为奖励功能,RealVNC 还提供免费的应用程序,分别用于安卓智能手机和iPhone。您可以按照上述相同的步骤进行设置。