【教學/基礎】使用 Raspberry Pi Connect 遠端連線
Last Updated on 2024 年 8 月 15 日 by 小編
如果想遠端存取 Raspberry Pi 的桌面,過去有許多技術可以實現,例如 VNC、X Protocol (X Window System)、Remote Desktop Protocol (RDP) 等,但如果還需要跨網段存取或是穿過防火牆的話就需要更多的設定才行了,而隨著 Raspberry Pi OS 進版到 Bookworm 預設使用 Wayland,傳統的 X remote desktop 將不再支援了,連 AnyDesk 也不能使用了,因為目前 AnyDesk 只支援 Raspbian/Raspberry Pi OS (32 bit) 和 Raspberry Pi OS 11 “Bullseye” 以下的版本。
什麼是 Raspberry Pi Connect?
Raspberry Pi Connect (rpi-connect) 是樹莓派公司所發布的遠端連線軟體,安全並且容易使用,只要使用 Web 瀏覽器就可以從任何地方遠端存取 Raspberry Pi。
內容目錄
使用 Raspberry Pi Connect 條件限制
要能使用 Raspberry Pi Connect (rpi-connect) 必須符合以下條件
- 硬體必須為 Raspberry Pi 5、Raspberry Pi 4 或 Raspberry Pi 400。
- 系統必須為 Raspberry Pi OS Bookworm 64 位元發行版。
- 顯示伺服器協定必須為 Wayland。
使用 Raspberry Pi Connect 步驟
step 1
安裝 Connect 軟體
在 raspios_arm64-2024-03-15 以前的版本需要執行以下指令安裝 rpi-connect,但在 raspios_arm64-2024-07-04 之後的版本就內建 rpi-connect
軟體了。
sudo apt-get update sudo apt-get upgrade sudo apt-get install rpi-connect
如果開機後沒有啟動 rpi-connect
,可以執行以下指令手動啟動 rpi-connect.service
。
systemctl --user start rpi-connect.service
step 2
將 Raspberry Pi 裝置和 Connect 帳號連結
安裝完成 rpi-connect
並且重開機以後,可以看到右上方工具列多了一個圖示,點選後選擇 Sign in
。
如果還沒有帳號,就免費建立一個 Raspberry Pi ID 吧。
建立 Raspberry Pi ID 只需要填寫一些基本資料就可以了。
建立完成後登入 Raspberry Pi ID,會需要對此一裝置命名。
step 3
使用 rpi-connect
遠端連線 Raspberry Pi 裝置
主控端可以用手機或是電腦能設備,從connect 後台登入,就可以看到目前已建立的裝置和狀態,並可以選擇連線方式。
目前提供 螢幕分享(Screen Sharing) 和 遠端 Shell(Remote Shell) 兩種方式連線。
如果使用 螢幕分享(Screen Sharing),會回傳整個桌面。
選擇 遠端 Shell(Remote Shell),可以透過網頁顯示 Shell 來輸入指令列。
Raspberry Pi Connect
技術說明
Raspberry Pi Connect
使用 WebRTC 和 Raspberry Pi 裝置建立安全的點對點連線,這與 Zoom、Slack、Microsoft Teams 和 Google Meet 技術相同。而 Raspberry Pi Connect 使用 Daemon/Client 架構,其中 rpi-connect daemon 執行在 Raspberry Pi OS 負責聽是否有從 Raspberry Pi Connect website 來的螢幕分享 Session,再從瀏覽器內 VNC 用戶端和 VNC 伺服器端建立最低延遲的連線。
一般來說,一旦建立連接,任何流量都不需要經過樹莓派的伺服器。如果有不明原因而無法在您的瀏覽器和 Raspberry Pi 裝置之間建立直接連接,rpi-connect
和您的瀏覽器可能會選擇透過樹莓派的 TURN 伺服器使用 DTLS 加密而進行安全的傳輸。
常見問與答
要如何使用指令列顯示 rpi-connect
的狀態?
可以使用 rpi-connect status
查詢目前狀態。
為什麼連線方式只有 Remote Shell 但是沒有 Screen Sharing?
可能是 Wayland 顯示的啟動速度不夠快,因此無法讓 rpi-connect
做螢幕分享,可以使用以下指令重新安裝和重新啟動 rpi-connect 服務。
sudo apt-get install rpi-connect systemctl --user restart rpi-connect-wayvnc systemctl --user restart rpi-connect
如何在使用者沒有登入的情況下啟動 Remote Shell?
因為 rpi-connect
在 user-level 執行,而不是使用 root 執行,所以必須在使用者登入到裝置時才能啟動 rpi-connect
,如果在停用自動登入的情況下將不能使用 rpi-connect
遠端存取裝置。
因此要在未登入裝置時繼續執行 rpi-connect
,需要執行以下指令啟用使用者延遲(user-lingering)。
loginctl enable-linger
如何對 Connect
狀態進行除錯?
可以使用以下指令查詢 Connect
服務和專用 WayVNC
伺服器的日誌。
journalctl --user --follow --unit rpi-connect --unit rpi-connect-wayvnc
如何在 raspios_arm64-2024-07-04 之後的系統啟動 rpi-connect
?
可以從 sudo raspi-config
選單進入後,選擇 3 Interface Options
> I2 RPi Connect
就可以啟動 rpi-connect
了。
參考資料
- Raspberry Pi Connect
- Raspberry Pi Connect (Beta)
- Bookworm — the new version of Raspberry Pi OS
- Remote Shell but no Screen Sharing
- Installing anydesk on Pi 4 issue
發佈留言