在 Gnome 中如何共享电脑屏幕
你不希望别人能够监视甚至控制你的电脑,你通常会努力使用各种安全机制来切断任何此类企图。然而,有时会出现这样的情况:你迫切需要一个朋友,或一个专家来帮助你解决电脑问题,但他们并不同时在同一地点。你如何向他们展示呢?你应该拿着你的手机,拍下你的屏幕照片,然后发给他们吗?你应该录制一个视频吗?当然不是。你可以与他们分享你的屏幕,并可能让他们远程控制你的电脑一段时间。在这篇文章中,我将介绍如何在 Gnome 中允许共享电脑屏幕。
设置服务器以共享屏幕
服务器 是一台提供(服务)一些内容的计算机,其他计算机(客户端)将消费这些内容。在本文中,服务器运行的是 Fedora Workstation 和标准的 Gnome 桌面。
打开 Gnome 屏幕共享
默认情况下,Gnome 中共享计算机屏幕的功能是 关闭 的。要使用它,你需要把它打开:
- 启动 Gnome 控制中心Gnome Control Center。
- 点击 共享Sharing 标签。
- 用右上角的滑块打开共享。
- 单击 屏幕共享Screen sharing。
- 用窗口左上角的滑块打开屏幕共享。
- 如果你希望能够从客户端控制屏幕,请勾选 允许连接控制屏幕Allow connections to control the screen。不勾选这个按钮访问共享屏幕只允许 仅浏览view-only。
- 如果你想手动确认所有传入的连接,请选择 新连接必须请求访问New connections must ask for access。
- 如果你想允许知道密码的人连接(你不会被通知),选择 需要密码Require a password 并填写密码。密码的长度只能是 8 个字符。
- 勾选 显示密码Show password 以查看当前的密码是什么。为了多一点保护,不要在这里使用你的登录密码,而是选择一个不同的密码。
- 如果你有多个网络可用,你可以选择在哪个网络上访问该屏幕。
设置客户端以显示远程屏幕
客户端 是一台连接到由服务器提供的服务(或内容)的计算机。本演示还将在客户端上运行 Fedora Workstation,但如果它运行一个 VNC 客户端,操作系统实际上应该不太重要。
检查可见性
在 Gnome 中,服务器和客户端之间共享计算机屏幕需要一个有效的网络连接,以及它们之间可见的“路由”。如果你不能建立这样的连接,你将无法查看或控制服务器的共享屏幕,这里描述的整个过程将无法工作。
为了确保连接的存在,找出服务器的 IP 地址。
启动 Gnome 控制中心Gnome Control Center,又称 设置Settings。使用右上角的菜单,或活动模式。当在活动中时,输入:
settings
并点击相应的图标。
选择 网络Network 标签。
点击设置按钮(齿轮)以显示你的网络配置文件的参数。
打开 详情Details标签,查看你的计算机的 IP 地址。
进入 你的客户端的 终端(你想从它连接到别的计算机),使用 ping
命令找出客户和服务器之间是否有连接。
$ ping -c 5 192.168.122.225
检查该命令的输出。如果它与下面的例子相似,说明计算机之间的连接存在。
PING 192.168.122.225 (192.168.122.225) 56(84) bytes of data.
64 bytes from 192.168.122.225: icmp_seq=1 ttl=64 time=0.383 ms
64 bytes from 192.168.122.225: icmp_seq=2 ttl=64 time=0.357 ms
64 bytes from 192.168.122.225: icmp_seq=3 ttl=64 time=0.322 ms
64 bytes from 192.168.122.225: icmp_seq=4 ttl=64 time=0.371 ms
64 bytes from 192.168.122.225: icmp_seq=5 ttl=64 time=0.319 ms
--- 192.168.122.225 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4083ms
rtt min/avg/max/mdev = 0.319/0.350/0.383/0.025 ms
如果两台计算机存在同一个子网中,例如在你的家里或办公室,你可能不会遇到任何问题,但当你的服务器没有公共 IP 地址,无法从外部互联网上看到时,可能会出现问题。除非你是互联网接入点的唯一管理员,否则你可能需要就你的情况向你的管理员或你的 ISP 咨询。请注意,将你的计算机暴露在外部互联网上始终是一个有风险的策略,你必须充分注意保护你的计算机免受不必要的访问。
安装 VNC 客户端(Remmina)
Remmina 是一个图形化的远程桌面客户端,你可以使用多种协议连接到远程服务器,如 VNC、Spice 或 RDP。Remmina 可以从 Fedora 仓库中获得,所以你可以用 dnf
命令或 软件中心Software 来安装它,以你喜欢的方式为准。使用 dnf
,下面的命令将安装该软件包和几个依赖项。
$ sudo dnf install remmina
连接到服务器
如果服务器和客户端之间有连接,请确保以下情况:
- 计算机正在运行。
- Gnome 会话正在运行。
- 启用了屏幕共享的用户已经登录。
- 会话 没有被锁定,也就是说,用户可以使用该会话。
然后你可以尝试从客户端连接到该会话:
- 启动 Remmina。
- 在地址栏左侧的下拉菜单中选择 VNC 协议。
- 在地址栏中输入服务器的IP地址,然后按下 回车。
- 当连接开始时,会打开另一个连接窗口。根据服务器的设置,你可能需要等待,直到服务器用户允许连接,或者你可能需要提供密码。
- 输入密码,然后按 OK。
- 按下 调整连接窗口的大小,使之与服务器的分辨率一致,或者按 调整连接窗口的大小,使其覆盖整个桌面。当处于全屏模式时,注意屏幕上边缘的白色窄条。那是 Remmina 菜单,当你需要离开全屏模式或改变一些设置时,你可以把鼠标移到它上面。
当你回到服务器时,你会注意到现在在上栏有一个黄色的图标,这表明你正在 Gnome 中共享电脑屏幕。如果你不再希望共享屏幕,你可以进入菜单,点击 屏幕正在被共享Screen is being shared,然后再选择 关闭Turn off,立即停止共享屏幕。
Turn off menu item
会话锁定时终止屏幕共享
默认情况下,当会话锁定时,连接 将总是终止will always terminate。在会话被解锁之前,不能建立新的连接。
一方面,这听起来很合理。如果你想和别人分享你的屏幕,你可能不想让他们在你不在的时候使用你的电脑。另一方面,如果你想从远程位置控制你自己的电脑,无论是你在另一个房间的床上,还是你岳母的地方,同样的方法也不是很有用。有两个选项可以处理这个问题。你可以完全禁止锁定屏幕,或者使用支持通过 VNC 连接解锁会话的 Gnome 扩展。
禁用屏幕锁定
要禁用屏幕锁定:
- 打开 Gnome 控制中心Gnome Control Center。
- 点击 隐私Privacy标签。
- 选择 屏幕锁定Screen Lock 设置。
- 关掉 自动屏幕锁定Automatic Screen Lock。
现在,会话将永远不会被锁定(除非你手动锁定),所以它能启动一个 VNC 连接到它。
使用 Gnome 扩展来允许远程解锁会话
如果你不想关闭锁定屏幕的功能,或者你想有一个远程解锁会话的选项,即使它被锁定,你将需要安装一个提供这种功能的扩展,因为这种行为是默认不允许的。
要安装该扩展:
- 打开火狐浏览器,并打开 Gnome 扩展页面。
- 在页面的上部,找到一个信息块,告诉你为火狐安装 “GNOME Shell integration”。
- 点击 点此安装浏览器扩展Click here to install browser extension 来安装 Firefox 扩展。
- 安装完毕后,注意到 Firefox 的菜单部分有 Gnome 的标志。
- 点击 Gnome 标志,回到扩展页面。
- 搜索 “allow locked remote desktop”。
- 点击显示的项目,进入该扩展的页面。
- 使用右边的开/关按钮,将扩展打开。
现在,可以在任何时候启动 VNC 连接。注意,你需要知道会话密码以解锁会话。如果你的 VNC 密码与会话密码不同,你的会话仍然受到 一点 保护。
总结
这篇文章介绍了在 Gnome 中实现共享计算机屏幕的方法。它提到了受限(仅浏览)访问和非受限(完全)访问之间的区别。然而,对于正式任务的远程访问,例如管理一个生产服务器,这个解决方案无论如何都不算是一个正确的方法。为什么?
- 服务器将始终保持其控制模式。任何在服务器会话中的人都将能够控制鼠标和键盘。
- 如果会话被锁定,从客户端解锁也会在服务器上解锁。它也会把显示器从待机模式中唤醒。任何能看到你的服务器屏幕的人都能看到你此刻正在做什么。
- VNC 协议本身没有加密或保护,所以你通过它发送的任何东西都可能被泄露。
你几种可以建立一个受保护的 VNC 连接的方法。例如,你可以通过 SSH 协议建立隧道,以提高安全性。然而,这些都超出了本文的范围。
免责声明:上述工作流程在 Fedora 35 上使用几个虚拟机工作时没有问题。如果它对你不起作用,那么你可能遇到了一个错误。请报告它。