Gentoo
在 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/
您的調查起點應該在這裡:
而且它不監聽埠 16514: lsof -i tcp:16514 什麼也不列印
這是一個相當低級的問題:守護程序不在 tcp 埠上偵聽。
您應該檢查任何可能指示錯誤的日誌消息,或者在終端中手動啟動守護程序以查看它的內容…