在Oracle VM VirtualBox中为多个Ubuntu 20.04.4虚拟机分配静态IP地址
一、在全局设定下建立NatNetwork。
有几个虚拟机就建立几个NAT(网络地址转换模式),NAT是一种通过主机进行端口映射。就是让虚拟机能够与外部网络链接,但是如果虚拟机不主动发出请求的话,外部网络不会连入虚拟机。


出了点小问题,前面两个NAT随便配置之后,虚拟机可以ping通外网,配置到第三个虚拟机NAT的时候,发现虚拟机3网卡一的地址不再跟随NAT网络配置走,导致无法ping通外网。
网上也找不到参考,只好将NAT网络配置的跟虚拟机3网卡一的ip地址一样了,如下所示,首先 ip addr 查询网卡一IP地址为 192.20.0.4,然后将第三个NAT网络配置为 192.20.0.0/24。


提示:NAT网络配置 192.20.0.0/24 ,IP地址斜线后面的数字的24,代表子网掩码中1的位数为24,子网掩码的二进制位数共有32位,配置为24位表示子网掩码位255.255.255.0,用二进制表示位11111111 11111111 11111111 00000000 ,这个NAT网络的网段为192.20.0.0,这个网段的IP地址从192.20.0.1开始,到192.20.0.254结束。
再举个例子, 192.168.1.0/28表示的意思是网段是192.168.1.0,子网掩码为:255.255.255.240,用二进制表示为:11111111 11111111 11111111 11110000。
24位说明网络位是24位,那么主机位就是32-24=8位了,则子网的IP个数是254个,即是从00000001到11111110。
28位说明网络位是28位,那么主机位4位,则子网的IP个数是14个,即是从00000001到00001110。
二、主机网络管理器中,建立Host-Only网络
在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。
提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。
在host-only模式下,虚拟系统的TCP/IP配置信息(如IP地址、网关地址、DNS服务器等),都是由VMnet1(host-only)虚拟网络的DHCP服务器来动态分配的。

三、为虚拟机配置网络
虚拟机一:
网卡一选择NatNetwork网络,网卡二选择host-only网络,网卡3,网卡4不启用,启用以后可能会造成内网不通或外网不同。


虚拟机二:
网卡一选择NatNetwork1网络,网卡二选择host-only网络,网卡3,网卡4不启用,启用以后可能会造成内网不通或外网不同。


注意:每个虚拟机都要分配不同的Nat网络,如果分配了同一个Nat网络,那么只有一台虚拟机可以访问外网。
四、针对host-only网卡,分配静态IP
用ip addr命令查看网卡名称,下图可以看出,网卡2(host-only)名称是enp0s8,虚拟中网卡顺序和上面网络配置中的顺序一样,网卡名称以你自己的ubuntu系统为准。
ip addr
如果不确定哪个网卡是host-only,可以只保留网卡一,然后查看ip addr。

修改网络配置文件,网络配置文件存放在/etc/netplan 目录下,用 ll 命令查看配置文件。
ll /etc/netplan

从图上可以看出网络配置文件名为:00-installer-config.yaml
使用 sudo vi /etc/netplan/00-installer-config.yaml 修改网络配置问价。
sudo vi /etc/netplan/00-installer-config.yaml
编辑 01-network-manager-all.yaml 文件的内容为:
network: ethernets: enp0s10: dhcp4: true enp0s3: dhcp4: true enp0s8: #网卡名,以ubuntu操作系统的网卡名称为准 dhcp4: no #ipv4关闭dhcp,用static模式 dhcp6: no #ip6关闭dhcp addresses: - 192.168.56.200/24 #本机IP地址 gateway4: 192.100.0.1 #vmware网关的的IP地址,这里使用route -n查到的网关 nameservers: #DNS服务器 addresses: [114.114.114.114, 8.8.8.8, 1.1.1.1] enp0s9: dhcp4: true version: 2
#此配置文件内容为层级关系,分为5级,上级与下级的文本需要右缩进,右缩进至少一个空格,不允许使用tab,缩进的空格数不重要,只要相同层级的元素左对齐即可;大小写敏感;冒号与后面的值之间需要间隔一个空格,不然编译不过,会报错。
然后执行 sudo netplan apply 命令编译网络配置。
sudo netplan apply
此命令用来编译01-network-manager-all.yaml 文件,编译成功则无任何提示,编译失败会出现错误提示。
注意:
enp0s8中的address为本次要配置的ip地址,这个需要同host-only网络(192.168.56.1)在同一个网段下,我在虚拟机1中配置的地址为200,虚拟机2中配置的地址为201,这样两台虚拟机既可以互相ping通,也可以ping通你的主机和www.baidu.com。
geteway4是虚拟机网关的ip地址,如果你不知道虚拟机网关的ip地址,可以使用 route -n查询,使用 sudo apt install route 来安装route命令。我这里网关使用的NAT网络的地址,也可以不配置网关,#号注释掉。
route -n
sudo apt install route

五、重启虚拟机
执行 reboot 命令重启系统才会生效。
重启后用 ping 命令验证网络是否通达:
ping www.baidu.com ping 192.168.56.201 ping 192.168.56.200
以上内容仅代表个人见解,如果有更好的配置方法,欢迎大神指出。>_<
参考文章:https://www.cnblogs.com/yyee/p/12899953.html

浙公网安备 33010602011771号