Ubuntu22 Server: 配置网桥,让虚拟机从路由器获取IP

2023-10-18 10:45:22 浏览数 (2)

最近在实验室新配置了一台用于开发的服务器,一台服务器上建立出多个虚拟机,然后多人连接到这台服务器上的虚拟机来进行开发.由于Linux默认的虚拟网络是NAT模式,需要配置路由转发等,又由于我们的路由器不支持静态路由规则,因此远程连接虚拟机的时候较为麻烦.从而考虑建立网桥,让虚拟机直接从路由器获取IP,而不是从服务器的虚拟网关获取.

由于从Ubuntu18以来,网络管理上面改用了Netplan,上网查询了许多方法,发现各说各的.因此写一篇博客记录一下.

在服务器上配置网桥

网桥类似交换机的功能,在网络的第二层上转发数据.但是Linux的网桥具有一定的三层功能,比如说,它也具有IP.

进入/etc/netplan文件夹,编辑默认的配置文件00-installer-config.yaml

在里面把配置改成这样:

代码语言:javascript复制
network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      dhcp4: no
  bridges:
    kvmbr0:
      interfaces: [enp4s0]
      dhcp4: no
      addresses:
        - 192.168.199.170/24
      routes:
        - to: default
          via: 192.168.199.1
      nameservers:
          addresses: [8.8.8.8, 114.114.114.114]

我们要新建一个叫做kvmbr0的网桥,使用enp4s0这个网卡作为网桥的网卡.我们的配置文件就完成了这个作用,并且为网桥分配了局域网IP 192.168.199.170 ,局域网内的路由器的ip是192.168.199.1.大家按照实际清情况进行修改即可.请注意,一旦把网卡绑定到网桥,我们就不能再直接操作这个网卡的ip,而是要改网桥的ip.

修改保存后,输入以下命令使更改生效:

代码语言:javascript复制
sudo netplan apply

接着我们输入ifconfig,可以看到网桥已经出现了.

配置虚拟机的网卡

然后我们在virt manager里面配置虚拟机的网卡所连接到的网络:

接着在虚拟机里面输入

代码语言:javascript复制
sudo netplan apply

然后输入ifconfig,就能看到从局域网路由器获取的ip了

在虚拟机里面固定ip

如果我们想要这个ip不变,那么就可以进入/etc/netplan文件夹,编辑默认的配置文件00-installer-config.yaml

在里面把配置改成这样:

代码语言:javascript复制
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: no
      addresses:
        - 192.168.199.129/24
      routes:
        - to: default
          via: 192.168.199.1
      nameservers:
          addresses: [8.8.8.8, 114.114.114.114]

修改保存后,输入以下命令使更改生效:

代码语言:javascript复制
sudo netplan apply

验证

在局域网内的电脑上,ping一下这个虚拟机的ip,可以ping通的话证明设置成功.

0 人点赞