圖形設備允許與來賓操作系統(tǒng)進行圖形交互毯辅。
訪客通常會配置幀緩沖區(qū)或文本控制臺,以允許與管理員進行交互煞额。
...
<devices>
<graphics type='sdl' display=':0.0'/>
<graphics type='vnc' port='5904' sharePolicy='allow-exclusive'>
<listen type='address' address='1.2.3.4'/>
</graphics>
<graphics type='rdp' autoport='yes' multiUser='yes' />
<graphics type='desktop' fullscreen='yes'/>
<graphics type='spice'>
<listen type='network' network='rednet'/>
</graphics>
</devices>
...
graphics
graphics具有一個強制性 type 屬性思恐,它取值sdl沾谜,vnc, spice胀莹,rdp或desktop:
- sdl
這將在主機桌面上顯示一個窗口基跑,它可以包含3個可選參數(shù):
一個display顯示器使用的xauth屬性,一個認證標識符的屬性描焰,以及一個可選的fullscreen屬性接受值 yes或no媳否。
- vnc
port屬性指定TCP端口號(使用-1作為指示應自動分配的舊語法)。
autoport屬性是用于指示要使用的TCP端口的自動分配的新的首選語法荆秦。
passwd屬性以明文形式提供VNC密碼篱竭。
如果passwd屬性設置為空字符串,則禁用VNC訪問步绸。
keymap屬性指定要使用的鍵盤映射掺逼。可以通過給出時間戳passwdValidTo ='2010-04-09T15:51:00'假定為UTC來設置密碼的有效性限制瓤介。
該connected屬性允許在密碼更改期間控制連接的客戶端坪圾。
-- ** -- ** --
可選
sharePolicy屬性指定vnc服務器顯示共享策略:
1.allow-exclusive允許客戶通過放棄其他連接來請求獨占訪問。并行連接多個客戶端需要所有客戶端請求共享會話(vncviewer:-Shared switch)惑朦。這是默認值。
2.force-shared禁用獨占客戶端訪問漓概,每個連接都必須指定vncviewer的共享切換漾月。
3.ignore無條件的連接。
-- ** -- ** --
VNC WebSocket功能胃珍,websocket屬性可以用來指定偵聽的端口(-1意味著自動分配梁肿,autoport由于安全原因而不起作用)。 - spice
port屬性指定TCP端口號(使用-1作為指示應自動分配的舊語法)觅彰,同時tlsPort給出替代的安全端口號吩蔑。
autoport 屬性是用于指示所需端口號的自動分配的新的首選語法。
passwd 屬性以明文形式提供SPICE密碼填抬。
如果 passwd屬性設置為空字符串烛芬,則禁用SPICE訪問。
keymap屬性指定要使用的鍵盤映射飒责∽嘎Γ可以通過給出時間戳passwdValidTo ='2010-04-09T15:51:00'假定為UTC來設置密碼的有效性限制。
連接屬性允許在密碼更改期間控制連接的客戶端宏蛉。SPICE接受保持客戶端連接遣臼,斷開連接客戶端,和不能更改密碼失敗拾并。
defaultMode屬性設置默認的信道安全策略揍堰,有效值是secure鹏浅,insecure,和默認的any
當SPICE配置正常和TLS安全的TCP端口時屏歹,可能需要限制哪些通道可以在端口上運行隐砸。 這是通過在主要<graphics>元素內(nèi)添加一個或多個<channel>元素并將mode屬性設置為secure或insecure來實現(xiàn)的。 設置mode屬性將覆蓋defaultMode屬性設置的默認值西采。有效的名稱包括main凰萨,display,inputs械馆,cursor胖眷,playback,record; smartcard ; 和usbredir霹崎。
<graphics type='spice' port='-1' tlsPort='-1' autoport='yes'>
<channel name='main' mode='secure'/>
<channel name='record' mode='insecure'/>
<image compression='auto_glz'/>
<streaming mode='filter'/>
<clipboard copypaste='no'/>
<mouse mode='client'/>
<filetransfer enable='no'/>
<gl enable='yes' rendernode='/dev/dri/by-path/pci-0000:00:02.0-render'/>
</graphics>
Spice支持音頻珊搀,圖像和流媒體的可變壓縮設置。這些設置是通過訪問compression 屬性中的所有下列元素:image以設置圖像壓縮(接受auto_glz尾菇,auto_lz境析,quic,glz派诬,lz劳淆,off),jpeg用于JPEG壓縮圖像通過WAN(接受auto默赂,never沛鸵,always),zlib用于配置蒼白圖像壓縮(接受auto缆八,never曲掰,always),并playback 為啟用音頻流壓縮(接受on或 off)奈辰。
流模式通過設定streaming元件栏妖,設置其mode屬性之一 filter,all或off奖恰。
復制和粘貼功能(通過Spice代理)由clipboard元素設置 吊趾。它是默認啟用的,可以通過設置copypaste屬性來 禁用no瑟啃。
鼠標模式由mouse元素設置趾徽,將其mode屬性設置 為server或之一 client。如果沒有指定模式翰守,將使用默認的qemu(客戶端模式)孵奶。
文件傳輸功能(通過Spice代理)使用filetransfer元素設置 。它是默認啟用的蜡峰,可以通過設置enable屬性來 禁用no了袁。
Spice可能會使用OpenGL提供加速的服務器端渲染朗恳。您可以gl通過設置enable 屬性來顯式地啟用或禁用OpenGL支持。载绿。
默認情況下粥诫,QEMU將選擇第一個可用的GPU DRM渲染節(jié)點。您可以指定一個DRM渲染節(jié)點路徑來代替崭庸。(僅限QEMU)rdp
port屬性指定TCP端口號(使用-1作為指示應自動分配的舊語法)怀浆。
autoport屬性是用于指示要使用的TCP端口的自動分配的新的首選語法。在VirtualBox驅(qū)動程序中怕享,當虛擬機啟動時执赡,將使虛擬機管理程序從3389-3689范圍內(nèi)選擇可用的端口。所選的端口將被反映在port 屬性中函筋。
multiUser屬性是一個布爾值沙合,用于決定是否允許多個同時連接到虛擬機。
replaceUser屬性是一個布爾值跌帐,用于確定當新客戶端以單連接模式連接時是否必須刪除現(xiàn)有連接首懈,并且必須由VRDP服務器建立新連接。desktop
此值現(xiàn)在是為VirtualBox域保留的谨敛。它在主機桌面上顯示一個窗口究履,類似于“sdl”,但使用VirtualBox查看器脸狸。就像“sdl”一樣最仑,它接受可選的屬性display和 fullscreen。
圖形設備使用一個 <listen>來設置設備應該監(jiān)聽客戶端的位置肥惭。它有一個type指定監(jiān)聽類型的強制屬性 。只有vnc紊搪, spice和rdp支持<listen> 元素蜜葱。可用的類型是:
- address
通知圖形設備使用address屬性中指定的地址 耀石,該地址將包含IP地址或主機名(通過DNS查詢將解析為IP地址)以進行偵聽牵囤。
address從1.3.5開始,為了使用配置文件中的地址滞伟, 可以省略該屬性揭鳞。
為了向后兼容, 該address屬性被復制為元素中的listen 屬性graphics梆奈。如果兩者都提供野崇,他們必須是平等的。
<graphics type='vnc' port='6210' autoport='no' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/> #可以省略
</graphics>
- network
這用于network 從libvirt配置的網(wǎng)絡列表中指定屬性中的現(xiàn)有網(wǎng)絡亩钟。將檢查指定的網(wǎng)絡配置以確定合適的監(jiān)聽地址乓梨,并將地址存儲在address 屬性中的實時XML中鳖轰。
<graphics type='spice' autoport='yes'>
<listen type='address'/>
<image compression='off'/>
</graphics>
socket(僅限QEMU)
這種偵聽類型告訴圖形服務器在unix套接字上偵聽。屬性socket包含unix套接字的路徑扶镀。如果省略這個屬性蕴侣,libvirt會為你生成這個路徑。由圖形類型vnc和spic支持臭觉。
為了vnc圖形向后兼容元素socket中第一個listen元素的屬性被復制為socket屬性graphics 昆雀。如果graphics元素包含一個socket 屬性,所有l(wèi)isten元素都被忽略蝠筑。none(僅限QEMU)
這個監(jiān)聽類型沒有任何其他的屬性狞膘。Libvirt支持通過我們的API virDomainOpenGraphics()和virDomainOpenGraphicsFD()傳遞文件描述符。如果使用這個類型并且圖形設備不在任何地方監(jiān)聽菱肖,則不允許其他監(jiān)聽類型客冈。您需要使用兩個API中的一個將FD傳遞給QEMU才能連接到此圖形設備。由圖形類型vnc和spic支持稳强。