14 使用 VNC 的遠端圖形工作階段 #
您可以利用虛擬網路計算 (VNC) 透過圖形桌面存取遠端電腦,並執行遠端圖形應用程式。VNC 獨立於平台,可讓您從任何作業系統存取遠端機器。本章介紹如何使用桌面用戶端 vncviewer 和 Remmina 連接至 VNC 伺服器,以及如何操作 VNC 伺服器。
SUSE Linux Enterprise Desktop 支援兩種不同類型的 VNC 工作階段:一種是一次性工作階段,在用戶端 VNC 連接持續期間處於「作用中」;另一種是永久工作階段,在被明確終止前一直處於「作用中」。
VNC 伺服器可在不同連接埠上同時提供兩種工作階段,但開啟的工作階段不能從一種類型轉換為另一種類型。
14.1 vncviewer
用戶端 #
若要連接到伺服器提供的 VNC 服務,需要使用一個用戶端。SUSE Linux Enterprise Desktop 中的預設用戶端是 tigervnc
套件提供的 vncviewer
。
14.1.1 使用 vncviewer CLI 進行連接 #
若要啟動 VNC 查看器並發起與伺服器的工作階段,請使用以下指令:
>
vncviewer jupiter.example.com:1
您也可以指定含兩個冒號的連接埠號碼,而不指定 VNC 顯示埠號碼:
>
vncviewer jupiter.example.com::5901
您在 VNC 用戶端中指定的實際顯示號碼或連接埠號碼必須與您在目標機器上設定 VNC 伺服器時選取的顯示號碼或連接埠號碼相同。如需更多資訊,請參閱第 14.4 節 「設定永久 VNC 伺服器工作階段」。
14.1.2 使用 vncviewer GUI 進行連接 #
如果在不指定 --listen
或要連接的主機的情況下執行 vncviewer
,它會顯示一個視窗,要求您輸入連接詳細資料。按第 14.1.1 節 「使用 vncviewer CLI 進行連接」中所述在 欄位中輸入主機,然後按一下 。
14.1.3 未加密連接通知 #
VNC 協定支援不同類型的加密連接,請不要將這些連接與密碼驗證相混淆。如果某個連接未使用 TLS,VNC 檢視器的視窗標題中可能會出現 「(連接未加密!)」 文字。
14.2 Remmina:遠端桌面用戶端 #
Remmina 是功能豐富的新式遠端桌面用戶端。它支援多種存取方法,例如 VNC、SSH、RDP 和 Spice。
14.2.1 安裝 #
若要使用 Remmina,請驗證系統上是否安裝了 remmina 套件,如未安裝,請加以安裝。記得還要安裝適用於 Remmina 的 VNC 外掛程式:
#
zypper in remmina remmina-plugin-vnc
14.2.2 主視窗 #
透過輸入 remmina
指令執行 Remmina。
該應用程式主視窗顯示儲存的遠端工作階段清單。在這裡,您可以新增和儲存新遠端工作階段、快速啟動新工作階段而不儲存、啟動先前儲存的工作階段,或設定 Remmina 的全域優先設定。
14.2.3 新增遠端工作階段 #
若要新增和儲存新遠端工作階段,請按一下主視窗左上方的 。 視窗即會開啟。
在用於指定剛才新增的遠端工作階段設定檔的欄位中填寫資訊。最重要的技術包括:
- 名稱
設定檔的名稱,將列於主視窗中。
- 通訊協定
連接遠端工作階段時要使用的通訊協定,例如 VNC。
- 伺服器
遠端伺服器的 IP 或 DNS 位址和顯示號碼。
- 使用者名稱、密碼
將用於進行遠端驗證的身分證明。保留為空白表示不進行驗證。
- 色彩深度、品質
根據連接速度和品質選取最佳選項。
選取
索引標籤可輸入更具體的設定。如果用戶端與遠端伺服器之間的通訊不加密,請啟用
,否則連接會失敗。選取
索引標籤可顯示進階 SSH 通道和驗證選項。請按
加以確認。新設定檔現在即會列在主視窗中。14.2.4 啟動遠端工作階段 #
您可以啟動先前儲存的工作階段,也可以快速啟動一個遠端工作階段而不儲存連接詳細資料。
14.2.4.1 快速啟動遠端工作階段 #
若要快速啟動遠端工作階段而不新增和儲存連接詳細資料,請使用主視窗頂部的下拉式方塊和文字方塊。
從下拉式清單中選取通訊協定 (例如 「VNC」),然後輸入 VNC 伺服器 DNS 或 IP 位址,後面接著一個冒號和顯示號碼,然後按 Enter 確認。
14.2.4.2 開啟儲存的遠端工作階段 #
若要開啟特定的遠端工作階段,請從工作階段清單中連按兩下該工作階段。
14.2.4.3 遠端工作階段視窗 #
遠端工作階段會在新視窗的索引標籤中開啟。每個索引標籤代管一個工作階段。視窗左側的工具列可協助您管理視窗/工作階段。例如,切換全螢幕模式、調整視窗大小以適應工作階段的顯示大小、將特定按鍵動作傳送到工作階段、擷取工作階段的螢幕截圖,或設定影像品質。
14.2.5 編輯、複製和刪除儲存的工作階段 #
若要編輯儲存的某個遠端工作階段,請在 Remmina 主視窗中以滑鼠右鍵按一下該工作階段的名稱,然後選取 。如需相關欄位的描述,請參閱第 14.2.3 節 「新增遠端工作階段」。
若要複製儲存的某個遠端工作階段,請在 Remmina 主視窗中以滑鼠右鍵按一下該工作階段的名稱,然後選取 。在 視窗中,變更設定檔的名稱,(選擇性) 調整相關選項,然後按一下 確認。
若要刪除儲存的某個遠端工作階段,請在 Remmina 主視窗中以滑鼠右鍵按一下該工作階段的名稱,然後選取 。在下一個對話方塊中,按一下 確認。
14.2.6 從指令列執行遠端工作階段 #
如果您需要從指令列或使用批次檔案開啟遠端工作階段,而不先開啟應用程式主視窗,請使用以下語法:
>
remmina -c profile_name.remmina
Remmina 的設定檔儲存在您主目錄下的 .local/share/remmina/
目錄中。若要確定哪個設定檔屬於您要開啟的工作階段,請執行 Remmina,在主視窗中按一下工作階段名稱,然後在視窗底部的狀態行中查看設定檔的路徑。
如果 Remmina 未在執行,您可以將設定檔重新命名為更合理的檔案名稱,例如 sle15.remmina
。您甚至可以將設定檔複製到自訂目錄,並從該目錄中使用 remmina -c
指令來執行它。
14.3 在 VNC 伺服器上設定一次性工作階段 #
一次性工作階段由遠端用戶端啟動。它會在伺服器上啟動圖形登入畫面。這樣,您就可以選擇啟動工作階段的使用者,如果登入管理員支援,還可以選擇桌面環境。取消與此類 VNC 工作階段的用戶端連接時,該工作階段中啟動的所有應用程式也會終止。一次性 VNC 工作階段無法共用,不過在同一台主機上可以同時啟動多個工作階段。
啟動
› › 。核取
。如果您打算在網頁瀏覽器視窗中存取 VNC 工作階段,請啟用
。若需要,還可核取
(例如,當網路介面設定為位於外部區域中時)。如果您有多個網路介面,請透過 設定在特定介面開啟防火牆埠的限制。以
確認您的設定值。如果有些需要的套件尚未提供,您需要批准安裝缺失套件。
提示:重新啟動顯示管理員YaST 對顯示管理員設定進行了變更。您需要登出目前的圖形工作階段並重新啟動顯示管理員,以使變更生效。
14.3.1 可用的組態 #
SUSE Linux Enterprise Desktop 上的預設組態以 16 位元色彩深度、1024x768 像素解析度顯示工作階段。使用「一般」的 VNC 檢視器 (相當於 VNC 顯示埠 1
) 時,可在連接埠 5901
上使用工作階段,而使用網頁瀏覽器時,則可在連接埠 5801
上使用工作階段。
其他組態可在不同的連接埠上使用,如果您需要修改組態,請諮詢您的系統管理員以獲取詳細資料。
在一次性工作階段中,VNC 顯示埠號碼和 X 顯示埠號碼是獨立的。VNC 顯示埠號碼需要手動指定給伺服器支援的每個組態 (在上例中為 :1)。每次以其中一種組態啟動 VNC 工作階段時,工作階段會自動獲得可用的 X 顯示埠號碼。
依預設,VNC 用戶端與伺服器會嘗試透過安裝後產生的自行簽署 SSL 證書安全通訊。您可以使用預設的證書,也可以用自己的證書取代它。使用自行簽署的證書時,需要在首次連接之前,於 VNC 檢視器與網頁瀏覽器中確認證書的簽名。
某些 VNC 用戶端拒絕透過預設的自行簽署證書建立安全連接。例如,Vinagre 用戶端會向 GnuTLS 全域可信證書儲存區驗證證書,如果證書是自行簽署的證書,則不會建立連接。在這種情況下,請使用 x509
以外的加密方法,或者為 VNC 伺服器產生正確簽署的證書,並將其輸入至用戶端的系統可信證書儲存區。
14.3.2 啟動一次性 VNC 工作階段 #
若要連接一次性 VNC 工作階段,必須安裝 VNC 檢視器,另請參閱第 14.1 節 「vncviewer
用戶端」。或者,可在支援 JavaScript 的網頁瀏覽器中輸入以下 URL 來檢視 VNC 工作階段:http://jupiter.example.com:5801
。
14.3.3 設定一次性 VNC 工作階段 #
如果您不需要或不想修改預設組態,可以跳過本小節。
透過 systemd
通訊端 xvnc.socket
啟動一次性 VNC 工作階段。該通訊端預設提供六個組態區塊:三個用於 VNC 檢視器 (vnc1
到 vnc3
),另外三個用於 JavaScript 用戶端 (vnchttpd1
到 vnchttpd3
)。預設只有 vnc1
及 vnchttpd1
處於作用中狀態。
若要在開機時啟動 VNC 伺服器通訊端,請執行以下指令:
>
sudo
systemctl enable xvnc.socket
若要立即啟動通訊端,請執行:
>
sudo
systemctl start xvnc.socket
可透過 server_args
選項設定 Xvnc
伺服器。如需選項清單,請參閱 Xvnc --help
。
新增自訂組態時,請確定它們沒有使用同一台主機上的其他組態、服務或現有的永久 VNC 工作階段已在使用的連接埠。
輸入以下指令啟用組態變更:
>
sudo
systemctl reload xvnc.socket
依照 程序 14.1 「啟用一次性 VNC 工作階段」 中所述啟用遠端管理時,會在防火牆中開啟連接埠 5801
及 5901
。如果提供 VNC 工作階段的網路介面受防火牆保護,則您在為 VNC 工作階段啟用其他連接埠時,需要手動開啟相應的連接埠。如需相關說明,請參閱Chapter 23, Masquerading and firewalls。
14.4 設定永久 VNC 伺服器工作階段 #
從多個用戶端可以同時存取一個永久工作階段。此特性非常適合用於在一個用戶端具有完整存取權,而所有其他用戶端具有僅檢視存取權的場合進行演示操作。另一個使用案例是:培訓師可能需要在其中存取學員桌面的培訓工作階段。
若要連接至永久 VNC 工作階段,必須安裝 VNC 檢視器。如需更多詳細資料,請參閱第 14.1 節 「vncviewer
用戶端」。或者,可在支援 JavaScript 的網頁瀏覽器中輸入以下 URL 來檢視 VNC 工作階段:http://jupiter.example.com:5801
。
14.4.1 使用 vncmanager
啟動的 VNC 工作階段 #
啟動
› › 。啟用
。如果您打算在網頁瀏覽器視窗中存取 VNC 工作階段,請啟用
。若需要,還可核取
(例如,當網路介面設定為位於外部區域中時)。如果您有多個網路介面,請透過 設定在特定介面開啟防火牆埠的限制。以
確認您的設定值。如果有些需要的套件尚未提供,您需要批准安裝缺失套件。
提示:重新啟動顯示管理員YaST 對顯示管理員設定進行了變更。您需要登出目前的圖形工作階段並重新啟動顯示管理員,以使變更生效。
14.4.1.1 設定永久 VNC 工作階段 #
依程序 14.2 「啟用永久 VNC 工作階段」中所述啟用 VNC 工作階段管理後,便可以使用您喜歡的 VNC 檢視器 (例如 vncviewer
或 Remmina) 正常連接到遠端工作階段。登入後,桌面環境的系統匣中會出現「VNC」圖示。按一下該圖示可開啟 視窗。如果您的桌面環境不支援在系統匣中放置圖示,請手動執行 vncmanager-controller
。
有幾項設定會影響 VNC 工作階段的行為:
這相當於一次性工作階段。其他使用者將看不到此工作階段,它在您斷開連接後即會終止。如需相關資訊,請參閱第 14.3 節 「在 VNC 伺服器上設定一次性工作階段」。
其他使用者可以看見工作階段,它在您斷開連接後仍繼續執行。
請指定持續工作階段的名稱,以便在重新連接時可以輕鬆識別它。
任何人不必提供使用者身分證明登入,即可存取工作階段。
需要使用有效的使用者名稱和密碼登入後,才能存取工作階段。該選項會在
文字方塊中列出有效的使用者名稱。防止多個使用者同時加入該工作階段。
允許多個使用者同時加入持續工作階段。適合用於遠端展示或訓練工作階段。
按一下
加以確認。14.4.1.2 加入永久 VNC 工作階段 #
依第 14.4.1.1 節 「設定永久 VNC 工作階段」中所述設定持續 VNC 工作階段後,可透過 VNC 檢視器加入它。當 VNC 用戶端連接到伺服器後,系統會提示您選擇是要建立新工作階段,還是加入現有工作階段:
當您按一下現有工作階段的名稱後,系統可能要求您輸入登入身分證明,具體取決於持續工作階段設定。
14.5 在 VNC 伺服器上設定加密 #
如果 VNC 伺服器設定正確,則 VNC 伺服器與用戶端之間的所有通訊都會加密。驗證在工作階段開始時進行,實際的資料傳輸在驗證後開始。
無論是一次性還是永久 VNC 工作階段,都是透過 server_args
一行中 /usr/bin/Xvnc
指令的 -securitytypes
參數設定安全性選項。-securitytypes
參數用於選取驗證和加密方式。它的選項如下:
- None、TLSNone、X509None
沒有驗證。
- VncAuth、TLSVnc、X509Vnc
驗證使用自訂密碼。
- Plain、TLSPlain、X509Plain
驗證使用 PAM 來驗證使用者的密碼。
- None、vncAuth、plain
不加密。
- TLSNone、TLSVnc、TLSPlain
匿名 TLS 加密。所有內容都會加密,但不驗證遠端主機。因此,您可以防護被動攻擊者,但不能防禦中間人攻擊者。
- X509None、X509Vnc、X509Plain
使用證書進行 TLS 加密。如果使用自行簽署的證書,則在第一次連接時,系統將要求您驗證證書。在以後的連接中,僅當證書有變更時,系統才會向您發出警告。因此,在第一次連接時,您可以防禦中間人攻擊之外的所有其他攻擊 (類似於使用一般的 SSH)。如果使用由證書管理中心簽署且與機器名稱相符的證書,您的安全將得到全面保障 (類似於使用一般的 HTTPS)。
提示某些 VNC 用戶端拒絕透過預設的自行簽署證書建立安全連接。例如,Vinagre 用戶端會向 GnuTLS 全域可信證書儲存區驗證證書,如果證書是自行簽署的證書,則不會建立連接。在這種情況下,請使用
x509
以外的加密方法,或者為 VNC 伺服器產生正確簽署的證書,並將其輸入至用戶端的系統可信證書儲存區。提示:證書和金鑰的路徑如果使用基於 X509 的加密,需要透過
-X509Cert
和-X509Key
選項指定 X509 證書和金鑰的路徑。
如果您選取多種安全性類型 (以逗號分隔),將會使用用戶端與伺服器都支援且允許的第一種安全性。如此,您便可在伺服器上設定隨機加密。如果您需要支援不支援加密的 VNC 用戶端,此功能將相當實用。
在用戶端上,您也可以指定允許的安全性類型,以防在您連接到已知啟用了加密的伺服器時遭到降級攻擊 (雖然在該情況下,我們的 vncviewer 會發出「Connection not encrypted!
」訊息來警告您)。
14.6 與 Wayland 的相容性 #
遠端管理 (VNC) 功能依賴於 X11,如果啟用 Wayland,系統可能會顯示空白畫面。顯示管理員必須設定為使用 X11 而不是 Wayland。對於 gdm,請編輯 /etc/gdm/custom.conf
。在 [daemon]
區段中,將 WaylandEnable=false
新增至組態檔案。登入時,使用者還必須選擇與 X11 相容的工作階段。如果想要為 GNOME 移除 Wayland 選項,可以移除並鎖定 gnome-session-wayland 套件。