13

当 Vagrant 建立一个具有固定 IP ( http://docs.vagrantup.com/v2/networking/private_network.html )的专用网络时,它在后台对主机和来宾机器做了什么?

Vagrant.configure("2") do |config|
  config.vm.network "private_network", ip: "192.168.50.4"
end
4

2 回答 2

12

回到 Vagrant 1.0.x,它被称为Host-only Networking,它是 VirtualBox 的一个特性,它允许多个虚拟机通过主机通过网络相互通信。由仅主机网络创建的网络对于所涉及的 VM 和主机是私有的。外界无法加入这个网络。

在幕后,VirtualBox 在出现在现有网络接口旁边的主机上创建了一个新的虚拟接口(“环回”)。

如果没有分配静态 IP,VirtualBox 甚至为仅主机网络(私有网络)提供内置 DHCP 服务器。它可以在文件 - 首选项 - 网络中进行配置。

查看更多信息 =>

于 2013-09-22T21:33:58.853 回答
10

在主机方面,Vagrant 什么都不做。据我所知,Vagrant 从不涉及主机网络配置。

在访客端,当前提供者实现网络配置逻辑。以下是 VirtualBox 提供程序的作用:

https://github.com/mitchellh/vagrant/blob/master/plugins/providers/virtualbox/action/network.rb

基本上,实现由两个顺序步骤组成:

  1. 使用管理程序命令在虚拟机上启用所有需要的网络适配器;
  2. 使用来宾功能配置来宾操作系统上的 IP 地址,在本例中为configure_networks功能。

例如,这里configure_networks基于 Debian 的 Linux 操作系统上的功能实现。

于 2013-09-23T10:45:37.967 回答