使用virsh远程连接主机遇到的问题

这篇具有很好参考价值的文章主要介绍了使用virsh远程连接主机遇到的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

The URI Failed to Connect to the Hypervisor – How to fix common errors

by Gayathri R Nayak | Mar 16, 2021

Are you stuck with the error ‘The URI Failed to Connect to the Hypervisor’ and trying to find a solution for it? You are at the right place.

Different errors can occur when connecting to the server (for example, when running virsh).

Here at Bobcares, we have seen several such hypervisor-related errors as part of our Server Management Services for web hosts and online service providers.

Today we’ll see the errors that occur when the URI fails to connect to the hypervisor.

The URI Failed to Connect to the Hypervisor – How to fix common errors

Now let’s take a look at how our Support Engineers resolve the errors related to the Hypervisor connection.

1. Cannot read CA certificate

The following error (or similar) appears when running the below command.

$ virsh -c qemu://$hostname/system_list
error: failed to connect to the hypervisor
error: Cannot read CA certificate ‘/etc/pki/CA/cacert.pem’: No such file or directory

Cause

This error can occur due to different reasons that include an incorrectly specified URI or a connection that is not configured.

Solution

* Incorrectly specified URI

When specifying qemu://system or qemu://session as a connection URI, virsh attempts to connect to host names’ system or session respectively. Because virsh recognizes the text after the second forward slash as the host.

So we use three forward slashes to connect to the localhost. For example, specifying qemu:///system instructs virsh to connect to the system instance of libvirtd on the localhost.

When we specify a hostname, the QEMU transport defaults to TLS. This results in certificates.

* Connection is not configured

The URI is correct (for example, qemu[+tls]://server/system) but the certificates are not set up properly on our machine.

2. Unable to connect to the server at ‘host:16509’: Connection refused

The connections fail while libvirtd should listen on TCP ports for connections. Here is the error message.

# virsh -c qemu+tcp://host/system
error: failed to connect to the hypervisor
error: unable to connect to server at ‘host:16509’: Connection refused

Even after changing the configuration in /etc/libvirt/libvirtd.conf, the libvirt daemon is not listening on TCP ports:

# grep listen_ /etc/libvirt/libvirtd.conf
listen_tls = 1
listen_tcp = 1
listen_addr = “0.0.0.0”

However, the TCP ports for libvirt are still not open after changing configuration:

# netstat -lntp | grep libvirtd

Cause

Here, the libvirt daemon was started without the –listen option. So, we verify this by running the below command:

# ps aux | grep libvirtd
root 10749 0.1 0.2 558276 18280 ? Ssl 23:21 0:00 /usr/sbin/libvirtd

As a result, the output does not contain the –listen option.

Solution

We start the daemon with the –listen option. For that, we modify the /etc/sysconfig/libvirtd file and uncomment the below line:

# LIBVIRTD_ARGS=”–listen”

Then, we restart the libvirtd service by running the below command:

# /bin/systemctl restart libvirtd.service

3. Authentication Failed

When running a command, the following error (or similar) appears:

$ virsh -c qemu://$hostname/system_list
error: failed to connect to the hypervisor
error: authentication failed: authentication failed

Cause

Sometimes, the authentication may fail even when the correct credentials are used. This can happen when the SASL authentication is not configured.

Solution

First, we edit the /etc/libvirt/libvirtd.conf file and set the value of the auth_tcp parameter to sasl. Then we verify using the below command:

# cat /etc/libvirt/libvirtd.conf | grep auth_tcp
auth_tcp = “sasl”

Next, we edit the /etc/sasl2/libvirt.conf file and add the following lines to the file:

mech_list: digest-md5
sasldb_path: /etc/libvirt/passwd.db

Also, we ensure the cyrus-sasl-md5 package is installed by running:

# yum install cyrus-sasl-md5

After that, we restart the libvirtd service. For that, we run the below command:

# systemctl restart libvirtd

Finally, we set a user name and password for libvirt SASL:

# saslpasswd2 -a libvirt 1

4. Permission Denied

The following error (or similar) appears when running a virsh command as a non-root user:

$ virsh -c qemu://$hostname/system_list
error: Failed to connect socket to ‘/var/run/libvirt/libvirt-sock’: Permission denied
error: failed to connect to the hypervisor

Solution

We edit the /etc/libvirt/libvirt.conf file and add the following lines to the file:

#unix_sock_group = “libvirt”
#unix_sock_ro_perms = “0777”
#unix_sock_rw_perms = “0770”

Then we restart the libvirtd service:文章来源地址https://www.toymoban.com/news/detail-424994.html

# systemctl restart libvirtd

到了这里,关于使用virsh远程连接主机遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows10使用Xrdp远程桌面连接Ubuntu主机【不稳定】

    Ubuntu 服务器通常使用命令行进行管理,并且默认没有安装桌面环境。如果你正在运行 Ubuntu 桌面版,忽略这一步。 在 Ubuntu 源仓库有很多桌面环境供你选择。一个选择是安装 Gnome,它是 Ubuntu 20.04 的默认桌面环境。另外一个选项就是安装 xfce。它是快速,稳定,并且轻量的桌面

    2024年02月06日
    浏览(52)
  • python网络编程:处理socket报错“ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。”的问题

    由于这个问题网上的资料特别少,所以在这里记录一下。 当使用socket以udp形式向对方发送数据时(局域网),如果对方的ip和端口未开启,导致未接收,然后使用socket接收时就会出现一串报错信息 产生这个信息的原因是因为发送的信息没有传输成功,而报错的提示会产生在之

    2024年02月09日
    浏览(43)
  • Linux终端远程连接不上服务器的问题解决,报错:Could not connect to ... (port 22): Connection failed.

    第一种:主机IP发生变更(我是这种情况),ifconfig查看一下并重连 第二种:端口号不同导致   此处引用其他人的博客[ESC]Linux终端远程连接不上服务器的问题解决,报错:Could not connect to ... (port 22): Connection failed._could not connect to \\\'47.96.76.165\\\' (port 22): con_哟米 2000的博客-CSDN博客

    2024年02月07日
    浏览(54)
  • VScode远程连接主机

    一、前期准备 1、Windows安装VSCode; 2、在VSCode中安装PHP Debug插件; 3、安装好Docker 4、 在容器中安装Xdebug ①写一个展现phpinfo的php文件 ②在浏览器上打开该文件 ③复制所有信息丢到Xdebug: Installation instructions result ④提交之后会给出合适的版本并给出安装教程 5.安装Remote-SSH 6.尝

    2024年02月10日
    浏览(42)
  • Linux SSH 远程连接主机,并执行命令

    应用场景 当需要远程到另一台Linux上,并在另一台机器上执行 Shell 命令,则需要注意命令的书写格式 示例说明 远程到 192.158.157.47 机器上,并执行命令 cd /tmp ./zabbixagent_install.sh echo Success 1、错误方式 因为命令间用 拼接,表示多条命令是顺序执行,所以, ssh命令和后续的命令

    2024年02月14日
    浏览(49)
  • ElasticSearch远程主机强迫关闭了一个现有的连接

    问题描述: 项目集成了ElasticSearch实现全文检索,项目启动可正常进行创建索引、检索等操作,长时间无操作后再次请求ES服务报错 远程主机强迫关闭了一个现有的连接。 调整 ElasticSearchConfig配置,问题解决。 调整前代码: 调整后代码:

    2024年02月06日
    浏览(38)
  • 如何通过ssh远程连接自己的主机(Linux)?

    可以看到,有多块网卡在工作,其中eno1是有线网卡,UP表示开启了,但没有运行(RUNNING),因为此时主机并没有连接有线网络。 lo是本地虚拟网卡,所有设备都为127.0.0.1,可以在没有网络的环境中用来测试。 wlp4s0是无线网卡,它被开启(UP),且正在工作(RUNNING)。第二行

    2024年02月04日
    浏览(53)
  • 使用git推送到远程仓库的时候报错Failed to connect to 127.0.0.1 port 7890: 拒绝连接

    问题 :使用git推送到远程仓库的时候报错Failed to connect to 127.0.0.1 port 7890: 拒绝连接 说明 :如果没有使用其他端口连接网络那么就看看是否在git中配置了proxy 解决方案 :看看之前有无代理 然后关掉这个代理 查看是否删除 git config --global -l 

    2024年01月18日
    浏览(47)
  • 遇到传统SLAAC地址的主动主机跟踪的问题该怎么解决?

    SLAAC是无状态地址自动配置。为应对传统SLAAC地址的保密性问题,IETF提出了RFC 4941“IPv6自动配置无状态地址的保密性扩展”;它通常称为“临时地址”。RFC 4941标准化的方案主要通过以下方式实现: 1、临时地址是使用随机IID不断重复生成的IPv6地址。 2、这些临时地址包含传统的

    2024年02月07日
    浏览(45)
  • Jconsole 开启远程连接遇到的一些坑

    最近在学习 JVM,其中涉及到性能、内存等指标分析需要使用工具分享,Java 提供了几个可视化工具来监控和管理 Java 应用,比如 Jconsole、JVisual、JMC,他们以图形化的界面实时的监控程序各种性能指标以及内存、CPU 的使用情况。 Jconsole、JVisual、JMC 可视化工具,调用本地监控直

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包