原文地址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
。你須要查看爲你的發行版配置網絡接口的正常位置。