环境
- Ubuntu 16.04 LS
- VituralBox
首先简单说一下,四种网络方式:
NAT模式
-
如果主机可以上网,虚拟机可以上网
-
虚拟机之间不能ping通
-
虚拟机可以ping通主机(此时ping虚拟机的网关,即是ping主机)
-
主机不能ping通虚拟机
应用场景:
虚拟机只要求可以上网,无其它特殊要求,满足最一般需求。
配置方法:
连接方式 选择 网络地址转换(NAT)
其他默认。
Bridged Adapter模式(桥接模式)
特点:
-
如果主机可以上网,虚拟机可以上网
-
虚拟机之间可以ping通
-
虚拟机可以ping通主机
-
主机可以ping通虚拟机
以上各点基于一个前提:主机可以上网。
- 如果主机不可以上网,所有1-4特点均无
应用场景:
虚拟机要求可以上网,且虚拟机完全模拟一台实体机
配置方法:
连接方式 选择 桥接网卡;
界面名称 选择 (如果你的笔记本有无线网卡和有线网卡,需要根据现在的上网方式对应选择);
其他默认。
Host-only Adapter模式
特点:
-
虚拟机不可以上网
-
虚拟机之间可以ping通
-
虚拟机可以ping通主机(注意虚拟机与主机通信是通过主机的名为VirtualBox Host-Only Network的网卡,因此ip
是该网卡ip 192.168.56.1,而不是你现在正在上网所用的ip)
- 主机可以ping通虚拟机
应用场景:
在主机无法上网的情况下(主机可以上网的情况下可以用host-only,也可以用桥接),需要搭建一个模拟局域网,所有机器可以互访。
配置方法:
连接方式 选择 仅主机(Host-Only)适配器;
界面名称 选择 VirtualBox Host-Only Ethernet Adapter;
Internal模式(内网模式)
特点:
-
虚拟机不可以上网
-
虚拟机之间可以ping通
-
虚拟机不能ping通主机
-
主机不能ping通虚拟机
应用场景:
让各台虚拟机处于隔离的局域网内,只让它们相互通信,与外界(包括主机)隔绝。
配置方法:
连接方式 选择 内部网络
界面名称 选择 intnet(可以重新命名,所有放在同一局域网内的虚拟机此名称相同)
具体配置流程
1.打开virtualbox,选择【设置】-【网络】2个网卡
然后你可以在ubuntu 中输入 ifconfig -a
查看是不是3个网卡配置
你的可能是enp0s3 enp0s8 lo
,因为我做了如下配置
sudo nano /etc/default/grub
找到GRUB_CMDLINE_LINUX=""
改为GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
然后sudo grub-mkconfig -o /boot/grub/grub.cfg
eth0 eth1 lo 分别代表nat网络 桥接网络 本地 如果分不清就看mac地址 在visualbox中你可以看到的比对下就知道。
- 在ubuntu中运行:
sudo vim /etc/network/interfaces
修改如下:
auto eth1
iface eth1 inet static //static 静态 dhcp动态 这里改成静态
//要和你本机的ip一个网段,你的address就保证前3段一样最后随便填不要和本机冲突,
// 如果是无线连接的话在 Window 里用 ipcnonfig /all 找到无线的 ip 输入
address 192.168.1.2
netmask 255.255.255.0 // 此处改成您的掩码
gateway 192.168.1.1 // 此处改成您的网关
然后修改 DNS (如果你 ping www.baidu.com
报找不到 host 的错误,多半是没有配置 DNS)
sudo vim /etc/resolv.conf
这里还有个问题,仅仅写在/etc/resolv.con
f里,每次重启都会重置
想要不重置,则要写在
sudo vi /etc/resolvconf/resolv.conf.d/base
3 .运行
/etc/init.d/networking restart
重启,如果重启失败则重启虚拟机。
结果。。。然并卵
最后发现是公司对 MAC 地址进行了绑定,妈蛋!
网友评论