在我开始讨论我的问题之前,我想先说一下如果我的方法不是最优的,我想要实现的目标。
我想设置一个虚拟环境,尽可能地反映我们的生产环境。这将由一个 Web 服务器、一个数据库服务器和一个文件服务器组成,它们都位于同一网络上。我想将其用作集成环境,在发布新功能及其部署脚本之前对其进行测试。
虚拟机需要能够在虚拟网络中相互通信并可以访问互联网。我的主机必须能够从虚拟网络内连接到这些设备。
我的方法是使用 Vagrant 启动基本 VirtualBox VM 的多个副本,然后对其进行适当的配置。
我在虚拟机中安装了 Ubunu 12.04 64 位服务器。在网络方面,适配器设置为 NAT。适配器 2 是连接到 vboxnet0 的“仅主机适配器”。
vboxnet0 具有以下配置
IPv4 Address: 192.168.56.1
IPv4 Network Mask: 255.255.255.0
ipv6 Network Mask Length: 64
Enable Server: Checked
Server Address: 192.168.56.100
Server Mask: 255.255.255.0
Lower Address Bound: 192.168.56.101
Upper Address Bound: 192.168.56.254
/etc/网络/接口
auto lo
iface lo inet loopback
auto eth0 eth1
iface eth0 inet dhcp
iface eth1 inet static
address 192.168.56.105
netmask 255.255.255.0
gateway 192.168.56.1
network 192.168.56.0
broadcast 192.168.56.255
该机器似乎可以访问互联网。我可以使用 wget 资源,也可以从我的主机 ping 192.168.56.105。但是我遇到了一些问题。
如果我 apt-get 更新它就会开始拉取检查。
Hit http://us.archive.ubuntu.com precise Release.gpg
Hit http://us.archive.ubuntu.com precise-updates Release.gpg
...
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/main/source/Sources Hash Sum mismatch
...
E: Some index files failed to download. They have been ignored, or old ones used instead.
我也无法关闭 eth1。
vm@base:~$ sudo ifdown eth1
ifdown: interface eth1 not configured