如何在Linux上用GNOME连接分享屏幕

768 阅读8分钟

发现VNC在Linux上用于屏幕共享的力量。

当有人需要与你分享他们的屏幕,或者你需要与别人分享你的屏幕时,你有几种选择。视频会议软件,如开源的Jitsi网络应用,虽然我们称之为 "屏幕共享",但它实际上是呈现。你把你的屏幕呈现给别人,但他们不能与之互动。有时,你实际上想与一个值得信赖的朋友或同事分享你的屏幕和你的鼠标光标,这样做的工具是VNC(虚拟网络计算),它内置于你的Linux桌面。

在任何屏幕共享的情况下,都有两台计算机,可能还有两个用户。出于这个原因,本文有两个部分。第一部分是为设置自己的计算机以接受屏幕共享请求的人准备的,第二部分是为试图连接到别人的屏幕的人准备的。

在Linux上分享我的屏幕

如果你正在读这一节,你就是那个需要朋友提供技术帮助的人,而且你想让你的朋友连接到你的屏幕。你需要配置你的桌面以允许屏幕共享。

在 GNOME 桌面上,从活动菜单中打开设置应用程序。在 "设置"窗口中,点击 "共享"。在 "共享"窗口中,点击 "屏幕共享"。

在出现的屏幕共享窗口中,你有两个选择。

你可以设置一个密码,这样连接到你的屏幕的人必须输入一个密码才能连接。当你的朋友计划查看你的屏幕时,你不希望自己在电脑旁,这很方便。

你可以要求一个通知,这样当有人试图连接时,你会被提示让他们进入(或不进入)。

GNOME screen sharing settings

如果你在KDE Plasma桌面上,那么配置屏幕共享的应用程序被称为krfb(它代表 "远程帧缓冲",VNC使用的协议)。它的概念完全相同,只是布局不同。

KDE screen sharing

防火墙

通常情况下,你的计算机的内部防火墙会阻止人们进入你的计算机。它通过不分青红皂白地阻断所有的连接来做到这一点。但在这种情况下,你想允许一种流量,所以你需要在防火墙中打开一个端口。

在Fedora、CentOS、Mageia和许多其他Linux发行版上,无论你是否知道,你都有一个防火墙。不过,你可能还没有一个应用程序来帮助你配置你的防火墙。要安装默认的防火墙配置应用程序,启动GNOME软件并搜索防火墙

一旦安装完毕,启动防火墙配置程序,滚动浏览(很长的)服务列表,找到并启用vnc-server

Firewalld configuration

在添加vnc-server ,打开选项菜单,选择运行时间为永久,这样你的新规则即使在你重启后也会持续存在。

在Debian、Ubuntu、Linux Mint和其他系统上,你可能正在运行一个叫做ufw的防火墙,所以要安装gufw。在gufw中,点击规则选项卡底部的加号(+)图标,添加一个新规则。在出现的添加新防火墙规则窗口中,搜索vnc ,然后点击添加按钮。

ufw configuration

你的计算机现在已经被配置为接受VNC请求。你可以向下跳到[故障排除]部分。

查看共享屏幕

如果你正在读这一节,你就是那个从远处提供技术帮助的人。你需要连接到一个朋友或同事的电脑,查看他们的屏幕,甚至控制他们的鼠标和键盘。有很多这样的应用程序,包括TigerVNC、KDE 的krdc 和 GNOMEConnections

GNOME连接

在你的本地计算机上,从GNOME软件或使用你的软件包管理器安装GNOMEConnections应用程序。

$ sudo dnf install gnome-connections

在 GNOMEConnections 中,点击左上方的加号(+)图标,添加一个目标主机。选择VNC协议,并输入你想连接的用户名和主机或IP地址,然后点击连接按钮。

GNOME Connections

如果你要连接的用户出于端口转发的目的不得不创建一个新的端口,那么你必须把非默认的端口附加到地址上。例如,假设你的目标用户创建了59001端口来接受VNC流量,而他们的家庭路由器地址是93.184.216.34。在这种情况下,你要输入username@93.184.216.34:59001 (其中username 是该用户的实际用户名。)

如果远程系统的用户要求有VNC的密码,那么在连接之前会提示你输入密码。否则,远程机器上的用户会收到一个提示,询问他们是否要允许你分享他们的屏幕。只要他们接受,连接就会建立,你可以查看甚至控制远程主机的鼠标和键盘。

在Linux上解决屏幕共享的问题

在工作环境之外,想要共享屏幕的用户和需要看到屏幕的人通常都在不同的网络上。你可能在家里,有一个连接你和互联网的路由器(就是你支付互联网账单时从你的ISP那里得到的盒子)。你的路由器,无论你是否意识到,都被设计用来阻止不需要的访客。这通常是非常好的,但在这个特殊情况下,你想让一个值得信任的人通过,这样他们就可以连接到你的屏幕。

为了让别人进入你的网络,你必须配置你的路由器,允许在一个特定的 "端口"(就像一个船埠,但用于数据包而不是货物)的流量,然后配置该流量转发到你的个人电脑。

不幸的是,这并没有单一的方法可以做到。每个路由器制造商的做法都有些不同。这意味着我不能指导你完成所需的确切步骤,因为我不知道你有什么路由器,但我可以告诉你前面需要什么信息,以及一旦你在路由器周围寻找什么。

1.获取你的本地IP地址

你需要知道你的计算机的网络IP地址。要获得这个信息,打开GNOME设置,点击左侧栏中的Wi-Fi(如果你是有线连接,则点击网络)。在Wi-Fi面板中,点击齿轮图标,在出现的详细信息窗口中找到IPv4 Adress。一个本地IP地址以192.168或10开头。

例如,我的网络IP地址是10.0.1.2。写下你的非工作IP地址,以便日后使用。

2.获取你的公共IP地址

点击这个链接来获取你的公共IP地址:http://ifconfig.me

例如,我的公共IP地址是93.184.216.34 写下你的公共IP地址以备后用。

3.配置你的路由器

路由器的接口因制造商而异,但无论你家里有什么品牌的路由器,其思路都是一样的。首先,登录到你的路由器。路由器的地址和登录信息通常印在路由器本身上,或印在其文档中。我拥有一个TP-Link GX90路由器,我通过将我的网络浏览器指向10.0.1.1来登录它,但你的路由器可能是192.168.0.1或其他地址。

我的路由器把端口转发称为 "虚拟服务器",这是在路由器的NAT转发选项卡中找到的一个类别。 = 其他路由器可能只是叫它端口转发防火墙,甚至是应用程序。你可能需要点击一下,才能找到正确的类别,或者你可能需要花一些时间研究你的路由器的文档。

当你找到端口转发设置(无论它在你的路由器中被称为什么),你需要添加一个新的规则,确定一个外部端口(我使用59001),并将到达它的流量发送到一个内部端口(5900是标准的VNC端口)。

在步骤1中,你获得了你的网络IP地址。把它作为进入路由器59001端口的流量的目的地。下面是我的路由器配置的一个例子,但你的路由器几乎肯定是不同的。

router configuration

这个配置将到达外部端口59001的流量发送到端口5900的10.0.1.2,这正是VNC所需要的。

现在你可以告诉你试图与之共享屏幕的朋友输入你的公共IP地址(在这个例子中,是93.184.216.34)和59001端口。

Linux屏幕共享和信任

只与你信任的人分享你的屏幕控制权。VNC的设置可能很复杂,因为让其他人访问你的电脑存在安全和隐私问题。然而,一旦你设置好了,当你想分享你正在做的一些很酷的事情,或者想得到一些让你困惑的事情的帮助时,你就可以立即轻松地分享你的屏幕。