由于最近在研究Docker, 于是需要用到虚拟机,安装Ubuntu 16.04到Hyper-V并部署Docker。这个过程中填平了几个小坑,为了大家以后遇到类似情况节省时间,我将这几个小坑的问题和解决方法共享出来,供大家参考。
使用WLAN连接时,用Hyper-v创建的虚拟交换机会建立一个网桥来转接WLAN网络,如下图是新建一个虚拟交换机
现在看网络配置如下图所示,系统创建了一个网桥,然后虚拟机创建的虚拟网卡vEthernet通过桥接连到外部网路上
由于虚拟机的虚拟网卡是通过这个网桥去连接的,所以网络协议也要网桥支持,非常搞笑的是,IPV4协议在这里默认是关闭的。如果想让虚拟机能够获得地址必须要手动启用IPV4协议,并配置IP地址(可以自动获取)和DNS:
需要手动勾选TCP/IPv4
Unbuntu16.4版本的网路配置需要手工填写:
DNS和网卡的IP, 网关,掩码
#如果配置动态获取ip,则在
/etc/network/interfaces
文件中加入以下内容:
auto eth0 iface eth0 inet dhcp
#如果配置静态ip,则添加如下内容:
auto eth0 iface eth0 inet static address 192.168.1.21 netmask 255.255.255.0 gateway 192.168.1.1
#要是配置生效,需要重启网卡:
ifconfig eth0 down ifconfig eth0 up
然后必须手动配置DNS:
修改如下文件,默认文件是空的
sudo vim /etc/resolvconf/resolv.conf.d/base
在里面加入你想添加的DNS服务器,
nameserver 8.8.8.8
然后运行下面的命令,使DNS的配置生效
sudo /sbin/resolvconf -u
不能够直接去修改 /etc/resolv.conf,因为重启以后直接修改的配置就没有了。
至此可以重启下虚拟机,终于可以连上网络了:
先用ifconfig命令看看网卡配置,看上去正常了。:)