Vagrant如何在同一台机器上转发多个端口?

feg*_*emo 55 portforwarding vagrant

我想知道如何设置一个Vagrant文​​件,该文件将放置一台带有两个端口转发的机器.这是我目前的Vagrantfile,转发8080页面:

Vagrant.configure("2") do |config|

  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"
  config.vm.provider "virtualbox"

  config.vm.network :forwarded_port, guest: 8080, host: 8080
  config.vm.provision :shell, :path => "start.sh", :args => "'/vagrant'"

  config.vm.network :public_network
end
Run Code Online (Sandbox Code Playgroud)

谢谢!

Min*_*gyu 88

如果要转发两个端口,可以简单地添加另一行,如下所示:

config.vm.network :forwarded_port, guest: 8080, host: 8080
config.vm.network :forwarded_port, guest: 5432, host: 5432
Run Code Online (Sandbox Code Playgroud)

在我看来,更好的方法是设置专用网络(或仅主机网络),这样您就不必手动转发所有端口.

在这里查看我的帖子: Vagrant反向端口转发?

其他提示

如果:id在定义:forward_port条目时使用该功能,则需要确保每个条目都是唯一的.否则他们会互相辱骂,最后定义的通常会胜出.

例如:

config.vm.network "forwarded_port", guest: 8080, host: 8080, id: 'was_appserver_http'
config.vm.network "forwarded_port", guest: 9043, host: 9043, id: 'ibm_console_http'
config.vm.network "forwarded_port", guest: 9060, host: 9060, id: 'ibm_console_https'
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果您的端口有"id:",则它必须是唯一的 (3认同)

thu*_*yen 10

您可以根据需要转发任意数量的端口(如果主机未使用这些端口),如下所示:

# for Redis
config.vm.network "forwarded_port", guest: 6379, host: 6379
# for HTTP
config.vm.network "forwarded_port", guest: 80, host: 80
# for MySQL
config.vm.network "forwarded_port", guest: 3306, host: 3306
Run Code Online (Sandbox Code Playgroud)

如果要转发一系列端口,for loop也可以像这样使用:

for i in 81..89
          config.vm.network :forwarded_port, guest: i, host: i
end
for i in 8080..8089
          config.vm.network :forwarded_port, guest: i, host: i
end
Run Code Online (Sandbox Code Playgroud)