20.37.15. 为客户机虚拟机设置静态 IP 地址


如果客户机虚拟机被配置为从 DHCP 获取其 IP 地址,但您仍需要它具有可预测的静态 IP 地址,则可使用以下步骤修改 libvirt 使用的 DHCP 服务器配置。这个步骤需要您知道客户机接口的 MAC 地址,以便进行这个更改。因此,您需要在客户机创建之后执行操作,或在创建客户机之前决定 guest 的 MAC 地址,然后在创建客户机虚拟机时手动设置相同的地址。
另外,您应该注意,这个过程只适用于连接到 libvirt 虚拟网络的客户机接口,其转发模式为 "nat""route",或者根本没有转发模式。如果网络配置了 forward mode="bridge""hostdev",则此过程将无法正常工作。在这样的情形中,DCHP 服务器位于网络中的其他位置,因此不受 libvirt 的控制。在这种情况下,需要在远程 DHCP 服务器上进行静态 IP 条目。要做到这一点,查看服务器提供的文档。

过程 20.5. 设置静态 IP 地址

此过程在主机物理机器上执行。
  1. 检查客户机 XML 配置文件

    通过运行 virsh domiflist guest1 命令显示客户机的网络配置设置。替换您的虚拟机的名称,用 guest1 代替。此时会显示一个表。查看 Source 列。这是您的网络的名称。在本例中,网络名为 default。这个名称将用于剩余的步骤和 MAC 地址。
    # virsh domiflist guest1
    Interface  Type       Source     Model       MAC
    -------------------------------------------------------
    vnet4      network    default    virtio      52:54:00:48:27:1D
    
    
    Copy to Clipboard Toggle word wrap
  2. 验证 DHCP 范围

    您所设置的 IP 地址必须在为网络指定的 dhcp 范围内。另外,它还不得与网络上的任何其他现有静态 IP 地址冲突。要检查可用地址以及已使用的地址范围,请在主机中使用以下命令:
    # virsh net-dumpxml default | egrep 'range|host\ mac'
    
    <range start='198.51.100.2' end='198.51.100.254'/>
    <host mac='52:54:00:48:27:1C:1D' ip='198.51.100.2'/>
    
    Copy to Clipboard Toggle word wrap
    您看到的输出将与示例不同,您可能会看到更多行和多个主机 mac 行。每个 guest 静态 IP 地址都将有一行。
  3. 设置静态 IP 地址

    在主机计算机上运行以下命令,将 default 替换为网络的名称。
    # virsh net-update default add ip-dhcp-host '<host mac="52:54:00:48:27:1D" ip="198.51.100.3"/>' --live --config
    Copy to Clipboard Toggle word wrap
    live 选项允许此更改立即发生,-- config 选项则可永久保留更改。在您使用有效的 IP 和 MAC 地址时,此命令还将适用于尚未创建的客户机虚拟机。MAC 地址应该是有效的单播 MAC 地址(由 分隔的6 位十六进制对,第一个数字对为偶数);当 libvirt 创建新的随机 MAC 地址时,它会将 52:54:00 用于前三个数字对,建议遵照此惯例。
  4. 重启接口(可选)

    如果 guest 虚拟机当前正在运行,则需要强制客户端虚拟机重新请求 DHCP 地址。如果 guest 未运行,您下次启动时新的 IP 地址将实施。要重启接口,在主机机器中输入以下命令:
    # virsh domif-setlink guest1 52:54:00:48:27:1D down
    # sleep 10
    # virsh domif-setlink guest1 52:54:00:48:27:1D up
    Copy to Clipboard Toggle word wrap
    该命令使客户机虚拟机的操作系统认为以太网电缆没有被插入,然后在十秒后重新插入。sleep 命令非常重要,因为许多 DHCP 客户端允许简短断开电缆,而无需重新请求 IP 地址。十秒足够长,以便 DHCP 客户端忘记旧的 IP 地址,并在执行命令后请求一个新地址。如果因某种原因命令失败,则必须从客户机操作系统的管理界面重置 guest 的接口。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat