kvm虚拟机的网络配置有两种模式:桥接模式和NAT模式。

一、两种模式区别如下:

1)NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,所以一般不会用到。
2)Bridge:也就是桥接模式,这种模式允许虚拟机像一个独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。

二、NAT模式配置

Nat模式配置比较简单,只需要在启动虚拟机后,更改其虚拟机的网卡配置文件,将/etc/sysconfig/network-scripts/ifcfg-xxx“中的ONBOOT”配置项默认的“no”改为“yes”即可实现ping通外网;(它是借助KVM服务器的防火墙规则及IPtables规则来实现的,关闭KVM服务器的防火墙不会影响虚拟机ping外网,但是其iptables的默认配置必须存在,否则,虚拟机无法ping通外网)。
在这里插入图片描述
三、Bridge模式配置

系统如果安装了桌面环境,网络会由NetworkManager进行管理,NetworkManager不支持桥接,需要关闭NetworkManger:

[root@kvm ~]# systemctl stop NetworkManager #停止此服务
or
[root@kvm ~]# chkconfig NetworkManager off
[root@kvm ~]# chkconfig network on service
[root@kvm ~]# NetworkManager stop service network start

创建桥口并绑定管理口:

[root@localhost ~]# virsh iface-bridge enp7s0 br0
Created bridge br0 with attached device enp7s0
Bridge interface br0 started

查看是否创建成功:
在这里插入图片描述
编辑虚拟机的配置文件,使用新的网桥:

[root@kvm ~]# virsh destroy test01 #关闭虚拟机
[root@kvm ~]# virsh edit test01 #编辑虚拟机的配置文件,定位到interface

 <interface type='bridge'>                        #将此处改为bridge
 <mac address='52:54:00:a9:cc:5f'/>      #删除Mac地址这行
 <source bridge='br0'/>                           #将此处更改为这样
 #保存退出即可

至此就配置完成了,运行虚拟机,更改其网卡配置文件,注意:虚拟机中配置的网关和kvm宿主机是一样的,它们现在处于同一个网段;

虚拟机的网卡配置文件如下:

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s31f6
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.169.8.199
PREFIX=24
GATEWAY=192.169.8.254
DNS1=114.114.114.114
DNS2=8.8.8.8
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

保存退出后, systemctl restart network重启网络服务,即可实现虚拟机和外网互相通信了!

另一种桥模式配置方法:

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none #将这项改为none
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
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0 #添加该行,若有UUID的配置项,建议删除。

#将网卡ens33的文件复制一份改名为br0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge #将type改为Bridge
BOOTPROTO=static #这里根据实际情况改为static或dhcp
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
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0 #改名字
DEVICE=br0 #改名字
ONBOOT=yes
IPADDR=192.168.1.1 #该ip将为宿主机的IP地址
GATEWAY=192.168.1.254

[root@localhost ~]# systemctl restart network #重启网络服务
[root@localhost ~]# ifconfig #确认IP地址信息
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::db0f:ab79:54a1:241b prefixlen 64 scopeid 0x20
ether 00:0c:29:1a:e0:46 txqueuelen 1000 (Ethernet)
RX packets 50 bytes 4155 (4.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 58 bytes 7046 (6.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:1a:e0:46 txqueuelen 1000 (Ethernet)
RX packets 1062 bytes 95264 (93.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 688 bytes 81579 (79.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐