kvm虚拟机的桥接网络配置

本文介绍了KVM虚拟机的三种网络连接方式:host-only、NAT和Bridge,并详细展示了如何在物理机与虚拟机之间建立桥接网络,实现二者在同一局域网内互访及访问互联网。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KVM 客户机网络连接有三种方式:

  -host-only:虚拟机使用的是当前计算机中的虚拟网卡,如VMWare Network Adaptor(这是VMWare的),仅主机模式,意思就是将所有的虚拟机组成一个局域网,不能和外界通信,不能访问Internet,其他主机也不能访问虚拟主机,安全性高,只能与本台真实机通信。

  -NAT方式: 

   - 网络地址转换模式:让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。

  -Bridge方式:

    - 虚拟网桥(Virtual Bridge):这网络模式下客户机与宿主机处于同一网络环境,类似于一台真实的宿主机,直接访问网络资源,设置好后客户机与互联网,客户机与主机之间的通信都很容易。

环境配置说明

在物理机上,利用KVM安装虚拟机,实现网桥通信

  • 物理机:Centos 7 操作系统,CPU支持虚拟化,自带KVM,0.10.2版本的virsh
  • 虚拟机:Centos 7.0 操作系统
  • 物理机IP地址为 10.6.2.136,虚拟机IP地址为10.6.2.137,网关地址为10.6.2.254

物理机配置:

1. 在物理机上创建文件

#touch /etc/sysconfig/network-scripts/ifcfg-br0
#vi /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.2.136       //设置为物理机所占有的ip地址
NETMASK=255.255.255.0
GATEWAY=10.0.2.254
DELAY=0
DNS1=202.201.133.30
DEVICE=br0
ONBOOT=yes

2. 编辑修改网络设备脚本文件,修改网卡设备eno1(entos7上默认网卡),可以先使用ifconfig或者ip a查看默认网卡,然后到 /etc/sysconfig/network-scripts/  中修改对应文件。

#vi /etc/sysconfig/network-scripts/ifcfg-eno1
HWADDR=24:37:E7:29:85:09
TYPE=Ethernet
BOOTPROTO=none   
#IPADDR=*.*.*.*  //不需要再手动分配地址
#GATEWAY=*.*.*.*
#DNS1=*.*.*.*
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno1
UUID=c0b648e4-9203-490a-b12e-fd41a5d374ea
ONBOOT=yes   //此处记得设置为yes
BRIDGE=br0   //绑定网桥

主要是把IPADDR,GATEWAY,DNS,NETMASK注释掉,并加上 BRIDGE=br0,将eno1绑定到网桥接口br0上。

3. 重启网络服务

systemctl restart network.service

4. 校验桥接网口

[root@localhost ~]# brctl show
bridge name          bridge id              STP enabled    interfaces
br0             8000.4437e6608506                   no         eno1
                                                              vnet0

 

虚拟机配置:

1. 用libvirt命令修改虚拟机xml配置文件 (t1是我创建的一台虚机),将虚拟机网络模式改为桥接。虚拟机先关机。

virsh edit t1
......
......
<interface type='bridge'>    <!--虚拟机网络连接方式-->
      <mac address='32:24:00:8b:f5:4c'/>
      <source bridge='br0'/>  <!-- 当前物理机网桥的名称-->
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
......
......

2.重启虚拟机后,修改虚拟机的网卡配置文件。先用ifconfig或者ip add命令查看默认的网卡

[root@localhost network-scripts]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ......
        ......  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        ......
        ......
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

以上显示说明默认网卡为eth0,因此修改文件 /etc/sysconfig/network-scripts/ifcfg-eth0, 如果没有该文件,则创建一个。

TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.0.2.137       //与物理机处于同一局域网
NETMASK=255.255.255.0
GATEWAY=10.0.2.254      //网关为物理机所在局域网网关
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
ONBOOT=yes   //不要忘记修改为yes

至此,kvm虚拟机便可上网

转载于:https://my.oschina.net/amui/blog/851797

### 设置KVM虚拟机的网络桥接配置 #### 准备工作 为了使KVM虚拟机能通过宿主机访问外部网络并获得静态IP地址,需先安装必要的软件包。这包括`qemu-kvm`, `libvirt-daemon-system`, `bridge-utils`等工具。 ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst ``` #### 创建Linux Bridge 创建名为`br0`的Linux网桥设备,并将其绑定到物理网卡上。假设当前系统的有线接口名称为`enp3s0`: 1. 编辑Netplan配置文件(通常位于`/etc/netplan/`目录下),例如对于Ubuntu 20.04及以上版本可能是`/etc/netplan/01-netcfg.yaml`: ```yaml network: version: 2 ethernets: enp3s0: dhcp4: no bridges: br0: interfaces: [enp3s0] addresses: ["192.168.1.x/24"] # 替换成实际想要分配给宿主机的固定IP地址 gateway4: "192.168.1.y" nameservers: addresses: [8.8.8.8, 8.8.4.4] parameters: stp: false forward-delay: 0 ``` 2. 应用新的网络配置: ```bash sudo netplan apply ``` 此时应该已经成功建立了名为`br0`的新网桥,并且该网桥被赋予了一个固定的IPv4地址[^3]。 #### 虚拟机网络设置 当启动一个新的KVM虚拟机时,可以通过命令行参数指定其使用上述创建好的网桥作为网络适配器。下面是一个简单的例子来展示如何利用`virt-install`命令创建带有桥接网络支持的Windows 10虚拟机: ```bash sudo virt-install \ --name windows10 \ --ram 4096 --vcpus=2 \ --cdrom=/path/to/windows.iso \ --disk size=50,bus=virtio \ --os-type=windows --os-variant=win10 \ --graphics vnc \ --network bridge=br0,model=virtio ``` 此操作会引导新创建的虚拟机连接至`br0`网桥,从而允许它像其他真实计算机一样接入局域网内并与之通信。 #### 测试连通性 完成以上步骤之后,可以在虚拟机内部尝试获取一个动态分配的IP地址或者手动设定一个静态IP地址。接着测试与其他机器之间的连通状况,比如执行如下指令查看是否能够正常解析域名和Ping通目标服务器: ```bash ping www.google.com ``` 如果一切顺利的话,则说明KVM虚拟机已正确设置桥接网络模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值