如何使用vagrant定义网络设置

时间:2016-02-04 17:56:12

标签: vagrant

我在流浪汉中运行Ubuntu,这是Vagrantfile:

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.network :private_network, ip: "192.168.99.4", :netmask => "255.255.255.0", auto_config: false
end

所以我希望将192.168.99.4作为IP,但我总是:

eth0      Link encap:Ethernet  HWaddr 08:00:27:88:ba:8f  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe88:ba8f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth1      Link encap:Ethernet  HWaddr 08:00:27:9c:a9:9f 
          inet6 addr: fe80::a00:27ff:fe9c:a99f/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

任何线索我做错了什么?

在这个问题上取得了一些进展,它几乎就像这个: How to switch order of network adapters in Vagrant under VirtualBox?

关于不使用“10.0.2.15”,据我所知,它在virutalbox的“NAT”设置中被更改,不能由Vagrant管理

3 个答案:

答案 0 :(得分:10)

来自vagrant book

  

NAT要求作为VirtualBox的第一个网络接口

     

Vagrant需要连接到虚拟机的第一个网络设备   机器是一个NAT设备。 NAT设备用于端口   转发,这是Vagrant如何获得对虚拟的SSH访问   机。

     

因此,任何仅主机或桥接网络都将添加为   其他网络设备并作为虚拟机公开   “eth1”,“eth2”等。 “eth0”或“en0”通常始终是NAT   设备。

     

目前无法覆盖此要求,但是   重要的是要了解它已经到位。

所以你报道的是这个NAT。

另外eth1没有定义为你在Vagrantfile中设置auto_config: false所以你基本上告诉流浪汉你会自己做所有的设置。所以你应该把这个参数变为真(或删除)或自己设置etc/network/interfaces

您可以查看vagrant public network并查看是否可以使用代码段示例从配置中删除eth0网关

  config.vm.network "public_network", ip: "192.168.0.17"

  # default router
  config.vm.provision "shell",
    run: "always",
    inline: "route add default gw 192.168.0.1"

  # default router ipv6
  config.vm.provision "shell",
    run: "always",
    inline: "route -A inet6 add default gw fc00::1 eth1"

  # delete default gw on eth0
  config.vm.provision "shell",
    run: "always",
    inline: "eval `route -n | awk '{ if ($8 ==\"eth0\" && $2 != \"0.0.0.0\") print \"route del default gw \" $2; }'`"

答案 1 :(得分:4)

要更改默认NAT,您应该在Vagrantfile中设置它。

例如:

 config.vm.define "bs" do |bvtserver|
  bvtserver.vm.hostname = "bvt-server"
  bvtserver.vm.network "private_network", ip: "192.168.50.3",
      virtualbox__intnet: "gcptest-network"
  bvtserver.vm.provider :virtualbox do |vbox|
    vbox.customize ["modifyvm", :id, "--natnet1", "10.3/16"]
  end
end

有关学分和更多信息:Li Chao blog

答案 2 :(得分:0)

我可以打赌你正在查看eth0(那是另一个界面)。查看eth1,您就会得到您正在搜索的内容。而且,从外面的流浪汉,尝试用

ping它
ping 192.168.99.4