搜索

第 18 章 客户机的远程管理

download PDF
本节介绍如何远程管理您的客户机。

18.1. 传输模式

对于远程管理,libvirt 支持以下传输模式:

传输层安全性(TLS)

传输层安全性 TLS 1.0(SSL 3.1)经过验证和加密 TCP/IP 套接字,通常在公共端口号上侦听。要使用此功能,您需要生成客户端和服务器证书。标准端口为 16514。具体步骤请查看 第 18.3 节 “通过 TLS 和 SSL 进行远程管理”

SSH

通过安全 Shell 协议(SSH)连接进行传输。libvirt 守护进程(libvirtd)必须在远程计算机上运行。端口 22 必须处于打开状态才能进行 SSH 访问。您应该使用某种类型的 SSH 密钥管理(例如,ssh-agent 实用程序),或者会提示您输入密码。具体步骤请查看 第 18.2 节 “使用 SSH 进行远程管理”

Unix 套接字

UNIX 域套接字只能在本地机器上访问。套接字未加密,使用 UNIX 权限或 SELinux 进行身份验证。标准套接字名称是 /var/run/libvirt/libvirt-sock/var/run/libvirt/libvirt-sock-ro (用于只读连接)。

ext

ext 参数用于任何可以在 libvirt 范围外面连接到远程机器的外部程序。不支持此参数。

TCP

未加密的 TCP/IP 套接字.不建议在生产环境中使用,这通常是禁用的,但管理员可以使它进行测试或在可信网络中使用。默认端口为 16509。

如果没有指定其他默认传输,则默认传输是 TLS。

远程 URI

virshlibvirt 使用统一资源标识符(URI)来连接远程主机。URI 也可搭配 --connect 参数用于 virsh 命令,以便在远程主机上执行单个命令或迁移。通过采用普通本地 URI 和添加主机名或传输名称来形成远程 URI。作为特殊情况,使用 URI 方案 'remote' 将指示远程 libvirtd 服务器探测到最佳管理程序驱动程序。这等同于为本地连接传递 NULL URI

libvirt URI 采用常规形式(用方括号"[]"内容代表可选功能):
driver[+transport]://[username@][hostname][:port]/path[?extraparameters]
请注意,如果虚拟机监控程序(驱动程序)是 QEMU,则必须路径。
以下是有效的远程 URI 示例:
  • qemu://hostname/
必须提供传输方法或主机名以外部位置为目标。如需更多信息,请参阅 libvirt 上游文档

远程管理参数示例

  • 使用 SSH 传输和 SSH 用户名 virtuser 连接到名为 host2 的远程 KVM 主机。每个连接的 connect 命令都是 connect [URI] [--readonly]。有关 virsh connect 命令的详情请参考 第 20.4 节 “使用 virsh Connect 连接到管理程序”
    qemu+ssh://virtuser@host2/
  • 使用 TLS 连接到名为 host2 的主机上的远程 KVM 管理程序。
    qemu://host2/

测试示例

  • 使用非标准 UNIX 套接字连接到本地 KVM 管理程序。本例中明确提供了 UNIX 套接字的完整路径。
    qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
  • 使用非加密 TCP/IP 连接到服务器,在端口 5000 上使用 IP 地址 10.1.1.10 连接到 libvirt 守护进程。这会使用带有默认设置的测试驱动程序。
    test+tcp://10.1.1.10:5000/default

额外的 URI 参数

可以将额外参数附加到远程 URI。下表介绍了可识别的参数。所有其他参数将被忽略。请注意,参数值必须是 URI 转义(即问号(?)),在参数和特殊字符转换为 URI 格式之前。

表 18.1. 额外 URI 参数
Name 传输模式 描述 用法示例
名称 所有模式 传递给远程 virConnectOpen 功能的名称。名称通常通过从远程 URI 中删除 传输主机名端口号用户名 和额外参数而形成,但是在某些非常复杂的情况下,最好地提供名称。 name=qemu:///system
命令 SSH 和 ext external 命令.对于 ext 传输来说,这是必需的。对于 ssh,默认为 ssh。为该命令搜索 PATH。 command=/opt/openssh/bin/ssh
socket UNIX 和 ssh UNIX 域套接字的路径,它将覆盖默认值。对于 ssh 传输,这会被传递给远程 netcat 命令(请参见 netcat)。 socket=/opt/libvirt/run/libvirt/libvirt-sock
no_verify tls 如果设置为非零值,这会禁用客户端检查服务器证书。请注意,要禁用客户端的证书或 IP 地址的服务器检查,您必须更改 libvirtd 配置。 no_verify=1
no_tty ssh 如果设置为非零值,这会停止 ssh。如果无法登录远程机器,则停止 ssh。当您无法访问终端 时,使用它。 no_tty=1
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.