子机上的 Vagrant forwarded_port

Vagrant forwarded_port on sub-machine

我无法通过这种方式发布虚拟机的端口:

config.vm.define "n1" do |n1|
    n1.vm.hostname = "n1"
    n1.vm.network "private_network", ip: "172.20.20.10"
    n1.vm.network "forwarded_port", guest: 8500, host: 8080
end

VM 内部访问正常:

vagrant@n1:~$ curl http://localhost:8500/v1/health/state/any

但主机访问(在 VM 之外,从我的计算机网络浏览器)将不起作用:

http://localhost:8080/v1/health/state/any

我想达到的目标可行吗?有人可以给我提示吗?

我不是流浪专家。但是,在网络中,您不能在没有明确提及的情况下转发绑定到 localhost(127.0.0.1) 的端口。通用绑定仅适用于 0.0.0.0。

你可以试试这个,但我不保证它一定有效

n1.vm.network "forwarded_port", guest: 8500, guest_ip: 127.0.0.1, host: 8080

最好先将应用程序绑定到 IP 地址,然后再进行转发。