在 gentoo 上设置 libvirt 进行远程访问:未监听 tls 端口

在 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

以下是我当前的服务器 libvirtd 配置(删除了注释):

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” 是我 iptables 配置中 -j LOG 规则记录的丢弃数据包。但是,我尝试过允许所有 iptables 规则 - 没有任何变化。

证书似乎也很好(可能不是?):

# 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

我还应该检查其他什么。如何调试此问题?

解决了

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

答案1

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

并且它不监听端口 16514: lsof -i tcp:16514 不打印任何内容

这是一个相当低级的问题:守护进程没有监听 TCP 端口。

您应该检查任何可能指示错误的日志消息,或者在终端中手动启动守护进程以查看它说了什么......

相关内容