×
新网 > 虚机资讯 > 正文

libvirt的远程访问

  • 作者:未知
  • 来源:
  • 2018-05-02 18:16:11

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

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

002UASMrzy7605pjKJv15&690.jpg

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<stdio.h> #include<stdlib.h> #include<libvirt/libvirt.h> 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<numofdom;i++) { printf("domain%d:%sn",i,virDomainGetName(namelist[i])); virDomainFree(namelist[i]); } free(namelist); virConnectClose(conn); return0; }

 

 

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading