RDP - VirtualBox 的遠端桌面

No Comments

筆者在後面的文章會安裝與使用 X2Go 遠端桌面。
然而 VirtualBox 就已有提供遠端桌面的功能了,故筆者於此處追加本文章做說明。
VirtualBox 的遠端桌面使用並相容於 RDP 協定,故對 virtualbox 而言也稱為 VRDP。

筆者之所以選擇 X2Go,(相較於 VNC/據說)是因其反應較快且設定簡單。當然還有很多比 X2Go 更好的/筆者並未詳加考查,用它僅因為裝了用了覺得可以接受便可。

透過遠端連接伺服器是普遍常用的。要不是以 shell 的方式登入呈現,要不就是桌面的形式呈現。RDP server 和 X2Go server 都是同樣的遠端桌面功能,同樣將遠端的桌面呈現到本地端來,只是用的協定不同/實作不同而已。故主機也可安裝 RDP server 達到同樣目的。當然配對的用戶端程式便會不同。RDP server 配 RDP client app,X2Go 配 X2Go client app。
然而,X2Go client 目前還沒有 Android app。
RDP 是有 Android app 可以連線到 RDP 此類型的桌面。請以“rdp client”做搜尋。後面的文章也會再介紹到。

簡單講,

筆者在實體主機上和 VM 內都裝有 X2Go server,以能夠遠端連接此實體主機或此 VM 的桌面;透過 X2Go client,也只有 Linux 版本。

筆者使用 Remmina,也是 Linux 版本,來連接 RDP server,即 VM 自帶的遠端桌面。

筆者也使用 Android app,RDP client,來遠端連接 VM 的桌面。

以下,筆者簡述 VirtualBox RDP server 啟用的步驟。細節請找 virtualbox manual 關於 rdp 的章節。

遠端桌面 - Virtualbox Remote Desktop Protocol

  1. VRDP 的使用,筆者採取外部認證的方式,且認證資料是儲存在 extradata section 內。並且是使用者自訂帳密,其獨立於本機系統或 VM 客體,所以相對地安全性高。
  2. 在虛擬機的設定內,遠端顯示的驗證方法,選擇“外部”。
  3. 自訂密碼的部份要轉為 hash code 再以參數形式傳給 virtualbox 做登錄。
  4. 所以筆者(照手冊)設使用者名字是 john,密碼是 secret,虛擬機名是 Ubuntu ,那麼就只要以下幾行設定即成。
  5. 將第三行産生的 hash code 貼到第四行指令最後;如第四行所示。
  6. 請留意雙引號及 – -vrdeauthtype
  1. VBoxManage setproperty vrdeauthlibrary “VBoxAuthSimple”
  2. VBoxManage modifyvm “Ubuntu” –vrdeauthtype external
  3. VBoxManage internalcommands passwordhash “secret”
  4. VBoxManage setextradata “Ubuntu” “VBoxAuthSimple/users/john” 2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b

此外,在 linux 系統上 client 端可使用 Remmina,其可從 snap store 安裝。

透過 command line 的方式啟動 VM,“VM-name”要換成您 VM 的名稱:
VBoxManage startvm “VM-name” –type headless(注意雙引號及 – -t)
VM 關機:
VBoxManage controlvm “VM-name” acpipowerbutton(注意雙引號)

使用 VRDP 的注意事項,

  • 從 Remmina 連到遠端桌面後,筆者本地端的滑鼠鍵盤無法去做輸入,一直停留在登入的畫面。而事實是鍵鼠都是有作用的,唯有在登入畫面無法顯示出其在作用。所以,若使用者也遇到同樣的狀況,請以盲輸入,即在登入畫面下,按 ENTER 接著輸入密碼,(或者您在登入畫面中會做了哪些動作),在密碼通過後,自然就會回復正常了。
  • 筆者關於 Remmina 連線到 VM VRDP 又搞了快兩天。若連不上,有幾種可能(VirtualBox 的問題):
  • 以 netstat -tulpn 查看監聽的 port,如果發現 VRDP 所使用的埠,例如 5902,其 5902/tcp 和 5902/tcp6 應當都被其監聽使用,但卻只有其中之一有。那麼表示 VirtualBox 提供的 VRDP 外掛和 VNC 外掛同時在作用,即衝突了。可能可以解決的方式就是下以下 command:
  • VBoxManage setproperty vrdeextpack “Oracle VM VirtualBox Extension Pack”(注意雙引號)
  • 又或是,可在 virtualbox 設定內,找一下,將 VNC 附加元件移除;它是安裝 extension pack 時裝入的。
  • 在 windows 底下(客端/VM)曾安裝的 VirtualBox 附加套件版本不合,對策就是重新安裝。
  • 再對 Remmina 補充一下,
    它也支援 copy/paste,不過要記得 virtualbox 的 copy/paste 的支援要打開才行。
    再來前面有提到使用 snap 提供的 remmina,不過當前筆者的嘗試 apt 所提供者並不比 snap 舊多少,並且完整度/即不會用起來怪怪的,較優於 snap 者。


  • 此時,您不免柯柯了一下;
  • 在遠端真實主機上,我們可使用 SSH 及 X2Go 登入及使用其圖形界面。又進一步地我們可以在該主機上裝了 virtualbox,並裝了例如 windows 的虛擬機,並透過 ssh command line 將其啟動,並且本地端又開啟了 Remmina 來操作遠端的 windows VM。全部都是在我們本地端的這一台破破的筆電上即可完成。
  • 所以,您看您這幾十年來一直都是使用 MS Windows,此時有沒有深覺您被解放了,自由了!
  • 參考資料
  • Virtualbox 遠端桌面 https://www.virtualbox.org/manual/ch07.html

補充

  • 筆者遇到了這樣一種狀況,
  • 啟動了一份全新的 vm client,例如啟動跑了 ubuntu20.04 的安裝,進入安裝畫面後,螢幕解析度預設是 800×600,導致該有的完整畫面的下半部被截掉而無法操作(當然,無從調整更改)。幸而我們可以技巧地一開始先進入“try ubuntu without installing“,調整好解析度後(該視窗不要關),才啟動安裝。且安裝過程中又會跳回 800×600,同理就再設定一次。便可解決掉此問題。然而,這是在“系統能有載入”的前提下才有此法可用。
  • https://askubuntu.com/questions/281509/how-do-i-change-the-screen-resolution-using-ubuntu-command-line
  • 因此按照此連結的內容是另一種方法。不過它仍需在 shell and installation procedure 有並存的前提下。
  • 還有一說是要在 vm client 下安裝 guest extension pack 才能調整解析度不過,它遇到 installation procedure(因為先發生)便非解法。
  • 因此最根本的解法就是在啟動 client 之前,virtualbox 便有地方且能夠設定解析度。此法筆者當前未知。

Categories: Linux 架設網站

Tags: ,

PHP Code Snippets Powered By : XYZScripts.com