linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现

时间:2024-03-25 09:59:51

linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现

之前实验室有项目需要开发Linux下运行的c++程序,但是win下的vs开发比较方便,最后选择的解决方案是用vm安装虚拟机,vs安装visual GDB插件,从而实现windows环境下,对linux程序的编写,此贴作为学习记录,由于是初学者,操作或者表述定有不周之处,也需要自己不断学习改正。

1、vm安装linux虚拟机

在网上下载VMware虚拟机
vmware workstation 12
****:5A02H-AU243-TZJ49-GTC7K-3C61N
成功安装之后,打开VMware

linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
选择自己所需要虚拟机配置文件,我这里加载的虚拟机配置文件是RedHat Enterprise Linux 7.3-64 .vmx,点击确认。先不要点击开启此虚拟机,而是点击编辑,选择虚拟网络编辑器:
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
初次安装使用,先选择 还原默认设置 。有以**意两点(1、使用网线联网,2、使用无线网联网(可以配置)我推荐使用nat模式):
步骤1:使用有线时,选着桥接模式,桥接到(T)的位置选着 Intel®(电脑自带的有线网卡)。 对于其他的连接方式后面再总结。不太建议使用这种方法。
完成上述步骤之后点击应用和确定。
步骤2:
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
打开虚拟机按钮>设置>网络适配器>网络连接,如果是有线连接,选着桥接模式,并选上复制物理网络连接状态(P);如果是网线模式,选择 仅主机模式 。最后 点击开启此虚拟机。

2、虚拟机与win联网设置

vmware中的三种联网模式----nat–bridge–hostonly

我们在使用VMware创建linux虚拟机的时候,是可以手动选择网络模式的:
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
有3种网络模式可供我们选择:桥接模式、NAT模式和仅主机模式。

NAT模式

我们创建的多个linux虚拟机的网卡的名称都叫做“eth0”,而NAT模式下,它有一个虚拟交换机,就是前面我们所说的VMware内部创建的一个虚拟交换机。所有的linux虚拟机都会连接到这个虚拟交换机。Windows也会通过VMnet8这块虚拟网卡连接到这个虚拟交换机。这个虚拟交换机的网段和网关ip(我们一般会把网关ip的最后一位数配置成1,这只是一个约定俗称的做法)都是可以修改的。只要知道了这个虚拟交换机的网段和网关ip,那么所有连到虚拟交换机的机器的网卡,只要都在一个网段就可以。

通过NAT模式,在windows的VMnet8这块网卡和所有的linux虚拟机的网卡之间就组成了一个虚拟的网络。而这个虚拟的网络对我们的windows的本地连接是没有任何干扰的,因为它们是两个完全不同的网络。这个虚拟网络就相当于一个内网,而我们windows的本地连接就相当于是外网。

而且在这种NAT模式下,VMware还有一个功能,就是可以让这个内网中的所有机器都能够访问外网。也就是说,只要你的windows机器能连上外网,VMware就能让这个内网中的集机器也能连上外网。因为VMware能够做一个地址转发,NAT本身就地址转发的意思。当内网中的linux虚拟机连上外网之后,外网看到的地址都是windows的本地连接的地址。

下面是我们的笔记本上的linux虚拟机通过NAT模式连接外网的配置:
第1步:检查VMware的虚拟交换机的网段和网关IP
从下图可以看出,VMware的虚拟交换机所处的网段是“192.168.71.0”,网关IP地址为“192.168.71.2”:
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
第2步:将linux虚拟机的网络模式配置成NAT模式
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
第3步:检查Windows上的虚拟网卡VMnet8的ip地址
从下图可以看到,我们的VMnet8这块虚拟网卡的ip地址为“192.168.71.1”
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
第4步:检查要连接外网的linux虚拟机的网络配置情况(如果出问题详见下方总结 6 7 项)
注意,linux虚拟机的ip地址、windows上的VMnet8虚拟网卡、都要和VMware的虚拟交换机位于同一个网段,而且保证ip地址不能有相同。
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
第5步:以上几个关键部分配置好了之后,使用如下命令重启linux虚拟机的网卡:
service network restart
或者手动直接重启

第6步 检查虚拟机有线连接是否接通 即成功抓取ipv4 和ipv6的地址,否则需要手动设置
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
第7步:使用ping命令测试是否能够连接外网
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
总结:linux虚拟机要想连接外网的话,需要注意的几个关键点。
在实际操作过程中我遇到了下列问题,我重点列出来作为记录

(1)连接外网的那台虚拟机的网卡必须使用NAT网络模式(在VMware中设置);

(2)必须确定VMware的虚拟交换机的网段和网关ip;

比如我们的VMware的虚拟交换机的网段为"192.168.71.0",网关ip为"192.168.71.2"。

(3)必须保证linux虚拟机的ip地址、Windows的VMnet8这个虚拟网卡的ip地址、上面说的虚拟交换机的ip、这3者都在同一个网段;
  比如我们的Windows笔记本的VMnet8虚拟网卡的ip地址为"192.168.71.1",它和VMware虚拟机的网关都在"192.168.71.0"这个网段内。

(4)linux虚拟机的eth0网卡的网关(需要修改"/etc/sysconfig/network-scripts/ifcfg-eth0"文件)要设置成和VMware虚拟交换机的网关一样,
或者设置成谷歌的公共DNS,也就是8.8.8.8。子网掩码必须是"255.255.255.0"。

  比如我们的linux虚拟机的eth0网卡的网关设置为了"192.168.71.2",和VMware虚拟交换机的网关一样。
(5)保证我们的Windows电脑必须能够连接外网,因为linux虚拟机是通过Windows来连接外网的。
(6) 对于本次项目的redhat虚拟机系统,ifconfig 之后显示的是ens33 网卡名称,ens33与eth0本质相同,都是对虚拟网卡的命名(命名规则不同而已,可以修改),这里将第四步中的命令改为 vi/etc/sysconfig/network-scripts/ifcfg-ens33
再对文件中的GATEWAY DNS1进行修改即可。

(7) 如果ifconfig 后没有ens33 或者eth0 只有lo的话,需要检查 Ⅰ系统是否有虚拟网卡驱动 Ⅱ 有驱动但是没有启动 相关操作百度即可
(8)在笔记本上经常遇到这样设置后依然无法ping通的情况 是因为虚拟机无法自动抓取ipv4的地址 需要手动设置

桥接模式

在桥接模式下,我们的所有的linux虚拟机不再是连接到一个虚拟的交换机,而是直接连接到我们windows电脑的本地连接所连接的那个真实的物理交换机。所以,我们所有的linux虚拟机的ip地址都要和那个真实的物理交换机的ip地址在同一个网段。
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
通过查阅很多其他的博主对这种模式的说明,大都不建议大家使用这种网络模式,因为你换一个环境,需要重新配置网络,比如你原来在教室里面,你的电脑连接的是教室的交换机,你回到家里面,家里的交换机的ip和教室里面的ip肯定不是一个网段。所以你每换一个环境,都需要重新配置ip地址,很不方便。

但是桥接也有一个好处,比如说老师的笔记本上的所有的虚拟机都配置成桥接模式,那么我的所有的虚拟机的网段就和你们(学生)的电脑都在同一个网段,你们就可以直接ping我的虚拟机了。我在我的虚拟机上部署一个服务,你们就可以直接访问了。比如我在我的linux虚拟机上搞了一个hadoop集群,而且我们的虚拟机都配置成了桥接模式,那么你们都可以直接访问了。如果我使用NAT模式的话,你们就访问不了。因为我和你们的电脑不在同一个网段。

桥接模式的ip配置非常简单,就是将所有虚拟机的ip都配置成真实交换机的网段,而windows电脑则什么都不用修改。

Host-only模式

这种模式和NAT极为相似,它内部也有一个
所有的linux虚拟机统统连到Windows上的VMnet1这块虚拟网卡上,这样的话,所有虚拟机的网关都指向VMnet1这个网关。这样windows电脑和所有的虚拟机之间也组成了一个内网,在这个内网里面彼此之间可以互相访问。
linux学习记录【1】----虚拟机的安装与Windows和linux虚拟机之间联网实现
那么Host-only模式和NAT模式有什么区别呢?
区别是,VMware不会对VMnet1这个网卡提供地址转换服务,所以,在Host-only模式下,所有的linux虚拟机是连接不了外网的。

到此vm基本虚拟环境就搭建好了,接下来可以在linux继续完成其他操作。