Port-Forwarding
Vagrant 轉發一系列埠
有沒有辦法使用 vagrant 1.2.1 或更高版本轉發一系列埠?我知道您可以使用單獨轉發任意數量的埠
config.vm.forward_port 80, 4567
或者,答案是否根本不使用 vagrant 來做這樣的事情?
如果有人需要一個如何在你的 Vagrantfile 中執行循環的範例,它是:
for i in 64000..65535 config.vm.network :forwarded_port, guest: i, host: i end
上述循環會將 64000 和 65535 之間的所有埠轉發到客戶機上完全相同的埠(請注意,包括 64000 和 65535)。
上面的“for”範例對於包含範圍是正確的。如果你想轉發一組特定的埠,你需要使用 Ruby 的 .each 操作符。
變數可以進入主 Vagrant.configure 循環的內部或外部。
UDP_PORTS_LIST={ "5000" => 5000, # Some service } TCP_PORTS_LIST={ "5900" => 5900, # VNC }
循環需要進入您要為其映射的 VM 的 Vagrant.configure 塊(請記住,您可以在單個 Vagrantfile 中擁有多個 VM)。
UDP_PORTS_LIST.each do |guest, host| config.vm.network "forwarded_port", guest: "#{guest}", host: "#{host}", protocol: "udp" end TCP_PORTS_LIST.each do |guest, host| config.vm.network "forwarded_port", guest: "#{guest}", host: "#{host}", protocol: "tcp" end