【Linux】虚拟机中,如何把虚拟机的IP地址固定,而不是DHCP自动分配。(Linux系统为ubuntu 18.4)
我的个人博客:https://www.wuyizuokan.com
之前学习Redis的时候,准备搭建一个Redis集群试试,但是使用VMware创建好三个虚拟机之后,虚拟机的IP地址总是变化,每次都需要重新配置redis配置文件,很麻烦。
这是因VMware默认使用DHCP,动态给虚拟机分配IP地址,导致虚拟机的IP地址总是发生变化:
可以在编辑-》虚拟网络编辑器中查看:
默认开启了DHCP,动态分配IP地址,我这里IP地址的分配范围是192.168.200.128~192.168.200.254,虚拟机的IP地址就是在这个里面分配的。
如果只创建了一台虚拟机,会总是分配192.168.200.128这个IP地址,即第一个IP地址;如果创建了多个虚拟机,IP地址就不会固定了,一般是先启动的分配192.168.200.128,后启动的按照启动顺序递增分配IP地址。
为了能够便于使用,需要让每一台虚拟机的IP地址固定下来,下面是操作步骤:
让所有的虚拟机都挂载到VMnet8这个子网下面来,先在虚拟网络编辑器中查看VMnet8子网的网关信息:
设置每台虚拟机的网卡设置:
在虚拟机上右键-》设置
选择网络适配器-》选择自定义-》选择VMnet8:
下面开启虚拟机,进入虚拟机配置IP地址信息(因为修改了IP地址分配方式,ubuntu系统启动可能会比较慢,耐心等待):
进入/etc/netplan目录,查看下面的文件,应该会有一个xxxx.yaml文件:
使用sudo vim ****.yaml命令修改这个文件:
1 # This file is generated from information provided by 2 # the datasource. Changes to it will not persist across an instance. 3 # To disable cloud-init's network configuration capabilities, write a file 4 # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: 5 # network: {config: disabled} 6 network: 7 ethernets: 8 ens33: 9 addresses: 10 - 192.168.200.128/24 11 dhcp4: false 12 gateway4: 192.168.200.2 13 nameservers: 14 addresses: 15 - 8.8.8.8 16 search: [] 17 version: 2
注意:
ens33就是虚拟机对外通讯使用的端口,这里的配置也就是给这个端口配置IP地址等信息:
addressers:本机IP地址和掩码
dhcp4:false //关闭DHCP
gateway4:192.168.200.2 // VMare的虚拟网络编辑器中查看到的VMnet8子网的网关IP地址。
下面的nameservers中配置了8.8.8.8的IP地址,这里是为了让虚拟机能够访问DNS服务器。
配置OK后,运行 sudo netplan apply 使能配置:
使用ifconfig查看IP地址信息,端口的IP地址已经固定下来了:
尝试重启一下虚拟机,看看IP地址是否发生改变:
可以看到IP地址未发生改变。
可以测试一下ping www.baidu.com,虚拟机可以访问外部网络: