(一看就会)让VM虚拟机之间联网并能相互ping通

Posted 懂.py的小陈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(一看就会)让VM虚拟机之间联网并能相互ping通相关的知识,希望对你有一定的参考价值。

VM多台虚拟机之间的网络问题

我以两台虚拟机为例。如果要三台四台五台都是一样的道理,不过ip的第四段不能冲突

有三种:

  1. 我只想让虚拟机之间能ping通就行,不需要访问公网
  2. 我只想让虚拟机能联网,不需要虚拟机之间ping
  3. 我想两台虚拟机ping通,又要同时访问公网

1.我只想让虚拟机之间能ping通就行,不需要访问公网

1)选择网卡

VM安装之后我们会有两块虚拟机的网卡,一个是单机模式的网卡,一个是NAT模式的网卡

解释一下:

单机模式可以让虚拟机之间ping通,但是由于网卡的限制,是不能访问公网的

NAT模式就不一样了,如果设置的好,可以访问公网又可以虚拟机之间ping通

由于我们不需要访问公网,所以这次选择VMnet1这块网卡

2)为虚拟机设置网卡

第一步:打开VMware

第二步:打开所需要ping通的两台虚拟机

第三步:在一台虚拟机右键,点最下面的设置

然后选择主机模式(单机模式)

然后第二台同理,网络模式选择主机模式

3)查看主机模式下的网卡ip,并对虚拟机的网卡进行配置

因为主机模式是一个内网,不需要访问公网 ,所以可以完全按照我的步骤,ip地址相同都没问题(我输入1你就输入1)

鼠标移到这个位置右键

点击网络和Interne设置

点击VMnet1网卡的属性(右键以后的最后一个)

点击属性以后

按照我的输入ip地址子网掩码

知道了我们的网卡ip,那就需要对虚拟机的网卡进行配置了

小科普:

两台虚拟机要想能ping通

ip地址的前三段就必须相同:

例如:(前提条件:A和B两台必须在同一块网卡)

A:192.168.11.2

B:192.168.11.3

然后就是可以ping通了

但是我刚刚只是设置了网卡的ip地址还没对虚拟机的网卡进行配置,现在就对网卡进行配置

现在进行虚拟机网卡配置

由于我的系统是CentOS7,所以我就以Centos7的为例

vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 有的人是ifcfg-ens32,网卡名称是系统自己生成的,到时候输出到ifcfg-en之后就按Tab键补全就行

可能有人会问:为什么这么黑?

那是因为我对Linux比较熟悉了,所以喜欢用这个全是黑的Linux,我大一刚接触Linux的时候也有这个问题(喜欢图形化界面),到了大二也就是现在,我现在更喜欢这种黑不溜秋的页面了,哈哈

现在网卡还没有配置好,所以我暂时不能通过SSH连接到虚拟机,等等我设置好网卡之后就可以SSH连接到虚拟机了

把文件保存了哈:Esc > :wq > 回车

重启网卡:

systemctl restart network

查看当前的虚拟机IP地址

ip add

这个时候就可以通过SSH连接了,然后我就换一个工具连接这个虚拟机了

输入登录账户和密码之后就是:

因为在虚拟机不好复制的虚拟机网卡信息:

所以我通过SSH把他复制出来

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="ens33"
UUID="7eb9ae53-22e0-4d67-aac8-d8a69eed5855"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.11.2

第二台虚拟机的网卡配置

vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 有的人是ifcfg-ens32,网卡名称是系统自己生成的,到时候输出到ifcfg-en之后就按Tab键补全就行

操作和上面的一样,就是IPADDR不一样

另外一个的网卡信息我帮你写好了哈,如下:

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="ens33"
UUID="7eb9ae53-22e0-4d67-aac8-d8a69eed5855"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.11.3

IP地址冲突会导致另外一台不能上网

2.我只想让虚拟机能联网,不需要虚拟机之间ping

因为我要让虚拟机访问公网,所以必须换网卡,选择VMnet8这块网卡

1)配置VMnet8这块网卡

我前面说过,所以会简单点

小科普:

要想让虚拟机能够上网,在ip和子网掩码这两个必须走自动获取

  • 如果不自动获取,就是和主机(单机)模式没啥区别

可能你们会问

那ip地址没办法自己设置咋整?

答:那就拿自动获取的IP地址去修改相应的配置

我的VMnat8网卡的IP地址为192.168.137.1

那我虚拟机的网卡设置成192.168.137.3就行了(还没结束哈,还要多加一些信息)

第一个: GATEWAY=VMnet8自动获取的ip地址的前三段最后一段是2

第二个: DNS1=VMnet8自动获取的ip地址的前三段最后一段是2

怎么查看网关?
  1. 打开虚拟网络编辑器,选择NAT

选择NAT设置

查看网关就行,其他别动

最后如下:

怎么查看VMnet8自动获取的IP地址?

在windows打开cmd终端并输入:

ipconfig

配置虚拟机的网卡信息

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="ens33"
UUID="7eb9ae53-22e0-4d67-aac8-d8a69eed5855"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.137.3
GATEWAY=192.168.137.2
DNS1=192.168.137.2

然后 Esc > :wq > 回车

重启网卡:

systemctl restart network

然后就断开了

如果出现了这个断开连接的问题不必惊慌哈

那是因为你的网卡ip变了,然后你的ssh的ip地址也变了

重新输入你新设置的ip地址就可以了

2)把虚拟机的网卡选择NAT

然后记得点击确定哈,没确定不生效的哈

我的ip地址为:192.168.137.2哈,你们大部分肯定和我不一样,因为是自动获取的IP地址

3)现在检查是否可以访问公网

重启网卡以后,就可以ping 百度了

ping www.baidu.com

3.两台虚拟机能ping通,并能访问公网

有了前面两个的知识,我直接说大致方案

要求:

访问公网(让VMnat8这块网卡自动获取IP地址)

两台虚拟机之间能够ping通(走同一块网卡,只有VMnet8那块网卡能访问公网,所以我们就根据VMnet8这块网卡的IP地址进行改动)

现在我已经让一台虚拟机能够访问公网了,现在我改动另外一台虚拟机就可以了

两台虚拟机的网卡:VMnet8

第一台虚拟机的网卡配置信息:

IPADDR=192.168.137.3
GATEWAY=192.168.137.2
DNS1=192.168.137.2

第二台虚拟机的网卡配置信息:

IPADDR=192.168.137.4
GATEWAY=192.168.137.2
DNS1=192.168.137.2

然后就大功告成了!

两台能联网

两台之间能够ping通

息:

IPADDR=192.168.137.3
GATEWAY=192.168.137.2
DNS1=192.168.137.2

第二台虚拟机的网卡配置信息:

IPADDR=192.168.137.4
GATEWAY=192.168.137.2
DNS1=192.168.137.2

然后就大功告成了!

两台能联网

[外链图片转存中…(img-xdISKZuN-1648733159100)]

两台之间能够ping通

[外链图片转存中…(img-McgHleqh-1648733159100)]

如果还是不会,可以再看看我前面写的

VM虚拟机中Centos7磁盘分区+格式化+挂载(超级详细一看就会)

VM虚拟机中Centos7磁盘分区+格式化+挂载(超级详细一看就会)

1、环境介绍

  1. centos系统版本:7.9,命令:cat /etc/redhat-release
  2. 虚拟机版本:15(VM)

2、分区简介+个人理解

  • 分区基本步骤:磁盘分区——磁盘格式化——磁盘挂载(可设置开机自动挂载否则每次开机都得执行挂载命令)
  • linux磁盘分区主要分为主分区(primary partion)和拓展分区(extension partion)两种(其实还有逻辑分区,只不过逻辑分区是在拓展分区里),主分区和拓展分区的数目之和不能大于四个(即最多只能有3个主分区+1个拓展分区,因为拓展分区只能有一个并且拓展分区不能直接使用,只能将拓展分区再进行分区,分成逻辑分区这样才能正常使用)。
  • 正常情况分区是不会超过3个的也就是说设置分区时都设置成主分区即可(其实大多数都直接将一块硬盘设置成一个分区省事又简单)。假如有一块1000G的硬盘,如果们需要5个分区此时由于最多只能是设置成3个主分区剩下的只能通过创建一个拓展分区并在拓展分区里设置两个逻辑分区。(比如主分区A、B、C分别分配了200G空间,此时不能在分配主分区了只能分配一个拓展分区,但是拓展分区又不能使用,所以需要在拓展分区中新建两个逻辑分区这样就可以了)。
  • 最后的效果是:3个主分区+1拓展分区(里面包含2个逻辑分区)=5个可以正常使用的分区
  • 创建分区不建议你串讲拓展分区,一般3个主分区足够了,如果你是大神就随意了。
  • 拓展分区不能正常使用,除了在它自己下创建逻辑分区外别的基本没有课操作的东西

3、在虚拟机中添加一块虚拟磁盘

1、在虚拟机中给系统分配一块虚拟磁盘,在设置界面添加即可,基本就是设置好添加的磁盘大小一路回车,过程如下:

4、磁盘分区

  1. 进入dev目录,通过命令:ls即可可见已经有sdb了,通过命令: 同过命令:fdisk -l查看当前磁盘信息,已经有新添加的磁盘了sdb(linux系统会自动命名,你如果再加一块会自动命名为sdc,以此类推),只是并没有进行分区和、格式化、挂载等,还不能正常使用。通过命令:df也查看不到相关信息

  2. 通过命令:fdisk /dev/sdb即可对此磁盘进行分区操作(类似于win电脑的本地磁盘C、本地磁盘D……)——>>>输入n:创建新分区——>>>此处会让你选择分区类型默认就是主分区,默认即可或是输入p按回车——>>>此处设置分区号,默认即可——>>>此处设置开始扇区,默认即可——>>>此处设置分区大小,如果是默认则表示把所有的空间都分配给这个分区,如果是只分一个区则可以这样操作(也可输如相对大小分配指定的空间大小给这个分区,如输入+10G表示给此分区分配10G空间),此处我输入+10G即给这个分区分配10G容量。(出现最后一句话:分区1,已设置为linux类型,分区大小10G则表示已经分区成功)
    分区命令详解:
    n:创建新分区
    p:创建主分区
    e:创建拓展分区
    l:创建逻辑分区
    d:删除已有分区
    t:修改分区类型
    l:查看所有支持的类型
    p:显示现有分区信息
    w:保存并退出
    q:不保存并退出
    m:查看帮助信息

  3. 接着还是在分区命令界面如果要继续分区就重复刚刚的步骤,不分区的话输入w保存并退出即可,此处我们在分一个拓展分区和一个逻辑分区(分别分配5G大小空间),最后输入p即可查看分区的信息(此处注意,我们创建拓展分区后才会再下次创建分区时有逻辑分区的选择,创建逻辑分区都是在拓展分区中创建的,下面创建拓展分区和逻辑分区的起始扇区几乎一致就是很好的证明,我们当时是新磁盘是20G,实际到这一步才用了15G进行分区(主分区10G,拓展分区下的逻辑分区5G,还有5G其实是空闲没有用到的))如下:
  4. 记得一定要输入w保存并退出,接着输入命令:partprobe使分区生效(此处由于我是虚拟机所以会报一个错,这个你们可能也会遇到,不过没有关系,通过命令:fdisk -l查看磁盘信息 时显示我们刚刚分区的磁盘就证明分区没有问题,这个错误提示不必纠结)

5、格式化磁盘

  1. 通过命令:mkfs -t ext4 -c /dev/sda1格式格式化sdb1分区(ext4是格式化时文件格式,现在基本是etx4格式,-c参数可以不加的),此处我们格式化拓展分区sdb2时肯定是报错,实际拓展分区是不能用的只有在它下面新建的逻辑分区sdb5才能正常格式化使用

  2. 通过命令:df -h即可查看到已经有两个分区信息了(此时还是不能用的,还需要进行挂载操作)

6、磁盘挂载

  1. 磁盘挂载时需要先新建挂载的目录,我们一般在跟目录下新建即可(挂载目录任意位置均可以,跟目录下方便管理查看)

  2. 新建号目录后我们通过命令:mount /dev/sdb1 /mnt_sdb1即可将分区/dev/sdb1挂载到目录mnt_sdb1上,其他的类似。(依旧是拓展分区不能挂载,拓展分区下的逻辑分区可以正常挂载)

7、开机自动挂载

  1. 上述磁盘挂载成功后即可正常使用,但是在系统重启后会自动失效,此时需要配置开机自动挂载。
  2. 通过命令:blkid /dev/sdb1即可查看此分区信息。(依旧是拓展分区sdb2不能显示)记录一下:UUID信息后续会用到(UUID唯一标识每一个分区,防止错误的挂载)。
  3. 通过命令:vim /etc/fstab进入编辑模式,设置开机自己。输入:UUID=分区的UUID号 分区挂载的目录 分区格式 default 0 0。如下图:

8、错误的开机自动挂载:

通过命令:vim /etc/fstab进入编辑模式如果你是输入的:/dev/sdb1 mnt_sdb1 ext4 defaule 0 0,会导致开机后centos系统直接进入命令行模式而无法进入图形化界面(下图中最后一条记录)。一定要用分区的UUID进行开机自动挂载。

以上是关于(一看就会)让VM虚拟机之间联网并能相互ping通的主要内容,如果未能解决你的问题,请参考以下文章

VM虚拟机中Centos7磁盘分区+格式化+挂载(超级详细一看就会)

虚拟机可以ping通物理机的任意网卡但物理机无法ping通虚拟机

hyper-v虚拟机无法上外网,但与宿主机之间可以ping通。

怎么设置才能让两台虚拟机和主机两两ping通

虚拟机vmware能上网,可为啥和主机之间ping不通呢?

虚拟机与主机如何ping通