原文地址html
Vagrantfile 配置文件中私有网络的标识符:private_network,例如:web
config.vm.network "private_network", type: "dhcp"
Vagrant 私有网络容许你经过某些没法从全球互联网公开访问的地址访问你的虚拟机。一般,这意味着你的机器在私有地址空间中分配了地址。网络
同一个专用网络中的多台机器(一般也只能使用同一个 provider 的支持)能够在专用网络上相互通讯。ssh
客户操做系统支持。私有网络一般须要配置虚拟机上的网络适配器。此过程因操做系统而异。Vagrant 提供有关如何在各类客户操做系统上配置网络的知识,但若是用的是特别旧或新的操做系统,则私有网络可能没法正确配置。ide
使用私有网络的最简单的方式,是容许经过 DHCP 自动分配 IP。svg
Vagrant.configure("2") do |config|
config.vm.network "private_network", type: "dhcp"
end
这会从保留的地址空间中自动分配 IP 地址。经过 vagrant ssh
登陆到机器后,使用合适的命令行工具(ifconfig 等)能够查看分配到的 IP 地址。工具
能够为机器指定静态 IP,这样就能够经过已知的静态 IP 访问 Vagrant 机器。示例:ui
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "192.168.50.4"
end
用户须要确保静态 IP 不会与同一网络上的其余机器发生冲突。lua
尽管能够选择任何 IP,但你应该使用来自保留的私有地址空间的 IP。这些 IP 永远不会被公开路由,而且大多数路由器会阻止到这些 IP 的来自外部世界的流量。spa
对于某些操做系统,可使用静态 IP 地址的其余配置选项,例如设置默认网关或 MTU。
警告:不要选择与系统上任何其余 IP 空间重叠的 IP。这可能致使网络没法访问。
能够分配 IPv6 的静态 IP 地址。不支持用于 IPv6 的 DHCP。要使用 IPv6,只须要将 IPv6 地址指定为 IP 地址便可:
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "fde4:8dba:82e1::c4"
end
这会将该 IP 分配给机器。整个 /64 子网将被保留。请确保使用经批准用于 IPv6 的保留地址。
改变 netmask
选项能够修改前缀长度(默认是 64):
Vagrant.configure("2") do |config|
config.vm.network "private_network",
ip: "fde4:8dba:82e1::c4",
netmask: "96"
end
Vagrant 从 1.7.5 版开始支持 IPv6,部分 provider 不支持 IPv6。
若是须要手动配置网络接口,能够经过 auto_confit
选项关闭 Vagrant 的自动配置特性:
Vagrant.configure("2") do |config|
config.vm.network "private_network", ip: "192.168.50.4",
auto_config: false
end
若是在设置 auto_config 以前已经启动了 Vagrant,那么它最初放置的文件将保留在那里。这种状况下,必须手动删除这些文件或销毁并从新建立机器。
由 Vagrant 建立的文件取决于操做系统。例如,对于许多 Linux 发行版,是 /etc/network/interfaces
。你须要查看为你的发行版配置网络接口的正常位置。