【问题标题】:Accessing REST end point on machine behind gateway on private network from public Internet从公共 Internet 访问专用网络网关后面机器上的 REST 端点
【发布时间】:2016-02-17 10:54:23
【问题描述】:

我家有一台服务器正在运行,它位于防火墙和网关后面。 该服务器托管一个用 Java 编写的基于 REST 的服务。我希望公共 Internet 上的移动应用程序客户端能够访问此服务器。

我不想更改我的网关/防火墙配置。

实现此设置的标准方法是什么?

我想过以下几种方式:

  • 使用远程端口转发。 我可以有一个云虚拟机,作为登陆机,并在这个云上打开 SSH 和 HTTP 端口。 远程用户将通过此云机器进行连接。 在HTTP的情况下,我可以重定向http数据包,ssh可以做到。

  • 使用云中继服务。 我不能使用 Azure 中继服务,因为它们不提供 Java 库。

我可能还需要从外部网络通过 SSH 连接到服务器。

建议的方法是什么?

【问题讨论】:

  • Stackoverflow 用于软件开发方面的帮助。您应该考虑在superuser.com 上提问。
  • 您希望最终用户能够访问您的 REST 端点还是供您自己使用(例如在旅行时?)。另外,这是用于临时测试还是用于服务的长期可靠使用?
  • 您好,为什么不将您的 REST 服务迁移到 Azure WebApp for Java 或 Azure VM?这很容易。
  • @adarshj,它适用于任何可以使用凭据访问它的最终用户。我正在寻找一个长期的解决方案。
  • @PeterPan,我的用例不允许我这样做..

标签: java azure networking architecture reverse-proxy


【解决方案1】:

您可以尝试使用 Azure 服务总线实现自己的中继服务,请参阅https://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-queues/ 了解如何开始。

+---------+ send +----------+ send +------------+ req  +-------------+
|Home Serv| <->  |ServiceBus| <->  |Azure WebApp| <->  |Mobile Client|
+---------+ recv +----------+ recv +------------+ resp +-------------+

上面解释过:

  • Home Service 通过服务总线队列与 Azure WebApp 进行通信。
  • 移动客户端通过 HTTP 请求和响应与 Azure WebApp 通信。
  • 与上述 ServiceBus 的所有通信均通过 AMQP 或 HTTP REST API 实现,可以通过网关,但会导致时间延迟。

希望对您有所帮助。最好的问候。

【讨论】:

    【解决方案2】:

    你的问题很清楚。确实,有多种方法可以实现它。当您要求行业标准时,让我们避免发布完整的解决方案列表。

    恕我直言,VPN 是从互联网访问任何网络的行业标准安全方式。有许多硬件/软件实现,您可以根据您的基础设施找到最好的适合您的

    我会寻找其他解决方案,以防您的移动设备不支持 VPN。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-01
      • 2015-10-14
      • 2016-06-13
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多