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 可以正常访问

129e60353d69319906cbfe431dbced53.png

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

8a900f3ae6bc4049008e7c0c770f9d0a.png

例子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 提示需要密码,直接回车包认证失败错误

4213ebaff30cb5724eb951722c602973.png

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

c6efb9c4879615791804c8407662e3fb.png

例子3:reverse的使用

在linux主机上: vncviewer -listen :2

403871d289e0b4f749ebdef7cca9d1de.png

在宿主机:

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

e018c235885a33755e6cce0236317d72.png

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

d94bf1f91ab2ab0673ebc4b1e88a85d4.png

补充图形界面几点内容:

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐