在 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 上使用幾個虛擬機工作時沒有問題。如果它對你不起作用,那么你可能遇到了一個錯誤。請報告它。