35

我在 vagrant 内的 e 盒子上创建了。在 Vagrantfile 中,我将网络指定为

     Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network :private_network, ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
   config.vm.network :public_network

我无法访问 VLAN 外的 VagrantBox。我需要访问公共网络中的 Vagrant Box。如何以我需要在公共网络中访问的方式配置 vagrantfile?

4

5 回答 5

24

取消注释中的行Vagrantfile

config.vm.network :public_network

该文件将如下所示

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "box_name"
  config.vm.network :public_network
end

保存它,使用vagrant reload.

对于 VirtualBox,它将使用桥接模式进行联网。这意味着 VM 将从 VLAN 的 DHCP 服务器获取 IP 地址。

您还可以使用以下命令设置 VLAN IP:config.vm.network :public_network, ip: "192.168.0.160"

参考 =>公共网络

于 2013-08-05T21:34:08.050 回答
7

默认情况下,vagrant 会删除 VM 内其他桥接网络上的默认(工作)路由。我的特定于 DHCP 的问题只能通过如下配置桥接网络来解决:

config.vm.network :public_network, :bridge => 'em1',:use_dhcp_assigned_default_route => true

感谢https://groups.google.com/forum/#!msg/vagrant-up/yNhWV42pcgk/NbOck1xqtFQJ 静态 IP 可能有一个等价物。

于 2015-10-27T11:55:40.393 回答
2

我无法用我读过的任何东西(这是数小时的研究)来解决这个问题。相反,这就是我想出来的:

下面是我的流浪文件。对我来说重要的部分是config.vm.network :public_network。用 重新加载 vagrant 后vagrant reload,我​​选择了 4 个可用的桥接网络接口中的第一个选项(我不确定我是否幸运地选择了正确的,或者是否有任何工作,我会尝试),然后ssh进入 vagrant带有vagrant ssh, did的框ifconfig选择了它输出的 3 个 IP 地址之一,将其粘贴到我的浏览器中,它就可以工作了。

似乎没有人谈论的事情是ssh进入 vagrant box 并在那里找到其中一个 IP 地址。我希望这可能对将来的其他网络新手有所帮助。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "bahmni-team/bahmni"
  config.vm.box_check_update = true
  config.ssh.insert_key = false
  config.vm.network :public_network

  config.vm.synced_folder "..", "/bahmni", :owner => "vagrant"
  config.vm.provider "virtualbox" do |v|
     v.customize ["modifyvm", :id, "--memory", 4092, "--cpus", 2, "--name", "Bahmni-RPM"]
  end
end
于 2019-07-24T11:39:33.540 回答
0

最后!这是几年后的事了,但我找不到更多最新信息。对我来说,问题在于我不仅定义了一个专用网络,而且还定义了一个转发端口,并且所有这些都运行良好。然后我将 private_network 注释掉,用 public_network 替换它,但什么都无法访问。尝试了我在这里和其他地方找到的所有东西,不行。只有当我注释掉端口转发时,事情才重新开始工作,没有任何建议的手动桥接/dhcp 配置。

于 2018-09-17T22:31:25.270 回答
-8
  1. 单一虚拟机环境

    你可以使用命令:vagrant ssh

  2. 多虚拟机环境

    你可以使用命令:vagrant ssh {hostname}

于 2015-10-20T07:20:55.510 回答