Vagrant 通过网络访问流浪者中的转发端口

Vagrant 通过网络访问流浪者中的转发端口,vagrant,virtualbox,portforwarding,vagrantfile,Vagrant,Virtualbox,Portforwarding,Vagrantfile,我有一个流浪的虚拟机与供应商VirtualBox。我需要通过网络访问VM上的端口。虚拟机不应通过网络访问。 我在我的文件中设置了一个专用网络,并转发了有问题的端口。现在我可以从主机内部到达端口。我想要的是从网络中的其他机器访问上的端口。这是行不通的 VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box_check_update = false

我有一个流浪的虚拟机与供应商VirtualBox。我需要通过网络访问VM上的端口。虚拟机不应通过网络访问。 我在我的文件中设置了一个专用网络,并转发了有问题的端口。现在我可以从主机内部到达端口。我想要的是从网络中的其他机器访问上的端口。这是行不通的

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通过网络访问服务。

在专用网络中使用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


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

出于某种原因,这是行不通的。我只能从主机本身获得服务。试图从同一网络的其他主机访问该服务时,该服务无法访问。在主机上启动服务时(例如不使用Vagrant),我能够访问该服务,因此这里没有防火墙问题。任何想法,为什么我不能使用虚拟机访问服务。我还尝试了一个公共网络,但都不起作用。你用什么操作系统?例如,它在Ubuntu 16.04上运行良好,主机是CentOS 7机器,而虚拟机是Ubuntu 14.04。