virtualbox的默认方式是NAT,用宿主机对虚拟机做端口转发。在组建本地的集群环境时,使用这种方式是不行的。可以使用桥接网卡的方式,使得虚拟机分配到一个宿主机局域网内的ip地址。
首先,修改/etc/network/interfaces
文件。
这个文件原来的内容如下:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp
修改成如下:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s3
#iface enp0s3 inet dhcp
iface enp0s3 inet static
address 192.168.0.100
gateway 192.168.0.1
netmask 255.255.255.0
注意这里的address
和gateway
的网段要和宿主机网段一致。比如我的宿主机ip为192.168.0.8
。
注意这里还要修改一下dns,不然会出现无法解析域名的问题,编辑/etc/resolvconf/resolv.conf.d/base
添加一下的nameserver:
nameserver 8.8.8.8
nameserver 1.1.1.1
执行sudo resolvconf -u
使dns的配置生效。
然后修改虚拟机的设置,在VirtualBox的菜单栏中:设备->网络->网络->连接方式:桥接网卡。
然后重启网络
sudo /etc/init.d/networking restart
如果网络还是有问题,可以尝试重启虚拟机。
之后在终端之中输入ifconfig
,网络信息如下:
enp0s3 Link encap:Ethernet HWaddr 08:00:27:f1:6d:fd
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fef1:6dfd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:304 errors:0 dropped:0 overruns:0 frame:0
TX packets:173 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:28254 (28.2 KB) TX bytes:28063 (28.0 KB)
虚拟机的ip已经变成192.168.0.100。使用ping 192.168.0.8
检查和宿主机的通信是否正常。
支持!
赶紧使用 vagrant 吧,搭建子网就一行代码!还能将机器模板管理起来!