1.宿主机的vnc(virtual Network Computing)配置

    安装rpm包

        yum install tigervnc-server -y

    为了防止干扰直接关闭防火墙和selinux

        /etc/init.d/iptables stop

        setenforce 0

    配置vnc密码和启动vncserver服务

        vncpasswd

        vncserver  


2.客户机的vnc

在qemu-kvm命令中有个参数-vnc DISPLAY,OPTION 这个参数会让qemu使用vnc而不是sdl(Simple DirectMedia Layer)

display:

    host:d 表示vnc服务监听在host:(d+5900)这个套接字上,host为空则表示监听在0.0.0.0,比如-vnc :1 则表示监听在0.0.0.0:5901上

    unix:path 用的不多,不解释(其实我也不知道..)

    none 表示vnc已经被初始化,但不启动,需要时可以在vmm中使用change vnc DISPLAY,OPTION来启动


option:

    reverse:表示反向到一个处于监听中的vnc套接字,所以,假设我们在客户端vncviewer -listen :1 ,它会告诉你它监听在某个端口,然后在宿主机上我们就可以-vnc ClientIP:port,reverse

    password:表示需要密码才能连接,具体的密码必须到vmm(qemu monitor)中使用change vnc password设置

    “tls” “x509=/path""sasl"等:安全通信相关,这里不解释

假设:

    宿主机:192.168.2.188 

    win主机:192.168.2.106

    linux主机:192.168.2.127

例子1:

在宿主机:

    qemu-system-x86_64 -m 4096 -smp 8 -net nic -net user,tftp=/root/tftp,hostfwd=tcp::5022-:22 /root/kvm_vhost/redhat6.qcow2 -vnc 192.168.2.188:5907


在linux主机使用vncviewer 192.168.2.188:11807 可以正常访问

wKiom1g9Q5jBhnaUAADm5OhjEGQ785.png-wh_50

在win主机使用vnc viewer连接会黑屏,具体原因有待研究

wKioL1g9Q6bgGzxtAAALx42CLuU587.png-wh_50

例子2

在宿主机:

    qemu-system-x86_64 -m 4096 -smp 8 -net nic -net user,tftp=/root/tftp,hostfwd=tcp::5022-:22 /root/kvm_vhost/redhat6.qcow2 -vnc 192.168.2.188:5907,password


在linux主机访问vncviewer 192.168.2.188:11807 提示需要密码,直接回车包认证失败错误

wKiom1g9Q7fBIi7MAACEJNctyLQ924.png-wh_50

解决:在宿主机的命令后面加上 -monitor stdio,然后使用change vnc password设置vnc密码

wKiom1g9Q8iDPnUQAAAl6wgAcGg652.png-wh_50


例子3:reverse的使用

在linux主机上: vncviewer -listen :2

wKiom1g9SL_iuKelAABA5-qDB14011.png-wh_50   

在宿主机: 

    qemu-system-x86_64  /root/kvm_vhost/redhat6.qcow2 -vnc 192.168.2.127:5500,reverse

wKiom1g9SQOwhoxsAAAOwmz1Vr4937.png-wh_50

linux主机的结果:自动弹出客户机的vnc界面

wKioL1g9SVrQQzR_AAAskYZAxs8914.png-wh_50


补充图形界面几点内容:

1.当使用vnc方式启动客户机的时候,很多时候宿主机的鼠标和客户机的鼠标不在同一个焦点上。

解决方法:在qemu-kvm启动时,加上-usb -usbdevice tablet 或者-device piix3-usb-uhci参数


2.显示相关的其他选项(qemu-system-x86_64)

    -curses:让qemu将vga显示输出到使用curses/ncurses接口支持的文件模式界面

比如,利用xshell连接宿主机,使用qemu-system-x86_64  -m 4096  /home/kvm_vhost/redhat6.qcow2  -curses 命令,客户机的界面会直接覆盖宿主机的界面

    -vga type:模拟vga卡类别,type有以下几种:

        cirrus:默认类型

        std:标准

        vmware:提供对“vmware SVGA-II”兼容显卡的支持

        none:关闭vga卡

以上类型,都可以在客户机中lspci查看

    -no-frame:使用sdl显示时没有边框。

    -full-screen:启动客户机时,全屏显示

    -alt-grab:使用ctrl+alt+shit组合键去抢占和释放鼠标,默认ctrl+alt,所以我们切换到qemu monitor的时候摁ctrl+alt+2,如果使用此选项,则变为ctrl+alt+shift+2

    -ctrl-grab:同上,只不过这里使用右ctrl