vagrant 如何使用 public ip 访问网络服务器(nginx)

vagrant how to access web server (nginx) with public ip

我试过在我的 vagrantfile 中这样做

config.vm.network "private_network", ip : "192.168.33.15"

所以当我启动我的盒子时,我可以通过我的浏览器访问 nginx 'locally'。 我想要的是使用 public ip 访问它。我试过了,(在文档中找到)

config.vm.network "public_network", ip: "202.137.x.x", netmask: "255.255.x.x"

config.vm.provision "shell",
run: "always",
inline: "route add default gw 202.137.x.x"


config.vm.provision "shell",
run: "always",
inline: "eval `route -n | awk '{ if ( ==\"eth0\" &&  != \"0.0.0.0\") print \"route del default gw \" ; }'`"

这仍然不起作用。有什么想法吗?

*编辑
我也试过端口转发,

config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "202.137.x.x"

我必须这样做:202.137.x.x:8080,我想不带端口访问。
另外,主机端口不能<1024,所以我不能把端口80..

我试过在 windows(主机)中进行端口转发,所以这就是我解决它的方法..

netsh interface portproxy add v4tov4 listenport=80 listenaddress=202.137.x.x connectport=8080 connectaddress=202.137.x.x

这会将对端口 80 上主机的任何请求转发到主机上的端口 8080。
因此,端口转发流程变为:
主机:80 => host:8080 => guest:80
source here