centos虚拟机之间通信以及与宿主机通信的设置并且固定ip的两种方法
在开发中,集群是必不可少的,有时候为了本地为了验证一些技术点,可是只有一台电脑,这个时候虚拟机是个好东西,本博客主要讲述多虚拟机之间的通信以及与宿主机双向通信的配置,尤其是保证虚拟机的ip不能变动。
本博客主要讲述两种方法,废话不多说,上干货
第一种方法:虚拟机网络设置选择 NAT + host only
此处需要注意,host only 的界面名称如果没有,则需要创建
在虚拟机管理界面点击 管理 --主机网络管理器
如果没有,则创建一个
进入虚拟机
执行 ifconfig ,查看网卡的名称 ,比如 我的是 enp0s8
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.56.15 netmask 255.255.255.0 broadcast 192.168.56.255
inet6 fe80::b8c4:3ff8:d170:17a6 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:83:50:f2 txqueuelen 1000 (Ethernet)
RX packets 561 bytes 45105 (44.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 846 bytes 105460 (102.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
执行
vim /etc/sysconfig/network-scripts/ifcfg-enp0s8
如果这个网卡是中途在虚拟机管理器中添加的,是没有这个文件的,默认是有一个enp0s3,那么
执行
cp /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-enp0s8
然后
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="8b991604-d892-426b-8af0-65f6e525e2ac"
DEVICE="enp0s8"
ONBOOT="yes"
IPV6_PRIVACY="no"
ZONE=public
IPADDR=192.168.56.15
需要注意的是几个配置
BOOTPROTO="static"
DEVICE="enp0s8"
ONBOOT="yes"
# 这个是自己定义的ip地址,
# 注意跟虚拟机管理器上生成的host only的界面名称中的ip在一个局域网
IPADDR=192.168.56.15
剩下一个就是UUID,如果是建立虚拟机的时候就配置了 host only,则这个enp0s8会自动生成,则这个UUID也是生成好的,只需要按照上面的修改就行;如果 host only 是后面加的,enp0s8是新建的文件,那么UUID需要查询出来,
nmcli con |sed -n '1,2p'
名称 UUID 类型 设备
eth0 8b991604-d892-426b-8af0-65f6e525e2ac 802-3-ethernet enp0s8
讲这里得到的UUID复制到enp0s8文件中的UUID中,配置完成
reboot , enjoy yourself
第二种方法:采用 桥接 方式
首先登陆进虚拟机,查看网卡信息
~]# ifconfig
enp0s9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.101.20 netmask 255.255.255.0 broadcast 192.168.101.255
inet6 fe80::3c9f:ca2f:9383:e712 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:b7:bb:7b txqueuelen 1000 (Ethernet)
RX packets 16861 bytes 1132640 (1.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 31277 bytes 3545718 (3.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
我的是 enp0s9,大家对应自己的网卡名称就好
vi /etc/sysconfig/network-scripts/ifcfg-enp0s9
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="097ca6bc-5bd5-3a41-9e1b-8679a029a131"
DEVICE="enp0s9"
ONBOOT="yes"
IPV6_PRIVACY="no"
ZONE=public
IPADDR=192.168.101.20
NETMASK=255.255.255.0
GATEWAY=192.168.101.1
DNS1=8.8.8.8
这里虚拟注意的是
BOOTPROTO="static"
DEVICE="enp0s9"
ONBOOT="yes"
IPADDR=192.168.101.20
NETMASK=255.255.255.0
GATEWAY=192.168.101.1
DNS1=8.8.8.8
关于UUID的问题,和第一种方式一样处理就好
这里有一点需要注意,这里的 DNS1 一定要配置,否则会无法解析域名
reboot and enjoyyourself