【问题标题】:Vagrant: Forwarded Ports doesn't workVagrant:转发端口不起作用
【发布时间】:2017-04-21 05:14:38
【问题描述】:

我有一个可在 vagrant 上编译/运行并监听 localhost:8080(在 vagrant 内)的 Spring 应用程序。

这是我的 Vagrantfile

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network :forwarded_port, guest: 80, host: 9000, host_ip: "127.0.0.1"
config.vm.provision :shell, path: "bootstrap.sh"
end

现在我想通过localhost:9000从主机访问我的spring-application。

无论如何forwarded_port 行不起作用,我真的不知道为什么?

我需要在 Vagrantfile 中进行哪些更改?

解决方案:

下面的Vagrantfile 对我有用。

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provision :shell, path: "bootstrap.sh"

config.vm.provider "virtualbox" do |v|
        v.destroy_unused_network_interfaces = true
        v.memory = 2048
        v.cpus = 4
end
end

【问题讨论】:

    标签: java spring networking vagrant virtual-machine


    【解决方案1】:

    它不起作用,因为该应用正在侦听localhost

    让应用在常规界面上监听。如果不是 Vagrant 接口,您可能还需要添加 guest_ip

    config.vm.network :forwarded_port, guest: 80, guest_ip: "xxx.xxx.xxx.xxx", host: 9000, host_ip: "127.0.0.1
    

    【讨论】:

    • 你能说得更具体些吗? .. 我对所有这些伪服务器的东西完全陌生
    • 我不能更具体,因为你不是。 Localhost,顾名思义,仅用于本地连接。
    • 所以我必须让 spring-app 监听 guest_ip?
    • 也许,取决于你的理解。使用通用语言:您需要将其绑定到常规网络接口,而不是 localhost。
    • 对不起,什么是常规界面?可以举个例子吗?
    【解决方案2】:

    如果您在 VM 中运行的 spring 应用程序确实在侦听其本地端口 8080,并且您想从主机以 http://localhost:9000/ 访问该应用程序,那么您的 Vagrantfile 中的行应该是:

    config.vm.network :forwarded_port, guest: 8080, host: 9000
    

    即您在客户机上指定端口 80 而不是 8080 时出现拼写错误。

    您可能不需要指定任何其他参数,例如 host_ip 或 guest_ip。

    【讨论】:

    • 我找到了一个解决方案并将其添加到我的问题中......感谢您的努力
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2015-04-26
    • 2015-03-04
    • 2013-06-30
    • 2017-01-24
    • 1970-01-01
    • 2016-01-13
    相关资源
    最近更新 更多