linux中KVM的网络设置

本文详细介绍了在Linux环境中为KVM设置网络的五种方法:使用界面管理工具、virsh命令、network scripts、编辑network scripts文件以及利用Nmcli工具。通过这些步骤,可以创建并配置NAT网络模式,实现虚拟机的网络连接。

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

ENV:

[root@Fedora ~]# uname -r
5.2.9-200.fc30.x86_64
[root@Fedora ~]# cat /etc/redhat-release 
Fedora release 30 (Thirty)

之前的文章写了安装KVM,但是对于网络的设置没有写,这里单独写下kvm的网络设置

源文章地址:How to Create and Configure Bridge Networking For KVM in Linux

这里也是翻译过程。

Method 1:用界面管理工具创建网络

位置:Edit > Connection Details > Virtual Networks

kvm网络

 

在左下方点击+加号添加网络 设置网络名称:

设置网络名称

 

点击forward下一步,设置虚拟ip信息

ip设置

 

forward下一步,是否使用ipv6,我选择不使用ipv6,如要使用ipv6,可以按要求输入ipv6的ip地址

ipv6选择

forward下一步,选择网络模式,  这里选NAT,要问网络模式,请自行        百度|google

nat模式

完成设置并保存,在左边可以看到新添加的网络。

信息

用命令查看

[root@Fedora ~]# brctl show virbr1
bridge name	bridge id		STP enabled	interfaces
virbr1		8000.525400c35fc9	yes		virbr1-nic

要问为什么是virbr1,请看上面最后一个图中Device后内容。

Method 2 使用virsh命令创建网络

创建xml文件,为了区分名称,写成 br20(可自行修改)

[root@Fedora ~]# vim br20.xml

将信息写入文件

<network>
  <name>br20</name>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='br20' stp='on' delay='0'/>
  <ip address='192.168.30.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.30.50' end='192.168.30.200'/>
    </dhcp>
  </ip>
</network>

将xml文件写入kvm网络中(这里的网络是关闭的,源文中是br10,可能需要关闭)

[root@Fedora ~]# virsh net-define br20.xml 
Network br20 defined from br20.xml

启用br20网络

[root@Fedora ~]# virsh net-start br20 
Network br20 started

设置成默认 网络

[root@Fedora ~]# virsh net-autostart br20
Network br20 marked as autostarted

查看网络是否启动

[root@Fedora ~]# virsh net-list --all
 Name      State    Autostart   Persistent
--------------------------------------------
 br10      active   yes         yes
 br20      active   yes         yes
 default   active   yes         yes

查看创建的网络信息

[root@Fedora ~]# ip addr show dev br20
9: br20: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:30:22:cd brd ff:ff:ff:ff:ff:ff
    inet 192.168.30.1/24 brd 192.168.30.255 scope global br20
       valid_lft forever preferred_lft forever

Method 3 通过network scripts创建(CentOS / RHEL / Fedora)

[root@Fedora ~]# cat /etc/sysconfig/network-scripts/ifcfg-br30
DEVICE=br30
STP=no
TYPE=Bridge
BOOTPROTO=none
DEFROUTE=yes
NAME=br30
ONBOOT=yes
DNS1=8.8.8.8
DNS2=192.168.40.1
IPADDR=192.168.40.3
PREFIX=24
GATEWAY=192.168.40.1

将桥接信息加入系统网卡配置文件中,我的是ifcfg_enp4s0f2,每个系统的不同,按自己系统名称调整

[root@Fedora ~]# vim /etc/sysconfig/network-scripts/ifcfg-enp4s0f2 

主要信息有:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br30

重启网络

[root@Fedora ~]# systemctl disable NetworkManager && systemctl stop NetworkManager
Removed /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.

启动网络:

[root@Fedora ~]# systemctl restart network
Failed to restart network.service: Unit network.service not found.

在这里启动错误,最后没办法,直接启动

[root@Fedora ~]# systemctl restart NetworkManager

这下成功了

查看下虚拟网络是否添加成功

[root@Fedora ~]# ip addr show dev br30
11: br30: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 36:45:ad:1e:c8:7a brd ff:ff:ff:ff:ff:ff
    inet 192.168.40.3/24 brd 192.168.40.255 scope global noprefixroute br30
       valid_lft forever preferred_lft forever

Method 4 编辑network scripts文件(Debian / Ubuntu)

这个方法没有测试。直接翻译:

cat >> /etc/network/interfaces<< EOF
auto br10 
iface br10 inet static
address 192.168.1.10
network 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
bridge_ports eth0
bridge_stp off
EOF

在eth0中添加信息

auto eth0
iface eth0 inet manual

重启网络

 sudo systemctl restart networking.service

Method 5 使用Nmcli tool

因有敏感信息,这里不发测试内容,直接翻译源文

$ sudo nmcli connection show 
NAME                UUID                                  TYPE      DEVICE 
enp1s0              498869bb-0d88-4a4c-a83a-c491d1040b0b  ethernet  enp1s0 
Wired connection 1  0977f29f-fa2e-3d7f-831c-6f41f8782be3  ethernet  enp7s0

删除不用网卡信息,

$ sudo nmcli connection delete 0977f29f-fa2e-3d7f-831c-6f41f8782be3
Connection 'Wired connection 1' (0977f29f-fa2e-3d7f-831c-6f41f8782be3) successfully deleted.

 

1.主要信息的设置

BR_NAME="br10"
BR_INT="enp7s0"
SUBNET_IP="192.168.30.10/24"
GW="192.168.30.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

设置内容这里不说明,想了解的看源文章

    BR_NAME: The name of the bridge to be created.
    BR_INT: the physical network device to be used as bridge slave.
    SUBNET_IP: IP address and subnet assigned to the bridge created.
    GW: The IP address of the default gateway
    DNS1 and DNS2: IP addresses of DNS servers to be used.

2.设置新的信息

sudo nmcli connection add type bridge autoconnect yes con-name ${BR_NAME} ifname ${BR_NAME}

输出如下:

Connection 'br0' (be6d4520-0257-49c6-97c2-f515d6554980) successfully added.

设置ip信息

sudo nmcli connection modify ${BR_NAME} ipv4.addresses ${SUBNET_IP} ipv4.method manual
sudo nmcli connection modify ${BR_NAME} ipv4.gateway ${GW}
sudo nmcli connection modify ${BR_NAME} ipv4.dns ${DNS1} +ipv4.dns ${DNS2}

添加网络连接

sudo nmcli connection delete ${BR_INT}
sudo nmcli connection add type bridge-slave autoconnect yes con-name ${BR_INT} ifname ${BR_INT} master ${BR_NAME}

输出信息:

Connection 'enp7s0' (f033dbc9-a90e-4d4c-83a9-63fd7ec1cdc1) successfully added.

查看连接

$ sudo nmcli connection show 
NAME    UUID                                  TYPE      DEVICE 
br0     be6d4520-0257-49c6-97c2-f515d6554980  bridge    br0    
enp1s0  498869bb-0d88-4a4c-a83a-c491d1040b0b  ethernet  enp1s0 
enp7s0  f033dbc9-a90e-4d4c-83a9-63fd7ec1cdc1  ethernet  enp7s0 

启动网络

$ sudo nmcli connection up br10
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

查看运行状态

sudo nmcli connection show br10

查看ip信息

$ ip ad
3: enp7s0:  mtu 1500 qdisc fq_codel master br10 state UP group default qlen 1000
     link/ether 52:54:00:a2:f6:a8 brd ff:ff:ff:ff:ff:ff
 4: br10:  mtu 1500 qdisc noqueue state UP group default qlen 1000
     link/ether 52:54:00:a2:f6:a8 brd ff:ff:ff:ff:ff:ff
     inet 192.168.122.10/24 brd 192.168.122.255 scope global noprefixroute br10
        valid_lft forever preferred_lft forever
     inet6 fe80::4f2f:ce6d:dc6b:2101/64 scope link noprefixroute 
        valid_lft forever preferred_lft forever

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值