如何使用vagrant定义网络设置

如何使用vagrant定义网络设置,vagrant,Vagrant,我在vagrant中运行Ubuntu,这里是vagrant文件: # 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.ne

我在vagrant中运行Ubuntu,这里是vagrant文件:

# 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
知道我做错了什么吗

在这个问题上取得了一些进展,几乎是这样的:


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

我敢打赌您正在查看
eth0
(这是另一个界面)。查看
eth1
,您将得到您正在搜索的内容。此外,从外面流浪的人,尽量用平它

ping 192.168.99.4

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

Vagrant需要连接到虚拟机的第一个网络设备 机器应为NAT设备。NAT设备用于端口 转发,这是Vagrant通过SSH访问虚拟机的方式 机器

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

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

所以你要报道的是NAT

此外,eth1没有定义为您在vagrant文件中设置
auto_config:false
,因此您基本上是告诉vagrant您将自己完成所有设置。因此,您应该将此参数设置为true(或remove),或者自己设置
etc/network/interfaces

您可以查看并查看是否可以使用代码段示例从配置中删除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; }'`"

要更改默认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

关于信用卡和更多信息:

您想要什么界面?显示:主机名127.0.0.1ok我错过了关于
自动配置的部分,您告诉vagrant不要创建界面,您将创建自己-我还删除了ssh配置,因为它仍然是127.0.0.1(我使用的是vmware,它在专用网络中显示IP)谢谢,我删除了auto_disable,得到eth0为10.0.2.15,eth1为192.168.99.4。但我最初的动机是摆脱10.0.2.15,它与外部的本地网络相冲突。你知道怎么做吗?@Gurvan-根据上面的描述,在使用Vagrant时这样做听起来不可行。@slm,这正是w这是我想做的!VPN隧道另一端的地址范围也是10.0.x.x,我的计划有点牵强。上面更新了,eth1没有出现,所以我把它放上去了,也没有占用我的ip