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
我试过在我的 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