Os exemplos 'for' acima estão corretos para fazer um intervalo inclusivo. Se você gostaria de encaminhar um conjunto de portas específicas, você precisa usar o operador Ruby .each.
As variáveis podem ir dentro ou fora do loop principal do Vagrant.configure.
UDP_PORTS_LIST={
"5000" => 5000, # Some service
}
TCP_PORTS_LIST={
"5900" => 5900, # VNC
}
Os loops precisam ir dentro do bloco Vagrant.configure para a VM que você deseja mapeá-los (lembre-se que você pode ter várias VMs em um único Vagrantfile).
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