最近在实验室新配置了一台用于开发的服务器,一台服务器上建立出多个虚拟机,然后多人连接到这台服务器上的虚拟机来进行开发.由于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通的话证明设置成功.