libvirt的远程访问

/etc/libvirt/libvirtd.conf 是 libvirt 的守护进程 libvirtd 的配置文件,配置了 libvirtd 启动时的许多设置,包括是否建立 TCP、UNIX domain socket 等连接方式及其连接数,以及这些连接的认证机制,等等.修改后需要让libvirtd重新加载配置文件(或重启libvirtd)才会生效。打开libvirtd.conf会发现很多都是用的默认选项。为了实现远程控制访问。需要打开被注释掉的几个参数并修改之:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、洛隆网站维护、网站推广。

listen_tls=0 listen_tcp=1 tcp_port=“16509” auth_tcp=“none”

要让TCP、TLS等连接的生效,需要在启动 libvirtd 时加上 –listen 参数(简写为 -l )。而默认的 service libvirtd start 命令启动 libvirtd 服务时,并没带 –listen 参数,所以如果要使用TCP等连接方式,可以使用下面的命令来启动libvirtd

libvirtd–listen-d

验证,可以通过virsh来验证:

virsh-cqemu+tcp://localhost:16509/system

如果是其他机器需要把对应的localhost换成ip或主机名。而且注意打开16509端口。

下面是一段c实现的列出所有虚拟主机名的程序。通过tcp无密码连接方式。

/*compilewith:gcctest.c-otest-lvirt*/ #include #include #include intmain(intargc,char*argv[]) { intnumofdom; inti; virDomainPtr*namelist=NULL; intflags=VIR_CONNECT_LIST_DOMAINS_ACTIVE|VIR_CONNECT_LIST_DOMAINS_INACTIVE; virConnectPtrconn; //useactualipaddress conn=virConnectOpenAuth("qemu+tcp://192.168.234.128/system",virConnectAuthPtrDefault,0); if(conn==NULL) { fprintf(stderr,"Failedtoopenconnectiontoqemu:///systemn"); return-1; } numofdom=virConnectListAllDomains(conn,&namelist,flags); if(numofdom==-1) { fprintf(stderr,"Failedtogetnumofdomain:n"); return-1; } for(i=0;i


网页标题:libvirt的远程访问
文章起源:http://myzitong.com/article/cgccdi.html