在本地机器上使用 vagrant 访问端口 9999 上的 Java jetty 服务器

Accessing Java jetty server on port 9999 using vagrant on local machine

我已经使用 Vagrant 和 Puphpet 设置了一个 centos 虚拟服务器,在虚拟机中我在码头上有一个 java 应用程序 运行。 "server is running at http://127.0.0.1:9999"

但是我无法从我的本地计算机访问它,我已经设置了一个端口转发,所以 9999 转发到 9999,但是当我访问 awesome.dev:9999 或 192.168.56.103:9999 时,我得到了一个站点无法到达错误。

显然我在我的 puphpet config.yaml 文件中遗漏了一些东西,我只是不确定是什么。

               machines:
                    vflm_b214h6dav8jj:
                        id: machine1
                        hostname: machine1.puphpet
                        network:
                            private_network: 192.168.56.103
                            forwarded_port:
                                vflmnfp_hmt0pd4imhhd:
                                    host: '5997'
                                    guest: '22'
                                vflmnfp_b74egg9hlvog:
                                    host: '9999'
                                    guest: '9999'
                        memory: '1024'
                        cpus: '1'

如果我转到 awesome.dev,那么我输入的 hello world 页面正在运行,所以我知道 VM 已启动并且 运行。

问题是

"server is running at http://127.0.0.1:9999"

所以除了你的本地主机之外,它无法通过任何网络接口访问。

您需要更改此设置以在服务器的 IP 上启动应用程序,或者您可以使用 0.0.0.0(特殊 IP,以便所有接口都可以访问它)

您需要更改 jetty.host 属性,有几种可能性

  • 使用以下命令启动服务器:

    java -Djetty.host=0.0.0.0 -jar start.jar
    
  • 在您的 connector

    中定义主机
    <New class="org.eclipse.jetty.server.ServerConnector">
      <Set name="host">0.0.0.0</Arg>
      ....
    </New>
    
  • 在使用ant jetty时创建一个新的系统属性-build.xml

    <systemProperty name="jetty.ant.server.host" value="0.0.0.0"/>