Mac上使用VirtualBox虚拟CentOS

2017-02-27 10:00:15来源:http://www.zkt.name/macshang-shi-yong-virtualboxxu-ni-centos作者:ZKT编程与生活人点击

最近工作上需要写些PHP代码,可笔记本上并没有安装相关的环境,周末折腾环境安装各种软件和配置,参考的资料又比较零散,整个过程下来用了不少时间。我把过程记录下来方便以后遇到能够快速查阅,文章讲得并不详细,姑且当成是备忘笔记吧。


我的Mac系统是macOS Sierra,这部分使用VirtualBox虚拟CentOS 7。


VirtualBox 5
CentOS 7 Minimal

VirtualBox( 下载链接 )安装很简单,下载之后点击.dmg文件按指引安装即可。除了VirtualBox以外,ParallelsDesktop、VMware Fusion8也是可以的,但都是收费软件。我选择VirtualBox是因为它轻量、开源、免费、跨平台的,功能上能满足我的需求。


安装CentoOS

下载好CentOS7 Minimal( 下载链接 )的ISO镜像之后,就开始安装,步骤如下:


打开VirtualBox点击左上角的 New,填入Name,Tyepe(Linux),Version(Red Hat(64-bit)) Continue
设置Memory size,这里我设置为1024M,Continue
设置Hard disk,默认(Create a virtual hard disk now),Create
设置Hard disk file type,默认(VDI),Continue
设置Storage on physical hard disk,默认(Dynamically allocated),Continue
设置File location and size, 默认位置,磁盘大小设为8G,Create

设置完成点击Start启动虚拟机,这时候弹框需要输入一个系统镜像,选择之前下载的CentOS镜像路径,点Start开始安装。安装过程很简单,系统安装位置选默认分区点一下,进行下一步进行安装,此时设置root密码,新用户是否创建由自己决定,安装时间会比较长。


系统安装好之后点击重启,进入系统出现黑框要求输入登录账号和密码,系统就装好了。


设置网络

系统安装好之后,启动一般不能直接访问外网,这是因为网卡没有启动,这里需要手动做一下配置。


[root@localhost ~]# curl www.zkt.name
curl: (6) Could not resolve host: www.zkt.name; Unknown error

输入命令 ip addr 可以看到有两个网卡 lo、enp0s3 前者的地址是 127.0.0.1 ,后者没有ip地址,这里需要手动配置网卡enp0s3自动启动,打开vi /etc/sysconfig/network-scripts/编辑文件名为ifcfg-enp0s3内容设置 ONBOOT=yes ,然后重启系统 reboot ,网络OK。


设置SSH

实际使用系统开发的时候,通常是在主机(Host)上使用ssh访问虚拟机,使用 ip addr 可以看到网卡 enp0s3 的IP地址 10.0.2.15 。


ssh root@10.0.2.15 //网络不通,无响应

这是因为默认网络模式是NAT,该模式下虚拟机通过主机所在网络连接外网,但是外面不能直接访问虚拟机,解决办法是作端口转发,规则如下:


<规则名>,<协议>,<主机IP>,<主机端口>,<虚拟机IP>,<虚拟机端口>
//可在虚拟机关闭的情况下在主机上使用如下命令设置(非root权限)
VBoxManage modifyvm "CentOS" --natpf1 "SSH,tcp,,2222,,22"
//为虚拟机"CentOS"设置端口转发规则,所以主机上2222端口上的tcp请求全部转发到虚拟机22(ssh的端口)端口上,
//也可以指定主机或虚拟机的IP
VBoxManage modifyvm "CentOS" --natpf1 "SSH,tcp,127.0.0.1,2222,,22"
//就只会转发127.0.0.1:2222的tcp请求到虚拟机22端口上

设置完端口转发之后,启动虚拟机,就可以在主机通过ssh访问虚拟机了。端口转发也可以通过VirtualBox的可视化界面设置。


设置Host-Only

通过端口转发在NAT模式下实现主机访问虚拟机,但是每个端口都需要设置很麻烦。另一种办法就是设置设置一个Host-Only网络设置,通过Host-Only实现主机与虚拟机之间的互通。


首先,需要创建一个Host-Only网络,路径 VirtualBox->Preferences->Network->Host-Only Networks 点击新增,会创建 vboxnet0 。



关闭虚拟机,点击虚拟机的 Settings->Network->Adapter2->Enable Network Adapter 选择Host-Only Adapter,Name选择刚创建的 vboxnet0 ,点完成,重启虚拟机。


虚拟机中使用 ip addr 可以看到多了一个网卡 enp0s8 的IP地址 192.168.56.102


//使用ssh通过该IP访问虚拟机
ssh root@192.168.56.102 //OK,成功
设置静态IP

默认情况下虚拟机的IP是由VirtualBox的dhcp服务动态分配的,这在多台虚拟机的情况下显得不容易管理,所以一台机器固定一个IP就需要静态IP的支持。


我们是通过Host-Only的方式来访问虚拟机,那么这里设置 enp0s8 网卡为静态IP,在创建 vboxnet0 的地方,点击修改不使用dhcp服务动态分配。



修改虚拟机 enp0s8 网卡的配置 /etc/sysconfig/network-scripts/ifcfg-enp0s8 :


OTPROTO=static //静态模式
IPADDR=192.168.56.101 //地址
NETMASK=255.255.255.0
NAME=enp0s8
DEVICE=enp0s8
ONBOOT=yes //开机启动

重启虚拟机,使用 ip addr 可以看到地址设置为了 192.168.56.101 ,设置成功。


最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台