16.3. 配置外部可见虚拟机


在很多情况下,默认的 VM 网络配置已经足够了。但是,如果您需要调整配置,您可以使用命令行(CLI)或 RHEL 10 web 控制台进行此操作。

16.3.1. 使用命令行配置外部可见的虚拟机

默认情况下,新创建的虚拟机连接到使用 virbr0 (主机上默认的虚拟网桥)的 NAT 类型网络。这可确保虚拟机可以使用主机的网络接口控制器(NIC)来连接到外部网络,但无法从外部系统访问虚拟机。

如果您需要虚拟机出现在与虚拟机监控程序相同的外部网络中,则必须使用桥接模式。为此,请将虚拟机连接到连接到 hypervisor 物理网络设备的网桥设备。

先决条件

  • 带有默认 NAT 设置的现有虚拟机
  • 管理程序的 IP 配置。这随着主机的网络连接而变化。例如,这个流程使用这样一种场景,其中主机使用以太网线连接到网络,主机的物理 NIC MAC 地址被分配给 DHCP 服务器上的一个静态 IP。因此,以太网接口被视为 hypervisor IP。

    要获取以太网接口的 IP 配置,请使用 ip addr 工具:

    # ip addr
    [...]
    enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 54:ee:75:49:dc:46 brd ff:ff:ff:ff:ff:ff
        inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic noprefixroute enp0s25
    Copy to Clipboard Toggle word wrap

流程

  1. 为主机上的物理接口创建和设置网桥连接。具体步骤请参阅 配置网络桥接

    请注意,在使用静态 IP 分配的场景中,您必须将物理以太网接口的 IPv4 设置移到网桥接口。

  2. 修改虚拟机的网络,以使用创建的桥接接口。例如,以下设置 testguest 使用 bridge0

    # virt-xml testguest --edit --network bridge=bridge0
    Domain 'testguest' defined successfully.
    Copy to Clipboard Toggle word wrap
  3. 启动虚拟机。

    # virsh start testguest
    Copy to Clipboard Toggle word wrap
  4. 在客户机操作系统中,调整系统网络接口的 IP 和 DHCP 设置,就好像虚拟机是与 hypervisor 位于同一网络中的另一台物理系统一样。

    这的具体步骤因虚拟机使用的客户机操作系统而异。例如,如果客户机操作系统是 RHEL 10,请参阅 配置以太网连接

验证

  1. 确保新创建的网桥正在运行,并且包含主机的物理接口和虚拟机的接口。

    # ip link show master bridge0
    2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UP mode DEFAULT group default qlen 1000
        link/ether 54:ee:75:49:dc:46 brd ff:ff:ff:ff:ff:ff
    10: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master bridge0 state UNKNOWN mode DEFAULT group default qlen 1000
        link/ether fe:54:00:89:15:40 brd ff:ff:ff:ff:ff:ff
    Copy to Clipboard Toggle word wrap
  2. 确保虚拟机显示在与 hypervisor 相同的外部网络上:

    1. 在客户机操作系统中,获取系统的网络 ID。例如,如果它是 Linux 客户机:

      # ip addr
      [...]
      enp0s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
          link/ether 52:54:00:09:15:46 brd ff:ff:ff:ff:ff:ff
          inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic noprefixroute enp0s0
      Copy to Clipboard Toggle word wrap
    2. 从连接到本地网络的外部系统,使用获取的 ID 连接到虚拟机。

      # ssh root@192.0.2.1
      root@192.0.2.1's password:
      Last login: Mon Sep 24 12:05:36 2019
      root~#*
      Copy to Clipboard Toggle word wrap

      如果连接正常工作,则网络已配置成功。

故障排除

  • 在某些情况下,比如当虚拟机托管在客户端上时使用客户端到站点的 VPN ,使用桥接模式使您的虚拟机可用于外部位置是不可能的。

    要临时解决这个问题,您可以使用 nftables为虚拟机设置目标 NAT

16.3.2. 使用 web 控制台配置外部可见的虚拟机

默认情况下,新创建的虚拟机连接到使用 virbr0 (主机上默认的虚拟网桥)的 NAT 类型网络。这可确保虚拟机可以使用主机的网络接口控制器(NIC)来连接到外部网络,但无法从外部系统访问虚拟机。

如果您需要虚拟机出现在与虚拟机监控程序相同的外部网络中,则必须使用桥接模式。为此,请将虚拟机连接到连接到 hypervisor 物理网络设备的网桥设备。要使用 RHEL 10 web 控制台进行此操作,请按照以下说明操作。

先决条件

  • 已安装 RHEL 10 web 控制台。

    具体步骤请参阅安装并启用 Web 控制台

  • Web 控制台 VM 插件 安装在您的系统上
  • 带有默认 NAT 设置的现有虚拟机
  • 管理程序的 IP 配置。这随着主机的网络连接而变化。例如,这个流程使用这样一种场景,其中主机使用以太网线连接到网络,主机的物理 NIC MAC 地址被分配给 DHCP 服务器上的一个静态 IP。因此,以太网接口被视为 hypervisor IP。

    要获取以太网接口的 IP 配置,请转至 web 控制台中的 Networking 选项卡,并查看 接口 部分。

流程

  1. 为主机上的物理接口创建和设置网桥连接。具体步骤请参阅在 web 控制台中配置网络桥接

    请注意,在使用静态 IP 分配的场景中,您必须将物理以太网接口的 IPv4 设置移到网桥接口。

  2. 修改虚拟机的网络,以使用桥接接口。在虚拟机的 Network Interfaces 选项卡中:

    1. 点击 Add Network Interface
    2. Add Virtual Network Interface 对话框中:

      • Interface Type 设成 Bridge to LAN
      • Source 到新创建的网桥,比如 bridge0
    3. Add
    4. 可选:对于连接到虚拟机的所有其他接口,点 Unplug
  3. 点击 Run 来启动虚拟机。
  4. 在客户机操作系统中,调整系统网络接口的 IP 和 DHCP 设置,就好像虚拟机是与 hypervisor 位于同一网络中的另一台物理系统一样。

    具体步骤将因虚拟机使用的客户机操作系统而异。例如,如果客户机操作系统是 RHEL 10,请参阅 配置以太网连接

验证

  1. 在主机 Web 控制台的 Networking 选项卡中,单击新创建的网桥所在的行,以确保它正在运行,并且包含主机的物理接口和虚拟机的接口。
  2. 确保虚拟机显示在与 hypervisor 相同的外部网络上。

    1. 在客户机操作系统中,获取系统的网络 ID。例如,如果它是 Linux 客户机:

      # ip addr
      [...]
      enp0s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
          link/ether 52:54:00:09:15:46 brd ff:ff:ff:ff:ff:ff
          inet 192.0.2.1/24 brd 192.0.2.255 scope global dynamic noprefixroute enp0s0
      Copy to Clipboard Toggle word wrap
    2. 从连接到本地网络的外部系统,使用获取的 ID 连接到虚拟机。

      # ssh root@192.0.2.1
      root@192.0.2.1's password:
      Last login: Mon Sep 24 12:05:36 2019
      root~#*
      Copy to Clipboard Toggle word wrap

      如果连接正常工作,则网络已配置成功。

故障排除

  • 在某些情况下,比如当虚拟机托管在客户端上时使用客户端到站点的 VPN ,使用桥接模式使您的虚拟机可用于外部位置是不可能的。

16.3.3. 替换 macvtap 连接

macvtap 是一个 Linux 网络设备驱动程序,其创建一个虚拟网络接口,虚拟机通过这个网络接口可直接访问主机上的物理网络接口。RHEL 10 中支持使用 macvtap 连接。

但是,与其他可用的虚拟机(VM)网络配置相比,macvtap 的性能欠佳,而且更难以正确设置。因此,如果您的用例没有明确需要 macvtap,请使用不同的受支持的网络配置。

如果您在虚拟机中使用 macvtap 模式,请考虑使用以下网络配置:

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat