VirtualBox踩坑指南

下载安装vbox

  1. 下载vbox安装包 然后安装 https://www.virtualbox.org/
  2. 下载os镜像,这里下载centos,建议使用阿里云加速镜像 https://developer.aliyun.com/mirror/
  3. vbox安装centos
    新建,然后启动后选择centos的iso安装文件



    开始安装


说明: 这里安装都是最小化安装的,只装了centos核心的一些功能,很多依赖或软件都没有,安装后再配置

设置网络连接

ssh连接

选桥接模式 ,桥接模式就是物理机和虚拟机公用同一网络,需要有路由器或网线,虚拟机跟物理机的网络是一样的,只是ip网段不一致

查看虚拟机ip地址,比如centos查看 ip addr,最小化安装的centos,ifconfig都不能使用


查看物理机ip,比如windows查看ipconfig

ssh工具连接,配置如下:
ssh [email protected] 然后输入密码,修改端口 使用 -p 端口号

NAT网络方式,就是虚拟机使用端口转发物理机的网络
需要设置 “端口转发”,然后ssh连接,如下图,ip地址也需要查看,

三种网络连接模式

  • 桥接
  • NAT
  • Host-Only

桥接:

简而言之桥接就是指:就是通过一台设备(可能不止一个)把几个网络串起来形成的连接。这边主要介绍虚拟机所采用的桥接方式,虚拟出来的操作系统就像是局域网中的一独立的主机,它可以通过路由器网线访问网内任何一台机器。不过虚拟机需要占用你同一个网段的一个 IP 地址,当且仅当虚拟机和实体机在同一个网段,两者才可以进行通信,如:虚拟机 IP:192.168.1.101,实体机 IP:192.168.1.100

在桥接模式下,例如在 windows 下使用 vmware 时,明显看到会生成多个虚拟网卡出来,但却没有一个网卡是属于桥接的,原因是虚拟机采用桥接方式时,是不需要虚拟网卡的,这时候虚拟机操作系统和实体机操作系统同时使用真实网卡工作,然后真是网卡发送数据出去,而如果虚拟机发送数据给真实机,则数据流向是:虚拟机系统->真实网卡->路由器->真实网卡->实体机系统,不难看出同一个数据经过网卡在路由器上面绕了一圈又回到了网卡。

通过上述内容发现,桥接必须经过真实网卡和路由器,因此当你的电脑没有链接有线网或者无线网的话,你的实体机是无法和虚拟机进行交互的,即便看起来两者很近也不行。而选用桥接还是 NAT 等方式是在虚拟机软件中选定,进入虚拟的操作系统后,所有的设置和真实电脑没有本质区别,如果路由器允许自动分配 IP 地址,则操作系统设置为自动获取 IP 即可,如果不能自动分配,也可以在操作系统中手动分配 IP 地址。另外值得注意的是某些公司路由器绑定了电脑 mac 地址和 IP 地址,这时候虚拟机中的桥接也相当于一个真实电脑,也需要完成相关的绑定才可以访问网络。*

可以看出:如果你想利用VMware在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。下面举个栗子:

例如大学宿舍里有一个路由器,宿舍里四个人连接这个路由器,路由器的 wanip 就不理会了,这个 ip 是动态获取的,而一般lanip默认是192.168.1.1,子网掩码是255.255.255.0。而其他四个人是自动获取ip,假设四个人的 ip 是:

A: 192.168.1.100/255.255.255.0,  B: 192.168.1.101/255.255.255.0,  C: 192.168.1.102/255.255.255.0,  D: 192.168.1.103/255.255.255.0

那么虚拟机的 ip 可以设置的 ip 地址是 192.168.1.2-192.168.1.99, 192.168.1.104-192.168.1.254 (网络地址 0 和 1 的除外,再除去 ABCD 四个人的 ip 地址)

那么虚拟机的 ip 地址可以设置为 192.168.1.98/255.255.255.0,设置了这个 ip 地址,ABCD 这四个人就可以通过 192.168.1.98 访问虚拟机了,如果虚拟机需要上外网,那么还需要配置虚拟机的路由地址,就是 192.168.1.1 了,这样,虚拟机就可以上外网了,但是,上网我们一般是通过域名去访问外网的,所以我们还需要为虚拟机配置一个 dns 服务器,我们可以简单点,把 dns 服务器地址配置为 google 的 dns 服务器 :8.8.8.8,到此,虚拟机就可以上网了。

综上所述,同一个数据经过网卡在路由器上面绕了一圈又回到了网卡。而虚拟机的桥接也只在其他电脑需要访问你电脑的虚拟机时,或者你虚拟机需要访问其他外部设备时才有相关需求*,一般情况还是建议配置成操作方便使用简单的 NAT 方式。

NAT:

NAT模式实际是虚拟了一个网卡出来,虚拟机直接使用链接这个虚拟网卡,每次访问和交互通过这个虚拟网卡交换数据。虚拟机发送数据给实体机:虚拟机系统->虚拟网卡->实体机系统(可以发现是不经过真实网卡的流程简单很多);虚拟机访问外网:虚拟机系统->虚拟网卡->实体机系统->真实网卡->路由器->外网* 。*

虚拟机借助 NAT (网络地址转换)功能,通过宿主机器所在的网络来访问公网。 NAT 模式中,虚拟机的网卡和真实网卡的网络,不需要在同一个网络,虚拟机的网卡的网段可以理解:路由器所在网段之下的一个子网段。

采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。如果你想利用VMWare安装一个新的虚拟系统,在虚拟系统中不用进行任何手工配置就能直接访问互联网,建议你采用NAT模式。而缺点是: NAT 模式下,虚拟机仅仅可以同路由器下网段中的一台真实机通讯,而这台真实机就是安装虚拟机的这台电脑,之所以可以通讯是因为这台电脑本身充当了虚拟机的路由器,相当于路由器的 192.168.1.1 这个地址,而你在 vmware 下的网卡管理中是可以看到这个地址的。这边再补充一点:采用NAT模式时,虚拟机和实体机交互并不是直接进行的,首先虚拟机操作系统访问虚拟网卡 VMnet8 (地址如: 192.188.1.33),然后这个虚拟网卡会再将数据提交给真实机操作系统VMware Network Adapter VMnet8(地址: 192.188.1.1)而地址(192.188.1.33 和 192.188.1.1)实际都是由虚拟机软件 vmware 提供的,具体的交互细节不作研究。

Host-only:

在 Host-Only 模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实 Host-Only 网络和 NAT 网络很相似,不同的地方就是 Host-Only 网络没有 NAT 服务,所以虚拟网络不能连接到 Internet 。主机和虚拟机之间的通信是通过 VMware Network Adepter VMnet1 虚拟网卡来实现的。

Host-Only 的宗旨就是建立一个与外界隔绝的内部网络,来提高内网的安全性。这个功能或许对普通用户来说没有多大意义,但大型服务商会常常利用这个功能。如果你想为 VMnet1 网段提供路由功能,那就需要使用RRAS,而不能使用 XP 或 2000 的 ICS,因为 ICS 会把内网的 IP 地址改为 192.168.0.1,但虚拟机是不会给 VMnet1 虚拟网卡分配这个地址的,那么主机和虚拟机之间就不能通信了。


设置共享文件夹

设置vbox

如下图所选择一个Windows下的本地路径作为一个共享文件夹:

设置共享文件夹/设置共享粘贴板

打开运行的虚拟机,设备-共享粘贴板


安装增强工具

设备->安装增强功能。
如果此操作能成功,那么恭喜!但是百分之98的情况下都会失败而且一般提示

未能加载虚拟光盘 C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso 到虚拟电脑 Centos.

Could not mount the media/drive 
'C:\Program Files\Oracle\VirtualBox/VBoxGuestAdditions.iso' 
(VERR_PDM_MEDIA_LOCKED).

返回 代码: E_FAIL (0x80004005)
组件: ConsoleWrap
界面: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
被召者: IMachine {85632c68-b5bb-4316-a900-5eb28d3413df}

就像下面这张图中一样。要是按照网上普遍的做法进行处理那么你就输了,如果第一次使用vbox有可能一天一夜都折腾不出来,然后开始怀疑vbox根本不能用,还是用收费并且笨重的vm吧…

图6

还有没有其他方法?那是必须的而且很简单:

  • 将vbox安装目录的VBoxGuestAdditions.iso文件拷贝到虚拟机系统中(注意安装了rz命令之后用xshell连接虚拟机然后直接将文件拖动到xshell终端窗口中即可)。这个文件就是以上错误信息中说的这个文件。
  • 如何将该文件拷贝到虚拟电脑中呢?答案是用前文安装的rz命令。当然,直接拖到xshell窗口中也是可以的。
  • 将这个iso文件挂载到系统中,可以理解为解压,并执行安装:
    • mkdir /mnt/cdrom
    • mount -o loop VBoxGuestAdditions.iso /mnt/cdrom/
    • ./VBoxLinuxAdditions.run
  • 执行完以上步骤一定是不成功的,因为我们安装的是最简系统,会缺少很多东西,根据提示将缺少的东西安装上去就好了,错误信息在日志文件中查找一般而言路径为“/var/log/VBoxGuestAdditions.log”,在错误信息中给出。
  • 遇到这种情况首先应该执行yum update命令,更新所有软件包,包括内核。
  • 根据错误信息” b. vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.vboxadd.sh: failed: Please check that you have gcc, make, the header files for your Linux kernel and possibly perl installed..”安装缺失的软件包:yum install gcc make kernel-devel kernel-header perl
  • 安装好依赖的软件包之后依然安装失败,此时尝试将内核加入环境变量:
    • 搜索内核路径:find / -type d -name '*kernel*'
    • 将得到的内核路径加入环境变量,如:export KERN_DIR=/usr/src/kernels/3.10.0-514.26.2.el7.x86_64/

一般而言做完以上操作之后就可以正常使用安装增强工具了。

挂载共享文件夹

已上文在vbox中配置的“D:\goRoot“为例:

  • mkdir /mnt/share
  • mount -t vboxsf goRoot /mnt/share
  • 如果报错:“/sbin/mount.vboxsf: mounting failed with the error: No such file or directory”,检查vbox共享目录是否设置正确,挂载目录/mnt/share是否创建成功。
    至此万事具备,就差在Windows下愉快的玩耍centos虚拟机了。

你可能感兴趣的:(VirtualBox踩坑指南)