當要連接遠端「電腦主機」中的「虛擬機」時(以兩部主電腦都為 Fedora 系統為例),有幾個方法(注意同一列中的數字順序)
連線方式 | 虛擬機執行方式 | 說 明 |
---|---|---|
1. 以 VNC 連線至「遠端主機」 | 2. 以 GUI 方式啟動 VBox 的虛擬機 3. 透過 VNC 操作 VBox 虛擬機 | ◎ 與在「本地電腦」的桌面使用 VBox 虛擬機的經驗類似。 ◎ 因為是間接操作「虛擬機」,故反應略有延遲。 |
2. 以 VNC 或 RDP 連線至「虛擬機」 | 1. 以 GUI 方式啟動 VBox 的虛擬機 3. 以 VNC 或 RDP 直接連接、操作虛擬機 | ◎ 需先設妥「虛擬機」之『遠端桌面』設定 ◎「遠端電腦」為桌面環境,要耗用資源 ◎ 以 VNC 或 RDP 連線後,「虛擬機」的操作與第一個方法的經驗類似。 ◎ 因為是直接操作「虛擬機」,故反應較前一方法略快。 |
2. 以 VNC 或 RDP 連線至「虛擬機」 | 1. 以命令 (SSH) 或網頁 (phpVirtualBox) 啟動 headless 模式的 VBox 虛擬機 3. 以 VNC 或 RDP 直接連接、操作虛擬機 | ◎ 需先設妥「虛擬機」之『遠端桌面』設定 ◎「遠端主機」無桌面環境,較節省資源 ◎ 以 VNC 或 RDP 連線後,「虛擬機」的操作與第一個方法的經驗類似。 ◎ 因為是直接操作「虛擬機」,故反應較第一個方法略快。 |
1. 以文字(SSH)或網頁(phpVirtualBox)連線至「遠端電腦」 3. 以 VRDP 連接虛擬機的 VBox 『遠端顯示』 | 2. 以命令(SSH)或網頁(phpVirtualBox)啟動 headless 模式的 VBox 虛擬機 4. 以 VRDP 直接連接、操作虛擬機 | ◎「虛擬機」無需任何設定 ◎ 一般「虛擬機」的主機多用此法,可保留較多的資源給虛擬機 ◎ 以 VRDP 連線後,由虛擬機所見畫面與一般直接接電腦的螢幕相似。從開機到使用的過程都會顯示。 |
上表中第一、二欄的編號為該方法的連線操作步驟,RDP 是 Remote Desktop 的簡稱,而 VRDP 則是指 VirtualBox 修改過的 RDP。本文著重在第四個方法,即以 SSH 連線後,啟動 headless 模式的虛擬機,再以 VRDP 連線、使用虛擬機。
以前用 VRDP 從「本地電腦」連線到「遠端電腦」上的 VirtualBox 虛擬機時,在「終端機」下這個命令
[SiB@Celeron-D ~]$ rdesktop 192.168.10.17:3389就可以連線成功。上面命令中的 192.168.10.17 是「虛擬機」所在的「遠端電腦」之網路位址 (IP),而 3389 是「虛擬機」顯示的「遠端桌面」之埠號。最近在 Fedora 19 依這個命令連線時,卻出現錯誤訊息
[SiB@Celeron-D ~]$ rdesktop 192.168.10.17:3389判斷是因為新版 VirtualBox 的 VRDP 與 Fedora 內附的 rdesktop 水土不服。改用 VirtualBox 套件中所附的 rdesktop-vrdp 就可以解決問題了,完整步驟如下:
Failed to negotiate protocol, retrying with plain RDP.
WARNING: Remote desktop changed from 800x600 to 1366x656.
X Error of failed request: BadWindow (invalid Window parameter)
Major opcode of failed request: 18 (X_ChangeProperty)
Resource id in failed request: 0x0
Serial number of failed request: 38
Current serial number in output stream: 43
1. 虛擬機設定
「遠端電腦」的虛擬機要先設定開啟其『遠端顯示伺服器』的設定,由 VirtualBox 的管理員程式的選單,《設定值》→《顯示》→《遠端顯示》會出現一個設定視窗如下:勾選【啟用伺服器】,在【伺服器埠】填入 3389 這是 RDP 的標準連接埠號,如果更改等一下連線時要注意。而【驗證方法】、【驗證逾時】和【多重連線】的設定以後再說明,在這裏先維持預設值。最後,按【確定】存入設定值,下次啟動虛擬機時就可以用 VRDP 遠端連線了。
注意一:更改上述的『遠端顯示』設定一定要重新啟動虛擬機,否則設定不會生效。
注意二:上例中的『伺服器埠』預設值為 3389,如果遠端的「主機電腦」是安裝 Windows 系統,這個預設值一定不能與遠端的 Windows 相同,否則連線不會成功。
2. 在「本地電腦」安裝 VirtualBox
在這個步驟安裝 VirtualBox 並不是為了在「本地電腦」執行虛擬機,而是為了使用其中的一個工具 rdesktop-vrdp。而且 rdesktop-vrdp 這個工具,在 RPM Fusion 的套件資料庫所收錄的 VirtualBox 套件中並不存在,需要由 VirtualBox.org 官網下載的才有。由官網安裝的命令如下:
[root@Celeron-D ~]# wget -P /etc/yum.repos.d/ http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo上例中,第一個命令是由 VirtualBox 官網下載套件資料庫,第二個命令是安裝 VirtualBox 4.2 版。如果有安裝上的問題,可參考之前的發文。
[root@Celeron-D ~]# yum install VirtualBox-4.2
注意:官網下載安裝的 VirtualBox 才有 rdesktop-vrdp,由 RPM Fusion 下載的沒有。
3. 開啟「遠端電腦」中的虛擬機連線
若不想透過 VNC 開啟「遠端電腦」中的虛擬機,可用 SSH 連線到「遠端電腦」,在『命令提示』下這個命令[SiB@Core-i7 ~]$ VBoxManage startvm VM_test --type=headless其中 Test_iSCSI 是「遠端電腦」中的虛擬機的名稱,而 --type=headless 這個參數使得虛擬機啟動時不會在「主機電腦」建立『圖形化視窗』(即:無螢幕、無鍵盤、無滑鼠)。
因此,當「遠端電腦」沒有啟動『桌面環境』時,若再使用 VRDP 連線,也能使用有『圖形化視窗』的「虛擬機」。
4. 與「遠端電腦」中的虛擬機連線
接下來就可以和「遠端電腦」中的虛擬機連線,命令如下:[SiB@Celeron-D ~]$ rdesktop-vrdp 192.168.10.17:3389其中 192.168.10.17 是「遠端電腦」的網路位址,而 3389 是虛擬機『遠端顯示伺服器』的埠號。
注意一:『網路位址』和『埠號』都是「遠端電腦」的,不是「虛擬機」內所安裝之系統的。
注意二:同一部「主機電腦」中同時開啟的「虛擬機」所用的埠號不可重覆。
已測試版本:
- 遠端主機:Fedora 19 + VirtualBox 4.2.18 + Extension Pack
- 虛 擬 機:Fedora 19 + VirtualBox Guest Additions 4.2.18
- 本地電腦:Fedora 19 + VirtualBox 4.2.18
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)