Proxmox VE 5的默认控制台是通过VNC方式,但是VNC并不支持声音。网上看到有人说用SPICE方式就可以支持声音输出。于是根据Proxmox VE 5官方wiki上的说明https://pve.proxmox.com/wiki/SPICE,下载了windows 版本的SPICE client,安装好,并且在虚拟机的设置面板上把硬件里的“显示”设置成SPICE,发现启动虚拟机后点web界面右上角的“控制台”菜单中的“SPICE”,还是直接弹出了个下载界面,下载了个文件叫“下载.vv”,双击倒时可以直接调用SPICE clien打开,但是接着显示“无法确定URI的连接类型”。配置界面主要的地方已经在下图标出:
在网上找到一篇参考文章http://blog.51cto.com/sery/2151568?lb发现,SPICE的监听的端口从61001开始往上递增,但是监听地址是127.0.0.1,只能在只能本地连接。用以下命令得到虚拟机的运行命令:
qm showcmd xxx >> /root/vm-xxx.sh
其中xxx为虚拟机的id。然后把脚本文件里的绑定地址127.0.0.1改成0.0.0.0就可以了,以后运行这个脚本启动的虚拟机就是可以直接用SPICE clien连接的。
然而我试了一下,发现并不是这样子。直接显示无法连接。经过阅读kvm命令的man文档,我发现原来命令行里用的是tls-port选项,这个选项是用tls来连接,我把这个选项改成了port之后,发现可以连接上,但是需要密码认证,我根本不知道密码,最后我找到了一下参数disable-ticketing,加上去之后终于成功连上虚拟机的界面。
但是,我觉得参考文章的方法只能用脚本来开启虚拟机,完全失去了web界面的优势。受官网wiki的启发,我想是否可以直接在虚拟机的配置文件中修改相关的参数,从而达到同样的效果?答案是肯定的。
首先,关闭要配置的虚拟机,在web界面中把虚拟机的“硬件”-“显示”设置回原来的“默认”。我们不需要在web界面中开启SPICE,所以这里的配置要恢复原来的样子,免得跟我们后面的配置发生冲突。
然后,编辑虚拟机的配置文件 (/etc/pve/qemu-server/XXX.conf, XXX 是虚拟机的 VM ID),加入以下行:
args: -device AC97,addr=0x18 -spice ‘port=61001,disable-ticketing,seamless-migration=on’
其中,-device选项是配置声卡,来自官方wiki。-spice选项是配置SPICE,这里绑定地址默认是0.0.0.0,所以不用设置。而port选项是设置SPICE的监听端口,这个端口可以自由设置,后面在client中填写端口跟这里一致即可。disable-ticketing是关闭认证,这样子就可以不输入账号密码直接连上。seamless-migration这个选项不知道干什么用的。
最后,开启虚拟机,在SPICE clien中输入“spice://172.21.105.108:61001”就可以成功连接了。其中172.21.105.108是虚拟机所在的pve节点的地址,61001就是在虚拟机配置文件中port参数设置的端口。
进入虚拟机的桌面环境,通过设置界面即可找到相应的声卡,我的是centos6.5操作系统,出来的声卡如下图所示:
作者:Dolf2014
来源:CSDN
原文:https://blog.csdn.net/zebra2011/article/details/83244318
版权声明:本文为博主原创文章,转载请附上博文链接!