Is there a way to forward a range of ports using vagrant 1.2.1 or higher? I know that you can forward any number of ports individually by using
config.vm.forward_port 80, 4567
Or, is the answer simply don't use vagrant to do such a thing?
Is there a way to forward a range of ports using vagrant 1.2.1 or higher? I know that you can forward any number of ports individually by using
config.vm.forward_port 80, 4567
Or, is the answer simply don't use vagrant to do such a thing?
If anyone needs an example of how to do the loop in your Vagrantfile here it is:
for i in 64000..65535
config.vm.network :forwarded_port, guest: i, host: i
end
The above loop will forward all ports between 64000 and 65535 to the exact same port on the guest (note that 64000 and 65535 are inclusive).
The 'for' examples above are correct for doing an inclusive range. If you would like to forward a set of specific ports, you need to use the Ruby .each operator.
The variables can go inside or outside of the main Vagrant.configure loop.
UDP_PORTS_LIST={
"5000" => 5000, # Some service
}
TCP_PORTS_LIST={
"5900" => 5900, # VNC
}
The loops need to go inside the Vagrant.configure block for the VM you want to map them for (remember you can have multiple VMs in a single 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