系列文章目录
前言
2024 年 5 月 7 日
戈登-霍林沃思
今天,我们很高兴地宣布 Raspberry Pi Connect 测试版发布:这是一种安全、易用的方法,只需使用网络浏览器,就能从地球上的任何地方远程访问您的 Raspberry Pi。
远程访问 Raspberry Pi 的桌面通常非常有用。有许多技术可以实现这一功能,包括 VNC,当然还有 X 协议本身。但它们可能很难配置,尤其是当你试图访问不同本地网络上的机器时;当然,随着 Raspberry Pi OS Bookworm 过渡到 Wayland,经典的 X 远程桌面支持已不再可用。
我们希望能以我们一贯的 "就是好用 "的方式为您提供这一功能。进入 Raspberry Pi Connect。
一、如何获取 Raspberry Pi Connect?
首先,Raspberry Pi Connect 需要你的 Raspberry Pi 运行使用 Wayland 窗口服务器的 64 位 Raspberry Pi OS Bookworm 发行版。这也就意味着,目前你需要一台 Raspberry Pi 5、Raspberry Pi 4 或 Raspberry Pi 400。
假设你使用的是这些型号中的一种,请确保你已经从 Raspberry Pi Imager 安装了最新的 Raspberry Pi OS Bookworm,打开终端,输入
sudo apt update
sudo apt upgrade
sudo apt install rpi-connect
现在重启 Raspberry Pi,你会在屏幕右上方的系统托盘中发现一个新图标。点击该图标并选择 "登录",即可开始使用。希望你会发现这些说明足够简单易懂,但如果你有需要,还有额外的文档介绍测试期间已知的限制。
二、底层是什么?
我请 Raspberry Pi 负责网络开发的保罗-穆库尔(Paul Mucur)解释底层技术是如何工作的:
当您通过网络浏览器使用 Raspberry Pi Connect 连接到您的 Raspberry Pi 设备时,我们会使用 WebRTC 在两者之间建立安全的点对点连接:该技术与 Zoom、Slack、Microsoft Teams 和 Google Meet 的浏览器内客户端所采用的实时通信技术相同。
我们为 Raspberry Pi OS 设计的 "rpi-connect "守护进程负责监听来自 Raspberry Pi Connect 网站的新屏幕共享会话,并在浏览器内 VNC 客户端和设备上运行的 VNC 服务器之间协商最佳(即最低延迟)连接。一般来说,一旦建立连接,任何流量都无需通过我们的服务器。
如果由于任何原因无法在浏览器和 Raspberry Pi 设备之间建立直接连接,rpi-connect 和浏览器可能会选择通过我们的服务器安全地转发流量,并使用 DTLS 加密。
三、点对点和中继连接
目前,Raspberry Pi Connect 服务只有一个位于英国的中继(TURN)服务器。这意味着如果 rpi-connect 选择中继流量,延迟可能会很高。连接时,将鼠标悬停在浏览器中的挂锁图标上,就会显示您的连接是否被中继,这样您就能知道改变网络设置是否能改善连接。
我们希望 Raspberry Pi Connect 对使用非中继连接的个人用户保持免费(如啤酒),对设备数量没有限制。我们还不知道有多少人需要通过我们的 TURN 服务器中继流量;我们将密切关注带宽使用情况,并决定今后如何处理这些连接。
正如我在开头所说,Raspberry Pi Connect 目前处于测试阶段,因此请注意,您可能会偶尔遇到一些限制或不完善的地方。我们认为很多人会发现它很有用,希望你能按照上面或 Connect 文档中的说明安装并试用。您可以在我们论坛的 Raspberry Pi Connect 版块告诉我们您的想法。
四、Raspberry Pi Connect
4.1 简介
通过 Raspberry Pi Connect,您可以从世界任何地方安全地访问您的 Raspberry Pi。
要使用 Connect,请在 Raspberry Pi 上安装 Connect 软件。然后访问 connect.raspberrypi.com,在浏览器窗口中通过屏幕共享访问你的 Raspberry Pi。您可以像将显示器插入 Raspberry Pi 一样使用桌面。
Connect 使用安全的加密连接。默认情况下,Connect 会在 Raspberry Pi 和浏览器之间直接通信。但是,当 Connect 无法在 Raspberry Pi 和浏览器之间建立直接连接时,我们会使用伦敦的中继服务器。在这种情况下,Raspberry Pi 只保留操作 Connect 所需的元数据。
4.2 安装
Connect 需要一台运行使用 Wayland 窗口服务器的 64 位 Raspberry Pi OS Bookworm 发行版的 Raspberry Pi。所需操作系统版本要求 Raspberry Pi 5、Raspberry Pi 4 或 Raspberry Pi 400。
注意
Connect 与 Raspberry Pi OS Lite 或使用 X 窗口服务器的系统不兼容。
要开始安装,请打开终端窗口。运行以下命令更新系统和软件包:
$ sudo apt update
$ sudo apt upgrade
4.2.1 安装 Connect
在 Raspberry Pi 上运行以下命令安装 Connect:
$ sudo apt install rpi-connect
安装完成后,重启 Raspberry Pi 以启动连接服务:
$ sudo reboot
下次登录 Raspberry Pi 时,Connect 将自动启动。
4.2.2 启动连接
注意
默认情况下,Connect 会在登录时自动启动。除非您从登录项目中删除 Connect,否则无需手动启动它。
要从命令行手动启动服务,请运行以下命令:
$ systemctl --user start rpi-connect
4.3 使用 Connect
现在您已经在 Raspberry Pi 上安装了 Connect,必须将 Raspberry Pi 与您的 Raspberry Pi ID 关联才能使用 Connect。
如果没有 Raspberry Pi ID,请创建一个。
4.3.1 链接你的 Raspberry Pi 和 Raspberry Pi ID
要将您的 Raspberry Pi 与您的 Raspberry Pi ID 关联,请使用 Connect 生成一个验证 URL。访问该 URL 并登录你的 Raspberry Pi ID,将你的 Raspberry Pi 添加到你的账户中。
您可以使用 Raspberry Pi 桌面上的 Connect 图标或 rpi-connect CLI 生成验证 URL。
4.3.1.1 通过 Raspberry Pi 桌面
一旦 rpi-connect 服务开始运行,Connect 图标就会出现在系统托盘中。
点击连接图标,从下拉菜单中选择 "登录"。这将打开一个验证 URL,你可以用它将你的 Raspberry Pi 与你的 Raspberry Pi ID 连接起来。
4.3.1.2 通过命令行
使用以下命令生成一个链接,将你的 Raspberry Pi 与你的 Raspberry Pi ID 连接起来:
$ rpi-connect signin
该命令的输出结果如下
Complete sign in by visiting https://connect.raspberrypi.com/verify/XXXX-XXXX
访问任何设备上的 URL,将您的 Raspberry Pi 与您的 Raspberry Pi ID 连接起来。
4.3.1.3 在 Connect 中完成连接您的 Raspberry Pi
访问上一步生成的验证 URL。
使用你的 Raspberry Pi ID 登录 Connect。
验证后,为您的 Raspberry Pi 分配一个名称。选择一个有助于识别设备的名称。点击 "创建设备并登录 "按钮继续。
现在,您可以通过 Raspberry Pi 进行屏幕共享。Connect 系统托盘图标将变为蓝色,表明您的 Raspberry Pi 已连接到 Connect 服务。您应该会收到一封电子邮件通知,表明有新设备已登录 Connect。
警告
如果您收到一封电子邮件,显示您无法识别的设备已登录 Connect,请立即更改您的 Raspberry Pi ID 密码。从 Connect 中移除该设备,使其与您的帐户永久脱离关系。考虑启用双因素身份验证,以确保账户安全。
单击 "连接 "系统托盘图标,打开 "连接 "菜单。该菜单显示当前登录状态、退出登录选项以及启用或禁用屏幕共享选项。
注意
您也可以使用终端命令 rpi-connect 签出将 Raspberry Pi 从 Connect 中移除。
Connect 会用你的设备序列号签署通信。在设备之间移动 SD 卡将会使你退出 Connect。
4.3.2 连接到你的 Raspberry Pi
现在您的 Raspberry Pi 已被列入 Connect 门户网站,您只需使用浏览器就可以在任何地方共享 Raspberry Pi 的屏幕。
在任何电脑上访问 connect.raspberrypi.com。
Connect 会将你重定向到 Raspberry Pi ID 服务以登录。登录后,Connect 会显示链接设备的列表。可进行屏幕共享的设备名称下方会显示一个灰色的屏幕共享标签。
点击要进行屏幕共享的设备右侧的连接按钮。这会打开一个浏览器窗口,显示 Raspberry Pi 的桌面。
现在,您可以像在本地一样使用 Raspberry Pi。有关连接的更多信息,请将鼠标悬停在 "断开 "按钮右侧的挂锁图标上。
提示
使用桌面上方的 "从远程复制 "和 "粘贴到远程 "按钮,在本地和远程剪贴板之间进行复制。
连接后,"连接 "门户中的屏幕共享标签旁边会出现一个绿点。这表示正在进行屏幕共享会话。鼠标悬停可查看当前屏幕共享会话的数量。
当屏幕共享会话正在进行时,系统托盘中的 "连接 "图标会变成紫色,并显示一个封闭的圆圈。
4.3.3 断开与 Raspberry Pi 的连接
要关闭屏幕共享会话,请单击桌面上方的 "断开连接 "按钮。
4.3.4 关闭屏幕共享
要关闭屏幕共享,请单击 "连接 "系统托盘图标并取消选择 "允许屏幕共享"。Connect 系统托盘图标的下半部分将变为灰色。您仍可登录 Connect,但屏幕无法共享。
在连接门户中,该 Raspberry Pi 旁边的连接按钮和屏幕共享标签将消失。
要重新启用屏幕共享,请单击 "连接 "系统托盘图标并选择 "允许屏幕共享"。
重要事项
重新启动后,Connect 会自动启用屏幕共享。要永久禁用屏幕共享,请退出 Connect。
4.3.5 管理您的 Raspberry Pis
Connect 会列出与您的 Raspberry Pi ID 链接的所有 Raspberry Pis。如果屏幕共享在每个设备上都已启用,则每个设备都有一个连接按钮,用于打开屏幕共享会话。每个设备的名称下都有一个标签列表,显示可用的服务。
单击设备名称打开设备详细信息页面。此页面提供有关设备的底层信息。您还可以编辑设备名称或从连接中删除设备。
从 Connect 中删除设备会自动退出该设备上的 Connect。Connect 系统托盘图标变成灰色,菜单只提供登录选项。
4.3.6 更新连接
要更新到最新版本的 Connect,请运行以下命令:
$ sudo apt update
$ sudo apt install --only-upgrade rpi-connect
重新启动设备,使更新生效:
$ sudo reboot
4.3.7 卸载 Connect
运行以下命令从 Raspberry Pi 上卸载 Connect 软件:
$ sudo apt remove --purge rpi-connect
卸载后,Raspberry Pi 的序列号仍与您的 Raspberry Pi ID 关联。设备仍会出现在 Connect 门户中,但不能用于屏幕共享。如果你在同一台 Raspberry Pi 上再次安装 Connect,即使使用不同的 SD 卡,它也会重复使用 Connect 门户中现有的设备名称。
要切断 Raspberry Pi 和 Raspberry Pi ID 之间的联系,请从 Connect 门户的设备列表中删除 Raspberry Pi。
4.4 故障排除
4.4.1 已知问题
Connect 仅支持共享 Raspberry Pi 的单个主显示屏。当 Raspberry Pi 连接到多个 HDMI 屏幕时,Connect 有时会共享副屏幕的内容。您可以右键单击桌面,在桌面偏好设置(Desktop Preferences).... 中更改任务栏的位置来解决这个问题。
Connect 不支持屏幕键盘。要实现全部功能,请使用实体键盘。
Connect 需要使用实现了 ECMAScript 2020 (ES11) 的浏览器,因为它使用了旧版浏览器无法使用的功能。
浏览器会拦截某些按键和按键组合。因此,您无法在 Connect 窗口中键入这些按键。Connect 提供了一个工具栏来模拟一些最常用的拦截键。
4.4.2 启用增强日志记录
您可以启用 rpi-connect 及其专用 WayVNC 服务器的调试日志,以详细记录 Raspberry Pi 上的本地操作。
4.4.2.1 在 rpi-connect 中启用增强的日志记录功能
使用以下命令打开 rpi-connect 配置文件进行编辑:
$ systemctl --user edit rpi-connect
在注释之间输入以下配置行:
ExecStart=
ExecStart=/usr/bin/rpi-connect-env /usr/bin/rpi-connectd -socket=%t/rpi-connect-wayvnc.sock -v
注意
您需要使用以 ExecStart= 开头的两行。
最后,使用以下命令重启服务:
$ systemctl --user restart rpi-connect
4.4.2.2 在专用 WayVNC 服务器中启用增强日志记录功能
打开与 Connect 关联的专用 WayVNC 服务器的配置文件:
$ systemctl --user edit rpi-connect-wayvnc
在注释之间输入以下配置行:
ExecStart=
ExecStart=/usr/bin/rpi-connect-env /usr/bin/wayvnc --config /etc/rpi-connect/wayvnc.config --render-cursor --unix-socket --socket=%t/rpi-connect-wayvnc-ctl.sock -Ldebug %t/rpi-connect-wayvnc.sock
注意
您需要使用以 ExecStart= 开头的两行。
最后,使用以下命令重启服务:
$ systemctl --user restart rpi-connect-wayvnc
4.4.3 查看连接日志
要查看 Connect 服务及其专用 WayVNC 服务器的日志,请运行以下命令:
$ journalctl --user --follow --unit rpi-connect --unit rpi-connect-wayvnc