一 说明
- 主机操作系统是Windows10
- VirualBox版本是6.1
- 虚拟机的操作系统是Liunx(CentOS7)
二 下载安装VirualBox并且安装CentOS7
不是重点,暂略。
三 设置NAT网络
3.1 VirualBox有哪些网络连接方式
VirtualBox的5种连接方式
- NAT :虚拟机之间不能互通
- NAT网络 :本文对象
- 桥接 :一般情况下虚拟机无法设置静态IP,并且浪费外部局域网IP
- 内部 :虚拟机不能连外网
- 仅主机(host-only) :虚拟机不能连外网,并且不互通
NAT网络面向需求
- 虚拟机可以连外网
- 虚拟机与主机互通
- 虚拟机与虚拟机互通
- 虚拟机需要固定IP (防止意外)
- 主机所在局域网的其他机器访问虚拟机
3.2 NAT配置方式(以自己为例)
1、打开VirualBox,【管理】→【全局设定】→【网络】
2、添加一个新的NAT网络
这里的网段是默认的,一开始我改了这里的网段,结果导致虚拟机连不上网。在搞清楚原因之前,先按照初始设置吧。
3、设置端口转发
- 因为后续会让虚拟机的ip固定,所以这里的子系统ip先确定下来(如果不设置子系统ip也保存不了)
- 主机ip设置成127.0.0.1,可能会有问题。但是我设置成这样,最后是能够通过127.0.0.1:2222端口访问虚拟机的
4、设置虚拟机网卡配置,【选择虚拟机】→【设置】→【网络】
四 设置CentOS7中的网络配置
4.1 ip addr或ifconfig命令查看网络配置
-
10.0.2.5
是虚拟机的ip地址
4.2 netstat -rn命令查看网关
- 我这里的网关应该是:
10.0.2.1
- 使用ping的方式,也可以ping通网关
4.3 将虚拟机ip地址设置成静态
1、进入配置文件目录
# cd /etc/sysconfig/network-scripts/
2、修改配置文件
# vim ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
#BOOTPROTO=dhcp 默认是DHCP
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=enp0s3
UUID=ddd55635-7ad9-45f9-96f6-088f55cf6e85
DEVICE=enp0s3
#ONBOOT=no 默认是开机不启动网络服务
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.0.2.5 #虚拟机的静态ip地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=10.0.2.1 #网关
IPV6_PRIVACY=no #不知道干嘛的,与IPV6有关
ZONE=public #不知道干嘛的
- 配置文件修改好,重启系统(shutdown -r now)或服务(service network restart)
3、设置DNS服务
# vim /etc/resolv.conf
nameserver 114.114.114.114
nameserver 114.114.114.115
- 配置文件修改好,重启系统(shutdown -r now)或服务(service network restart)
4、检验
- 能否ping通百度
- 使用shell连接工具能不能连上虚拟机
五 VirualBox后台启动并运行虚拟机
5.1 一个cmd命令程序
@echo off
title start_CentOS7 [%DATE% %TIME%]
:: 设置virtualBOX安装路径
set VM_HOME="D:\Program Files\virtualBox"
set input=0
set vim="centOS7-1"
:: 设置提示语
pushd %VM_HOME%
:tip
set input=0
echo -
echo - 1.查看运行中的虚拟机
echo - 2.开启CentOS7-1
echo - 3.关闭CentOS7-1
echo - 4.退出
set /p input=请输入数字:
if %input% == 1 goto 1
if %input% == 2 goto 2
if %input% == 3 goto 3
if %input% == 4 goto end
goto tip
:1
echo **********当前运行的虚拟机**************
echo -
VBoxManage list runningvms
echo -
pause
goto tip
:2
echo **********开启CentOS7-1**************
echo -
echo 正在运行中的虚拟机有:
VBoxManage list runningvms
echo -
set /p v=是否启动?(y/n)
if %v% NEQ y goto tip
VBoxManage startvm %vim% -type headless
echo -
pause
goto tip
:3
echo **********关闭CentOS7-1**************
echo -
set /p v=是否关闭?(y/n)
if %v% NEQ y goto tip
VBoxManage controlvm %vim% poweroff
echo -
pause
goto tip
:end
- 批处理写起来不太熟练,只能简单地用if,goto命令来做一些控制
参考资料
1、VirtualBox NAT Network联网方式
- VirtualBox NAT Network配置(OSX上的)
- VirtualBox的Nat模式设置及端口映射
- VirtualBox四种联网方式(转载)
- VirtualBox虚拟机几种网络连接方式介绍
2、centos7设置静态IP地址
3、批处理相关