VirtualBox的7种网络接入模式详解
各网络模式的默认情况下,网络连接情况
NAT模式 | 桥接模式 | Host-Only模式 | |
---|---|---|---|
虚拟机 -> 宿主机 | √ | √ | 默认不能,需要设置 |
宿主机 ——> 虚拟机 | x | √ | 默认不能,需要设置 |
虚拟机 ——> 虚拟机 | x | √ | √ |
虚拟机 ——> 同局域网下其他主机 | √ | √ | 默认不能,需要设置 |
同局域网下其他主机 ——> 虚拟机 | x | √ | 默认不能,需要设置 |
配置网络地址转换(NAT)模式
NAT模式下,宿主机访问虚拟机,虚拟机可以访问宿主机,虚拟机可以访问互联网。
访问外网
选择对应虚拟机 -> 设置 -> 网络 -> 选择连接方式为NAT -> 选择控制芯片
这样配置以后,启动虚拟机,执行ping www.baidu.com有响应说明配置成功。如果没有响应换一个控制芯片试试,上图框红的两个控制芯片是可以的。
宿主机访问虚拟机
配置步骤如下:
选择对应虚拟机 -> 设置 -> 网络 -> 端口转发(主机为222,子系统为22,其他不用填)
配置完重启虚拟机后,宿主机访问虚拟机连接如下:
注意,这种模式文件传输非常慢,本地上传一个10多KB的文件到虚拟机花费差不多2分钟。
配置桥接模式
桥接模式下,虚拟机和宿主机在同一网段,虚拟机可以访问外网,宿主机可以访问虚拟机,虚拟机可以访问宿主机同一局域网的其他机器。具体配置步骤如下所示:
网络连接方式设置
这里的MAC地址和网卡配置文件的HWADDR一致,否则会重启网络服务失败。
确定界面名称是网络的适配器,一般默认的没问题。
配置完桥接模式,启动虚拟机,网络就是通的,只是IP不固定。
修改网卡配置文件
这一步的目的是固定虚拟机的IP地址。
先查看宿主机的网络信息:
修改虚拟机的网卡配置文件:
1 | TYPE=Ethernet |
测试网络
配置正常后,直接ping www.baidu.com就可以联通了。宿主机访问虚拟机,连接方式如下:
NAT+HostOnly模式组合
设置主机网络管理器
这个是VirtualBox的默认设置,不是这个可以改为这个,后续配置文件就不需要改了。
网络连接方式设置
设置好后,启动虚拟机。
虚拟机网卡配置文件修改
Nat模式启动虚拟机就可以访问外网,直接ping www.baidu.com是可以连通的。
修改默认网卡配置文件(NAT)
先用ip route命令查看网卡配置文件,如下可以看到默认配置文件是/etc/sysconfig/network-scripts/ifcfg-enp0s17,如果该配置文件命名不一致需要修改,并修改里面内容的名称。
1 | [root@localhost ~]# ip route |
然后修改"ONBOOT=yes",修改后配置文件如下:
1 | TYPE=Ethernet |
修改网卡2配置文件(HostOnly)
网卡2为HostOnly网络连接模式的配置文件,需要设置为静态ip,修改后的配置文件如下:
1 | TYPE="Ethernet" |
宿主机通过静态ip(HostOnly方式)访问虚拟机
经测试,这种模式文件传输非常快。
NAT+HostOnly模式与桥接模式不同的是,IPADDR、网关的配置。
- NAT+HostOnly模式不用配置网关,IPADDR参考的是VirtualBox主机网络配置
- 桥接模式要配置网关,IPADDR参考的是config/all命令返回的配置
碰到问题
使用service network restart命令失败,要么配置文件问题(确定配置文件名和路由一致),要么网卡没选对。
1 | [root@localhost ~]# ip route |
ip route命令输出enp0s17 ,即网卡配置文件为/etc/sysconfig/network-scripts/ifcfg-enp0s17。如果该配置文件命名不一致需要修改,并修改里面内容的名称。
注意enp0s9不等于enp0s09,配置文件名多个0也会启动失败!
Job for network.service failed. See ‘systemctl status network.service’ and 'journalctl -xn’问题的解决方法(含重启网络管理相关命令)
ip route没有显示路由信息,检查下网络管理有没有开启
执行下面两个命令如下:
1 | chkconfig NetworkManager on |
桥接模式下,无法访问外网
防火墙开启是不影响的,检查下DNS服务器。