在gentoo上使用远程访问设置libvirt:不监听tls端口

我试图在我的无头gentoo服务器上设置libvirtd。 我想通过tls进行远程控制。 我遵循libvirt远程访问指南,但它不适合我:客户端virt-manager显示以下错误:

unable to connect to libvirtd at 'xxx.xxx.info': Connection refused Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/connection.py", line 1055, in _try_open None], flags) File "/usr/lib/python2.6/site-packages/libvirt.py", line 107, in openAuth if ret is None:raise libvirtError('virConnectOpenAuth() failed') libvirtError: unable to connect to libvirtd at 'xxx.xxx.info': Connection refused 

这里是我目前的服务器libvirtdconfiguration(注释剥离):

 listen_tls = 1 tls_port = "16514" auth_tls = "none" tls_no_verify_address = 1 

它不侦听端口16514: lsof -i tcp:16514什么都不打印。

在libvirtd启动之后,我的日志中也有以下内容:

 Mar 30 14:46:02 fs dnsmasq[27523]: started, version 2.52 cachesize 150 Mar 30 14:46:02 fs dnsmasq[27523]: compile time options: no-IPv6 GNU-getopt DBus I18N DHCP no-TFTP Mar 30 14:46:02 fs dnsmasq-dhcp[27523]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h Mar 30 14:46:02 fs dnsmasq[27523]: reading /etc/resolv.conf Mar 30 14:46:02 fs dnsmasq[27523]: using nameserver 192.168.1.3#53 Mar 30 14:46:02 fs dnsmasq[27523]: bad address at /etc/hosts line 2 Mar 30 14:46:02 fs dnsmasq[27523]: read /etc/hosts - 15 addresses Mar 30 14:46:10 fs kernel: IN=eth1 OUT= MAC=01:00:5e:00:00:01:00:18:82:ed:d1:df:08:00 SRC=172.28.36.1 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=62606 PROTO=2 Mar 30 14:46:33 fs kernel: IN=virbr0 OUT= MAC=01:00:5e:00:00:01:26:a8:55:dc:5f:05:08:00 SRC=0.0.0.0 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2 

“kernel:IN = virbr0”是由我的iptablesconfiguration中的-j LOG规则logging的丢弃的数据包。 但是,我已经尝试了所有允许的iptables规则 – 没有任何改变。

Certs似乎也很好(也许不是?):

 # ls -R /etc/pki/ /etc/pki/: CA libvirt /etc/pki/CA: ca.info cacert.pem cakey.pem /etc/pki/libvirt: private servercert.pem /etc/pki/libvirt/private: server.info servercert.pem serverkey.pem 

我正在运行gentoo

 [ebuild R ] app-emulation/libvirt-0.8.8-r1 USE="json libvirtd lvm lxc network nls parted python qemu udev virt-network -avahi -caps -debug -iscsi -macvtap -nfs -numa -openvz -pcap -phyp -policykit -sasl (-selinux) -uml -virtualbox -xen" 0 kB 

libvirtd正在运行:

 # ps ax | grep [v]irt 30484 ? Sl 0:00 /usr/sbin/libvirtd -d 30735 ? S 0:00 /usr/sbin/dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254 --dhcp-lease-max=253 --dhcp-no-override 

还有什么我应该检查。 我如何debugging这个问题?

已解决

我会用–lsiten标志运行libvirtd。 可以在/etc/conf.d/libvirtd文件中指定它。 另外,我在configuration中发现了另一个错误:当在virt-manager中添加连接时,必须指定一个pipe理程序,所以url看起来像quemu+tsl://user@host/system ,而不仅仅是quemu+tsl://user@host/

你的调查的起点应该在这里:

它不侦听端口16514:lsof -i tcp:16514什么都不打印

这是一个相当低级别的问题:守护程序不会侦听TCP端口。

您应该检查任何可能指示错误的日志消息,或者在terminal中手动启动守护程序以查看它所说的内容。