通过网络

时间:2018-03-23 10:07:31

标签: vagrant virtualbox portforwarding vagrantfile

我有一个带有提供者VirtualBox的流浪汉。我需要通过网络访问VM上的端口。不应该访问VM抛出网络。 我在我的Vagrantfile中设置了一个专用网络并转发了有问题的端口。现在我可以从主机内到达端口。我想要的是访问网络中其他机器上的端口。这不起作用。

VAGRANTFILE_API_VERSION = "2" 
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box_check_update = false
  config.vm.box = "trusty64"
  config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
  config.ssh.username = 'vagrant'
  config.ssh.password = 'vagrant'

  config.vm.network "private_network", type:"dhcp"
  config.vm.network "forwarded_port", guest: 4242, host: 4242
  config.vm.network "forwarded_port", guest: 3000, host: 3000


  config.vm.provider "virtualbox" do |vb|
    vb.cpus = 4
  end


end

在主机打开时,URL 127.0.0.1:4242允许我访问在那里运行的服务。

我想要的是使用主机公共IP通过网络访问服务。

1 个答案:

答案 0 :(得分:0)

当我们在私有网络中使用Vagrant的端口转发时,我们在主机上有以下绑定:

tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      5463/VBoxHeadless
tcp        0      0 0.0.0.0:4242            0.0.0.0:*               LISTEN      5463/VBoxHeadless

端口限制为0.0.0.0,即我们可以在任何主机的IP地址上访问它们,而不仅仅是127.0.0.1

因此,您可以通过VM所在主机的网络IP从任何网络主机访问VM上的端口,例如192.168.0.106:4242

在此之前,请确保主机上的防火墙规则允许从外部网络访问端口30004242